Re: Status of support for Time type

Frediano Ziglio <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <CAHt6W4cTFdJt-yZtW13qVUTXLcmLxkLTWOaxWqzXQVxZ+uXkmg@mail.gmail.com>
2013/5/1 James K. Lowden <[email protected]>

> On Tue, 30 Apr 2013 20:05:00 +0100
> Frediano Ziglio <[email protected]> wrote:
>
> > Problem here is also that you are using dblib which is not supposed
> > to be extended!
> >
> > As Microsoft decided to not update it we should find a way to
> > compatibly extend dblib in order to put/get time/date!
>
> It is easily done, if one has the time.  What needs extending other
> than dbbind() and bcp_bind()?
>
> ISTM dbbind() should support binding a server's DATE or TIME to
> DBDATETIME or DBDATETIM4, subject to domain constraints.  Although
> there are new types, most databases still keep data per the
> Gregorian calendar, and most days are still 24 hours.  Mapping the new
> date & time column types to the existing db-lib structures would allow
> existing programs to use the new column types merely by relinking to a
> newer FreeTDS.
>
> For completeness -- to support new applications using the extended date
> range -- dbbind() would need new structs and new bindings.
>
> For structures I would use those already defined for ODBC.  Microsoft
> defines these, but I don't see support for them in tds_convert()?
>
>
No, libTDS does not support ODBC types. Well... there should be perhaps a
way to support more types but actually tds_convert support only "libTDS"
types.


> struct tagDATE_STRUCT {
>    SQLSMALLINT year;
>    SQLUSMALLINT month;
>    SQLUSMALLINT day;
> } DATE_STRUCT;
>
> struct tagTIME_STRUCT {
>    SQLUSMALLINT hour;
>    SQLUSMALLINT minute;
>    SQLUSMALLINT second;
> } TIME_STRUCT
>
> For binding, dbbind() defines SMALLDATETIBIND and DATETIMEBIND. I would
> suggest adding DATEBIND and TIMEBIND.
>
>
If program bind these type is not a big issue. However if program want to
read the type and FreeTDS start returning type that client does not support
client cannot handle them so there should be a way for the client to tell
"I support this type, feel free to return it".


> Those are needed only for binary bindings, and only if we adopt new
> structs.
>
> Just a small matter of programming.
>
>
Of course, but when ABI changes are required some design in advance is not
bad :)

Frediano



> --jkl
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.