Note: This website is archived. For up-to-date information about D projects and development, please visit wiki.dlang.org.

FreeTDS Subproject

Library Version

FreeTDS version 0.64RC2

Supported Databases

  • Microsoft SQL Server
  • Sybase

(using 'ctlib' portion of FreeTDS)

Example

import dbi.mssql.MssqlDatabase;
import dbi.Row;
import std.stdio;

void main() {

  MssqlDatabase db = new MssqlDatabase();
  db.connect("server 1433","username","password");

  Row[] rows = db.queryFetchAll("USE dbname; SELECT * FROM test;");

  foreach (Row row; rows) {
    writefln("%-10s %3s %-20s %7s %11s %11s ",
             row["testStr"],
             row["testInt"],
             row["anotherStr"],
             row["flt"],
             row["smmoney"],
             row["smdate"]);
  }
  db.close();

}

Maintainer

Brad Anderson (brad@dsource.org)

Notes

From [44] on 2007-01-09:

Preliminary FreeTDS support (MSSQL, Sybase)

  • Only a few types have been tested
    • varchar, nvarchar
    • int
    • float
    • datetime, smalldatetime
    • money, smallmoney
  • As with all existing dbi's, this one only returns strings
    • so dates come at you like yyyy-mm-dd hh:nn:ss
    • there's a rounding error in money,smallmoney - can only get 2 decimal places, should be able to get 4
  • No error messages are being presented to the user yet.
    • MssqlError.d needs to be coded
    • CS_SERVERMSG and src/ctlib/unittests/common.c look promising here
  • Bindings (thanks to bcd.gen) were for FreeTDS 0.64RC2, but should work across a wide range of versions
  • Within FreeTDS, the ctlib was used

only tested on Linux - not Windows yet - give it a whirl and report back