Bram Kuijvenhoven wrote:
Michael Van Canneyt wrote:
Looking in the ODBCConnection, I would suppose that the DB2 Timestamp is
translated to SQL_TYPE_UTCDATETIME:
SQL_TYPE_UTCDATETIME:FieldType:=ftUnknown;
SQL_TYPE_UTCTIME: FieldType:=ftUnknown;
I guess that at the moment I wrote that code, I was unsure what to do
with the SQL_UTC(DATE)TIME datatypes, so I just mapped it to the unknown
data type. I will look at it again - maybe I had some more specific
reason, but probably not. Note that I currently have tested
ODBCConnection only with the MyODBC and .mdb ODBC drivers.
The lines Michael quotes above are in fact commented out. The reason is that
the SQL_TYPE_UTC constants are not in the odbcsql unit. No surprise:
http://www.google.nl/search?q=SQL_TYPE_UTCDATETIME
yields only 6 hits, the first of which is the MSDN ODBC documentation from
which I originally heard about these constants. The unixODBC headers in fact do
not mention these field types at all! So I doubt the DB2 driver actually
returns a type like that.
The error message Arí got is defined in dbconst.pp:
SUknonwnFieldType = 'Unknown field type : %s';
This is used in the method TFieldDef.CreateField in fields.inc as follows:
Function TFieldDef.CreateField(AOwner: TComponent): TField;
Var TheField : TFieldClass;
begin
{$ifdef dsdebug}
Writeln ('Creating field '+FNAME);
{$endif dsdebug}
TheField:=GetFieldClass;
if TheField=Nil then
DatabaseErrorFmt(SUnknownFieldType,[FName]);
...
This should explain why the error message gives the field name. As an
alternative, I can raise an error in the ODBCConn unit when I encounter a
ftUnknown - then I can also give the type name (unless is it a custom type
perhaps).
I'll be right back with a version of odbcconn that tries giving a more
meaningful error using the sqlGetTypeInfo API call. Arí can also use this to
give us more information, that can help us finding out what is actually going
wrong.
Regards,
Bram
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives