freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: Bruce Seely <bseely AT stsci.edu>
- To: "freetds AT lists.ibiblio.org" <freetds AT lists.ibiblio.org>
- Subject: [freetds] Need help understanding an error
- Date: Tue, 30 Jun 2020 04:01:45 +0000
We are using freeTDS with the ODBC package that is provided by our Lisp
vendor.
Beginning with freeTDS version 1.1.1, we started seeing an error for queries
that worked in earlier releases:
Error: While getting numeric column info, Allegro ODBC detected an error:
error code returned
The ODBC code has a function SQLCOLATTRIBUTES that calls freeTDS code.
The same call that worked in pre 1.1.1 releases, fails now.
Also, when the freeTDS call fails, no reason is provided.
Below are traces of the test run in versions 1.00.99 and 1.1.1.
We are complaining to the Lisp folks, and they don’t know what to do, since
there is no explanation for the error.
What changed in version 1.1 that would cause this?
Thank you very much for your help.
Bruce Seely
Space Telescope Science Institute
;;;;;;; This is what is being done by the test function ;;;;;;;;;;;;;;;;
(setq db (connect :data-source-name "R2D2" :user "bseely" :password “..." ))
(sql "use pps_lrp_alpha" :db db)
(sql "select * from ppsdb_version" :db db))
;;;;;;; run in version 1.00.99
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CL-USER(2): (test "ppsdb_version")
>>doing (DBI::WITH-NATIVE-STRING-ODBC (DBI::SQL-STATEMENT
DBI::SQL-STATEMENT
DBI::DB)
(DBI::SQLEXECDIRECT DBI::HSTMT DBI::SQL-STATEMENT
DBI::SQL_NTS))%<< and it returns 1
; Autoloading for FOREIGN-FUNCTIONS:CHAR*-TO-STRING:
; Fast loading from bundle code/ffcompat.fasl.
>>doing (DBI::SQLNUMRESULTCOLS DBI::HSTMT DBI::COUNT-VAR)%<< and it returns 0
>>doing (DBI::SQLMORERESULTS DBI::HSTMT)%<< and it returns 100
>>doing (DBI::WITH-NATIVE-STRING-ODBC (DBI::SQL-STATEMENT
DBI::SQL-STATEMENT
DBI::DB)
(DBI::SQLEXECDIRECT DBI::HSTMT DBI::SQL-STATEMENT
DBI::SQL_NTS))%<< and it returns 0
>>doing (DBI::SQLNUMRESULTCOLS DBI::HSTMT DBI::COUNT-VAR)%<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
1 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
2 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
3 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
4 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (DBI::BLOCK-CHECK #:G1415 (DBI::SQLFETCH #:G1412))%<< and it returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK #:G1415 (DBI::SQLFETCH #:G1412))%<< and it returns
>>100
>>doing (DBI::WITH-NATIVE-STRING-ODBC (DBI::SQL-STATEMENT
DBI::SQL-STATEMENT
DBI::DB)
(DBI::SQLEXECDIRECT DBI::HSTMT DBI::SQL-STATEMENT
DBI::SQL_NTS))%<< and it returns 0
>>doing (DBI::SQLNUMRESULTCOLS DBI::HSTMT DBI::COUNT-VAR)%<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
1 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
2 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
3 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7fd4d5d1ec00 @
#x10011ae882>
4 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned 0
<< and it returns 0
>>doing (DBI::BLOCK-CHECK #:G1415 (DBI::SQLFETCH #:G1412))%<< and it returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK DBI::DB
(DBI::SQLGETDATA DBI::HSTMT DBI::INDEX
DBI::TYPECODE DBI::RES
DBI::WIDTH DBI::LENRES))%<< and it
returns 0
>>doing (DBI::BLOCK-CHECK #:G1415 (DBI::SQLFETCH #:G1412))%<< and it returns
>>100
(("1" "PPSDB86" "2020-02-11 18:26:38 -05:00" ""))
("id" "ppsdb_version" "build_time" "comment")
CL-USER(3):
;;;;;;; run in version 1.1.1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CL-USER(2): (test "ppsdb_version")
>>doing (DBI::WITH-NATIVE-STRING-ODBC (DBI::SQL-STATEMENT
DBI::SQL-STATEMENT
DBI::DB)
(DBI::SQLEXECDIRECT DBI::HSTMT DBI::SQL-STATEMENT
DBI::SQL_NTS))%<< and it returns 1
; Autoloading for FOREIGN-FUNCTIONS:CHAR*-TO-STRING:
; Fast loading from bundle code/ffcompat.fasl.
>>doing (DBI::SQLNUMRESULTCOLS DBI::HSTMT DBI::COUNT-VAR)%<< and it returns 0
>>doing (DBI::SQLMORERESULTS DBI::HSTMT)%<< and it returns 100
>>doing (DBI::WITH-NATIVE-STRING-ODBC (DBI::SQL-STATEMENT
DBI::SQL-STATEMENT
DBI::DB)
(DBI::SQLEXECDIRECT DBI::HSTMT DBI::SQL-STATEMENT
DBI::SQL_NTS))%<< and it returns 0
>>doing (DBI::SQLNUMRESULTCOLS DBI::HSTMT DBI::COUNT-VAR)%<< and it returns 0
>>doing (IF* (EQL DBI::*ODBC-VERSION* 2)
THEN (DBI::SQLCOLATTRIBUTES DBI::HSTMT DBI::COLUMN
(IF*
(EQL
DBI::ATTRIBUTE
DBI::SQL_DESC_NAME)
THEN DBI::SQL_COLUMN_NAME
ELSE DBI::ATTRIBUTE)
DBI::RETVAL 256 DBI::CHAR-CNT 0)
ELSE (DBI::SQLCOLATTRIBUTE DBI::HSTMT DBI::COLUMN
DBI::ATTRIBUTE DBI::RETVAL 256
DBI::CHAR-CNT 0))%
0[2]: (DBI::SQLCOLATTRIBUTE #<DBI::ODBC-HSTMT
DBI::ODBC-HSTMT #x7ff01d600570 @
#x10011ae882>
1 1011
#<foreign object of class #:|anon-type-5|>
256
#<foreign object of class DBI::ODBC-SHORT-BOX>
0)
0[2]: returned -1
<< and it returns -1
Error: While getting numeric column info, Allegro ODBC detected an
error: error code returned
[condition type: ODBC-ERROR]
Restart actions (select using :continue):
0: Return to Top Level (an "abort" restart).
1: Abort entirely from this (lisp) process.
[1] CL-USER(3):
- [freetds] Need help understanding an error, Bruce Seely, 06/30/2020
Archive powered by MHonArc 2.6.24.