kinterbas db column type

Gandalf gandalf at geochemsource.com
Wed Nov 26 14:22:16 EST 2003


>
>
>>> Does this mean, that the kinterbasdb isn't DB-API 2.0 compliant?
>>>
>> It is DB-API 2.0 compilant. I'm sorry, maybe I misunderstood you. 
>> This is a way
>> to get the column types in InterBase inside. Do you want to know the 
>> Python types
>> in the row returned by .fetch()?
>>
>>
> Sorry Gandalf,
>
> more explanation:
>
> It's different from other modules cause it does a implicit type
> conversion to the Python-types.
> So for a DATETIME-column in mysql you get a type_code 12 (which is
> indeed DATETIME in MySQLdb) but in kinterbasdb you get t_tuple. This
> does not help me very much since the information i need is different
> from what i get.

Okay, I created this table (InterBase 6.01):

create table PV_TEST
(
ID integer not null,
PT_TEST_ID integer not null,
INTVALUE integer,
BOOLVALUE integer,
FLOATVALUE double precision,
DATETIMEVALUE timestamp,
DATEVALUE timestamp,
TIMEVALUE timestamp,
TEXTVALUE blob sub_type text segment size 80,
PERSISTENTVALUE blob segment size 80
)

This is what I got from a cursor's description:

(('ID', <type 'int'>, 12, 4, 0, 0, False), ('PT_TEST_ID', <type 'int'>, 
12, 4, 0, 0, False), ('INTVALUE', <type 'int'>, 12, 4, 0, 0, True), 
('BOOLVALUE', <type 'int'>, 12, 4, 0, 0, True), ('FLOATVALUE', <type 
'float'>, 17, 8, 0, 0, True), ('DATETIMEVALUE', <type 'tuple'>, 22, 8, 
0, 0, True), ('DATEVALUE', <type 'tuple'>, 22, 8, 0, 0, True), 
('TIMEVALUE', <type 'tuple'>, 22, 8, 0, 0, True), ('TEXTVALUE', <type 
'str'>, 0, 8, 0, 1, True), ('PERSISTENTVALUE', <type 'str'>, 0, 8, 0, 0, 
True))

The tuple type is really a tuple. Try this:

import time
time.gmtime()

This will give you a tuple. Well, you can ask for a separate DATE and 
TIME type.
Well, in dialect 1, only TIMESTAMP supported.

Cheers,

L








More information about the Python-list mailing list