[freetds] solaris 5.7, perl v5.8.5, freetds 0.62.4, DBD::Sybase-1.05_02 doesn't recognize the column type of a table database.
Jean Uwacu
jean.uwacu at freemindconsulting.com
Wed Jul 20 11:12:59 EDT 2005
I've installed DBD::Sybase-1.05_02 on top of freetds 0.62.4 on Solaris 5.7.
The integer column type doesn't appear as such for a select request
while executing tsql those are processed correctly.
So I'm thinking it's a DBD-Sybase issue. I didn't see any function in
DBD-Sybase to help me change this format number.
I notice that on this device, the remote tsql client give good results
and have no issue with number.
Here is a log of the dbitrace associated to my select request, done in a
perl script using DBI and DBD::Sybase:
DBI 1.48-nothread default trace level set to 0x0/5 (pid 4363)
-> prepare for DBD::Sybase::db (DBI::db=HASH(0x2a8c60)~0x2ccc00
'select Node, ServerSerial, AlertKey, Severity from aler
ts.status where Class = 101;')
New DBI::st (for DBD::Sybase::st, parent=DBI::db=HASH(0x2ccc00), id=)
dbih_setup_handle(DBI::st=HASH(0x2cdc08)=>DBI::st=HASH(0x2ccc30),
DBD::Sybase::st, 2cdc14, Null!)
dbih_make_com(DBI::db=HASH(0x2ccc00), 2dc2d0, DBD::Sybase::st, 420,
0) thr#0
dbih_setup_attrib(DBI::st=HASH(0x2ccc30), Err,
DBI::db=HASH(0x2ccc00)) SCALAR(0x25a8b0) (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2ccc30), State,
DBI::db=HASH(0x2ccc00)) SCALAR(0x25a910) (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2ccc30), Errstr,
DBI::db=HASH(0x2ccc00)) SCALAR(0x25a8e0) (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2ccc30), TraceLevel,
DBI::db=HASH(0x2ccc00)) 0 (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2ccc30), FetchHashKeyName,
DBI::db=HASH(0x2ccc00)) 'NAME' (already defined)
dbih_setup_attrib(DBI::st=HASH(0x2ccc30), HandleSetErr,
DBI::db=HASH(0x2ccc00)) undef (not defined)
dbih_setup_attrib(DBI::st=HASH(0x2ccc30), HandleError,
DBI::db=HASH(0x2ccc00)) undef (not defined)
syb_st_prepare() -> inUse = 0
syb_st_prepare() -> set inUse
<- prepare= DBI::st=HASH(0x2cdc08) at tstdbd.pl line 32
-> execute for DBD::Sybase::st (DBI::st=HASH(0x2cdc08)~0x2ccc30)
syb_alloc_cmd() -> CS_COMMAND 2de0d8 for CS_CONNECTION 2cf4d0
cmd_execute() -> ct_command() OK
cmd_execute() -> ct_send() OK
cmd_execute() -> set inUse flag
st_next_result() -> ct_results(4040) == 1
ct_res_info() returns 4 columns
fails in:
ct_describe(0): type = 1315923045, maxlen = 0
describe() -> col 0, type 1, realtype 1315923045
ct_describe(1): type = 1399157366, maxlen = 1919508844
describe() -> col 1, type 1, realtype 1399157366
ct_describe(2): type = 1097622898, maxlen = 0
describe() -> col 2, type 1, realtype 1097622898
ct_describe(3): type = 1399158373, maxlen = 0
describe() -> col 3, type 1, realtype 1399158373
describe() retcode = 1
st_next_result() -> lasterr = 0, lastsev = 0
<- execute= -1 at tstdbd.pl line 34
while must have be (script that executes on the server):
ct_describe(0): type = 1, maxlen = 64
describe() -> col 0, type 1, realtype 1
ct_describe(1): type = 2, maxlen = 4
describe() -> col 1, type 2, realtype 2
ct_describe(2): type = 1, maxlen = 64
describe() -> col 2, type 1, realtype 1
ct_describe(3): type = 2, maxlen = 4
describe() -> col 3, type 2, realtype 2
describe() retcode = 1
st_next_result() -> lasterr = 0, lastsev = 0
<- execute= -1 at eqtoobjserv.pl line 34
Do you have a suggestion? Thanks in advance,
Jean.
More information about the FreeTDS
mailing list