Skip to Content.
Sympa Menu

freetds - Re: [freetds] Compiling Against FreeTDS 0.95 w/7.3 TDSVER Features Possible?

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Frediano Ziglio <freddy77 AT gmail.com>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] Compiling Against FreeTDS 0.95 w/7.3 TDSVER Features Possible?
  • Date: Mon, 16 Nov 2015 16:58:02 +0000

2015-11-15 20:14 GMT+00:00 Ken Collins <ken AT metaskills.net>:
> I am in the process of upgrading the Ruby C extensions to FreeTDS from 0.91
> to 0.95.
>
> The primary goal is to also support using TDSVER 7.3 and the newly
> supported 2008 data types.
>
> Is this possible to use these new types in 0.95 when many of the types are
> not defined in sybdb.h? For example here is a diff of that file when
> comparing 0.95 to master.
> https://gist.github.com/metaskills/4c9900c3d1078e5c4763
>
>
> For example, I can see that dbcoltype() is returning integers that match
> these below. I can even see the binary data, but I am unsure how what API
> functions I need to use this data. So far dbdatecrack() is not working. Any
> recommendations?
>
> SYBMSDATE = 40
>
> SYBMSTIME = 41
>
> SYBMSDATETIME2 = 42
>
> SYBMSDATETIMEOFFSET = 43
>

Yes, actually the patch could be backported (beside the 7.4 stuff).

The binary structure is well defined (and an ABI actually) however is
defined in tds.h (TDS_DATETIMEALL). The date field is the same as
dtdays in DATETIME however
time is completely different (100-nanosecondth from start of day).

dbdatecrack only supports DATETIME. I suppose a new dbanydatecrack (or
whatever)
extension could be defined (possibly extending time precision). Or in
the meantime you could pass date field into a DATETIME, use
dbdatecrack and split time manually (at least the precision).

Frediano




Archive powered by MHonArc 2.6.24.

Top of Page