Skip to Content.
Sympa Menu

freetds - Re: [freetds] Whose bug is it?

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: Nathaniel Talbott <nathaniel AT talbott.ws>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Cc: Christian Werner <chw AT ch-werner.de>
  • Subject: Re: [freetds] Whose bug is it?
  • Date: Fri, 5 Dec 2003 12:37:44 -0500

On Dec 5, 2003, at 12:01, ZIGLIO Frediano wrote:

Yes, this can be true. Your description is very accurate. Ruby is
correct, FreeTDS not, ODBC should ignore length if SQL_C_LONG is used.
Can you send please TDSDUMP and ODBC trace?

I've included both at the bottom of this email.


However I think your problem is related to 0.61 version that converts
always prepared statement in sql statements, the problem should not
occour in CVS version. If you are using Linux/FreeBSD (that contain good
iconv library) can you test with snapshot?

Actually, I am using a snapshot, 20031125 to be exact. I can update it if you think that would help.

Thanks,


Nathaniel

<:((><

ODBC trace:

ObjAlloc: DBC 0x8147a28
ObjAlloc: ENV 0x8141e38
SQLCall: SQLAllocConnect
> HENV=0x81774a0, HDBC=0x0, HSTMT=0x0
< SQL_SUCCESS
SQLCall: SQLConnect('sedev')
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS_WITH_INFO
SQLCall: SQLError
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
| (5701) [unixODBC][FreeTDS][SQL Server]Changed database context to 'db'.
SQLCall: SQLError
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
| (5703) [unixODBC][FreeTDS][SQL Server]Changed language setting to us_english.
SQLCall: SQLError
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_NO_DATA
SQLCall: SQLAllocStmt
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
SQLCall: SQLExecDirect('DROP TABLE test')
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumParams
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumResultCols
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
ObjAlloc: STMT 0x81b1a10
SQLCall: SQLRowCount
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLFreeStmt(SQL_DROP)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLAllocStmt
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
SQLCall: SQLExecDirect('CREATE TABLE test (tid INTEGER IDENTITY, thing INTEGER)')
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumParams
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumResultCols
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
ObjAlloc: STMT 0x81b32f0
SQLCall: SQLRowCount
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLFreeStmt(SQL_DROP)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLAllocStmt
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
SQLCall: SQLExecDirect('INSERT INTO test (thing) VALUES (1234)')
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumParams
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumResultCols
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
ObjAlloc: STMT 0x81b2dd0
SQLCall: SQLRowCount
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLFreeStmt(SQL_DROP)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLAllocStmt
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
SQLCall: SQLPrepare('INSERT INTO test (thing) VALUES (?)')
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumParams
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLDescribeParam
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_ERROR
SQLCall: SQLError
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
| IM001 (0) [unixODBC][Driver Manager]Driver does not support this function
SQLCall: SQLError
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_NO_DATA
ObjAlloc: STMT 0x81b3078
SQLCall: SQLFreeStmt(SQL_CLOSE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLFreeStmt(SQL_RESET_PARMS)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLBindParameter(SQL_PARAM_INPUT, COLUMN_SIZE=10, DECIMAL_DIGITS=0, VALUE=1234, BUFFER_LENGTH=4, STRLEN=1)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLExecute
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLFreeStmt(SQL_RESET_PARAMS)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLNumParams
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLDescribeParam
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_ERROR
SQLCall: SQLError
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
| IM001 (0) [unixODBC][Driver Manager]Driver does not support this function
SQLCall: SQLError
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_NO_DATA
SQLCall: SQLNumResultCols
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLRowCount
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLFreeStmt(SQL_DROP)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1378
< SQL_SUCCESS
SQLCall: SQLAllocStmt
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
SQLCall: SQLExecDirect('SELECT * FROM test')
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLNumParams
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLNumResultCols
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_TYPE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_DISPLAY_SIZE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_TYPE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_DISPLAY_SIZE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_TYPE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_DISPLAY_SIZE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_TYPE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLColAttributes(SQL_COLUMN_DISPLAY_SIZE)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
ObjAlloc: STMT 0x81b4490
SQLCall: SQLFetchScroll(SQL_FETCH_NEXT)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLGetData
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLGetData
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
ruby 1.8.1 (2003-10-31) [i386-linux]
["1", 1234]
SQLCall: SQLFetchScroll(SQL_FETCH_NEXT)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLGetData
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
SQLCall: SQLGetData
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
["2", 1]
SQLCall: SQLFetchScroll(SQL_FETCH_NEXT)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_NO_DATA
SQLCall: SQLFreeStmt(SQL_DROP)
> HENV=0x0, HDBC=0x0, HSTMT=0x81b1390
< SQL_SUCCESS
ObjFree: STMT 0x81b4490
ObjFree: STMT 0x81b3078
ObjFree: STMT 0x81b2dd0
ObjFree: STMT 0x81b32f0
ObjFree: STMT 0x81b1a10
ObjFree: DBC 0x8147a28
SQLCall: SQLDisconnect
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
SQLCall: SQLFreeConnect
> HENV=0x0, HDBC=0x8177a30, HSTMT=0x0
< SQL_SUCCESS
ObjFree: ENV 0x8141e38
SQLCall: SQLFreeEnv
> HENV=0x0, HDBC=0x81774a0, HSTMT=0x0
< SQL_SUCCESS


TDSDUMP (some parts elided to protect the guilty):

Starting log file for FreeTDS 0.62.dev.20031125
on 2003-12-05 11:27:18 with debug level 99.
names for ISO-8859-1: ISO-8859-1
names for UTF-8: UTF-8
names for UCS-2LE: UCS-2LE
names for UCS-2BE: UCS-2BE
iconv to convert client-side data to the "ISO-8859-1" character set
11:27:18.959576 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
11:27:18.959924 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
11:27:18.960130 Connecting to 207.27.152.11 port 1433, TDS 7.0.
11:27:18.962168 tds_put_string converting 9 bytes of "proxytest"
11:27:18.962381 tds_put_string wrote 18 bytes
11:27:18.962486 tds_put_string converting 8 bytes of ""
11:27:18.962605 tds_put_string wrote 16 bytes
11:27:18.962718 tds_put_string wrote 0 bytes
11:27:18.962816 tds_put_string converting 6 bytes of "SYBASE"
11:27:18.962932 tds_put_string wrote 12 bytes
11:27:18.963029 tds_put_string wrote 0 bytes
11:27:18.963120 tds_put_string converting 10 bytes of "us_english"
11:27:18.963236 tds_put_string wrote 20 bytes
11:27:18.963334 tds_put_string converting 16 bytes of ""
11:27:18.963451 tds_put_string wrote 32 bytes
11:27:18.963718 tds_process_login_tokens()
Received header @ 11:27:18.967864
0000 04 01 01 da 00 00 00 00- |........|


Received packet @ 11:27:18.968120
<snip>
0030 72 00 ab 84 00 45 16 00-00 02 00 2f 00 43 00 68 |r....E.. .../.C.h|
0040 00 61 00 6e 00 67 00 65-00 64 00 20 00 64 00 61 |.a.n.g.e .d. .d.a|
0050 00 74 00 61 00 62 00 61-00 73 00 65 00 20 00 63 |.t.a.b.a .s.e. .c|
0060 00 6f 00 6e 00 74 00 65-00 78 00 74 00 20 00 74 |.o.n.t.e .x.t. .t|
<snip>
00c0 73 00 5f 00 65 00 6e 00-67 00 6c 00 69 00 73 00 |s._.e.n. g.l.i.s.|
00d0 68 00 00 ab 74 00 47 16-00 00 01 00 27 00 43 00 |h...t.G. ....'.C.|
00e0 68 00 61 00 6e 00 67 00-65 00 64 00 20 00 6c 00 |h.a.n.g. e.d. .l.|
00f0 61 00 6e 00 67 00 75 00-61 00 67 00 65 00 20 00 |a.n.g.u. a.g.e. .|
0100 73 00 65 00 74 00 74 00-69 00 6e 00 67 00 20 00 |s.e.t.t. i.n.g. .|
0110 74 00 6f 00 20 00 75 00-73 00 5f 00 65 00 6e 00 |t.o. .u. s._.e.n.|
<snip>
0150 00 73 00 6f 00 5f 00 31-00 01 00 00 e3 0b 00 05 |.s.o._.1 ........|
0160 04 31 00 30 00 33 00 33-00 00 e3 0f 00 06 06 31 |.1.0.3.3 .......1|
0170 00 39 00 36 00 36 00 30-00 39 00 00 ad 36 00 01 |.9.6.6.0 .9...6..|
0180 07 00 00 00 16 4d 00 69-00 63 00 72 00 6f 00 73 |.....M.i .c.r.o.s|
0190 00 6f 00 66 00 74 00 20-00 53 00 51 00 4c 00 20 |.o.f.t. .S.Q.L. |
01a0 00 53 00 65 00 72 00 76-00 65 00 72 00 00 00 00 |.S.e.r.v .e.r....|
01b0 00 07 00 04 27 e3 11 00-04 03 35 00 31 00 32 00 |....'... ..5.1.2.|
01c0 04 34 00 30 00 39 00 36-00 fd 00 00 00 00 00 00 |.4.0.9.6 ........|
01d0 00 00 - |..|


11:27:18.972124 looking for login token, got e3(ENVCHANGE)
11:27:18.972243 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 32 from wire to give 16 to client.
tds_get_string: reading 12 from wire to give 6 to client.
11:27:18.972651 looking for login token, got ab(INFO)
11:27:18.972763 tds_process_default_tokens() marker is ab(INFO)
tds_get_string: reading 94 from wire to give 47 to client.
tds_get_string: reading 26 from wire to give 13 to client.
11:27:18.973180 looking for login token, got e3(ENVCHANGE)
11:27:18.973295 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 20 from wire to give 10 to client.
11:27:18.973560 looking for login token, got ab(INFO)
11:27:18.973672 tds_process_default_tokens() marker is ab(INFO)
tds_get_string: reading 78 from wire to give 39 to client.
tds_get_string: reading 26 from wire to give 13 to client.
11:27:18.974047 looking for login token, got e3(ENVCHANGE)
11:27:18.974160 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 10 from wire to give 5 to client.
tds_get_string: reading 2 from wire to give 1 to client.
11:27:18.974627 looking for login token, got e3(ENVCHANGE)
11:27:18.974743 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 8 from wire to give 4 to client.
11:27:18.974971 looking for login token, got e3(ENVCHANGE)
11:27:18.975081 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 12 from wire to give 6 to client.
11:27:18.975311 looking for login token, got ad(LOGINACK)
tds_get_string: reading 44 from wire to give 22 to client.
11:27:18.975536 looking for login token, got e3(ENVCHANGE)
11:27:18.975646 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 6 from wire to give 3 to client.
tds_get_string: reading 8 from wire to give 4 to client.
11:27:18.975979 looking for login token, got fd(DONE)
11:27:18.976089 tds_process_default_tokens() marker is fd(DONE)
11:27:18.976201 tds_process_end: more_results = 0
11:27:18.976284 was_cancelled = 0
11:27:18.976361 error = 0
11:27:18.976428 done_count_valid = 0
11:27:18.976523 tds_process_end() state set to TDS_IDLE
11:27:18.976624 leaving tds_process_login_tokens() returning 1
11:27:18.976806 tds_put_string converting 19 bytes of "set textsize 64512 "
11:27:18.976937 tds_put_string wrote 38 bytes
Sending packet @ 11:27:18.977063
0000 01 01 00 2e 00 00 01 00-73 00 65 00 74 00 20 00 |........ s.e.t. .|
0010 74 00 65 00 78 00 74 00-73 00 69 00 7a 00 65 00 |t.e.x.t. s.i.z.e.|
0020 20 00 36 00 34 00 35 00-31 00 32 00 20 00 | .6.4.5. 1.2. .|


Received header @ 11:27:18.978481
0000 04 01 00 11 00 00 00 00- |........|


Received packet @ 11:27:18.978718
0000 fd 00 00 be 00 00 00 00-00 |........ .|


11:27:18.978894 processing result tokens. marker is fd(DONE)
11:27:18.979009 tds_process_end: more_results = 0
11:27:18.979092 was_cancelled = 0
11:27:18.979169 error = 0
11:27:18.979236 done_count_valid = 0
11:27:18.979331 tds_process_end() state set to TDS_IDLE
11:27:18.979434 tds_process_result_tokens() state is COMPLETED
SQLGetFunctions: fFunction is 999
11:27:18.981056 tds_put_string converting 15 bytes of "DROP TABLE test"
11:27:18.981206 tds_put_string wrote 30 bytes
Sending packet @ 11:27:18.981327
0000 01 01 00 26 00 00 01 00-44 00 52 00 4f 00 50 00 |...&.... D.R.O.P.|
0010 20 00 54 00 41 00 42 00-4c 00 45 00 20 00 74 00 | .T.A.B. L.E. .t.|
0020 65 00 73 00 74 00 - |e.s.t.|


Received header @ 11:27:19.003698
0000 04 01 00 11 00 00 00 00- |........|


Received packet @ 11:27:19.003939
0000 fd 00 00 c7 00 00 00 00-00 |........ .|


11:27:19.004115 processing result tokens. marker is fd(DONE)
11:27:19.004229 tds_process_end: more_results = 0
11:27:19.004312 was_cancelled = 0
11:27:19.004390 error = 0
11:27:19.004457 done_count_valid = 0
11:27:19.004552 tds_process_end() state set to TDS_IDLE
11:27:19.004656 tds_process_result_tokens() state is COMPLETED
SQLFreeHandle(3, 0x81b16c0)
11:27:19.005575 tds_put_string converting 55 bytes of "CREATE TABLE test (tid INTEGER IDENTITY, thing INTEGER)"
11:27:19.005731 tds_put_string wrote 110 bytes
Sending packet @ 11:27:19.005852
0000 01 01 00 76 00 00 01 00-43 00 52 00 45 00 41 00 |...v.... C.R.E.A.|
0010 54 00 45 00 20 00 54 00-41 00 42 00 4c 00 45 00 |T.E. .T. A.B.L.E.|
0020 20 00 74 00 65 00 73 00-74 00 20 00 28 00 74 00 | .t.e.s. t. .(.t.|
0030 69 00 64 00 20 00 49 00-4e 00 54 00 45 00 47 00 |i.d. .I. N.T.E.G.|
0040 45 00 52 00 20 00 49 00-44 00 45 00 4e 00 54 00 |E.R. .I. D.E.N.T.|
0050 49 00 54 00 59 00 2c 00-20 00 74 00 68 00 69 00 |I.T.Y.,. .t.h.i.|
0060 6e 00 67 00 20 00 49 00-4e 00 54 00 45 00 47 00 |n.g. .I. N.T.E.G.|
0070 45 00 52 00 29 00 - |E.R.).|


Received header @ 11:27:19.011899
0000 04 01 00 11 00 00 00 00- |........|


Received packet @ 11:27:19.012139
0000 fd 00 00 c6 00 00 00 00-00 |........ .|


11:27:19.012315 processing result tokens. marker is fd(DONE)
11:27:19.012428 tds_process_end: more_results = 0
11:27:19.012511 was_cancelled = 0
11:27:19.012589 error = 0
11:27:19.012657 done_count_valid = 0
11:27:19.012751 tds_process_end() state set to TDS_IDLE
11:27:19.012853 tds_process_result_tokens() state is COMPLETED
SQLFreeHandle(3, 0x81b16c0)
11:27:19.013498 tds_put_string converting 38 bytes of "INSERT INTO test (thing) VALUES (1234)"
11:27:19.013652 tds_put_string wrote 76 bytes
Sending packet @ 11:27:19.013772
0000 01 01 00 54 00 00 01 00-49 00 4e 00 53 00 45 00 |...T.... I.N.S.E.|
0010 52 00 54 00 20 00 49 00-4e 00 54 00 4f 00 20 00 |R.T. .I. N.T.O. .|
0020 74 00 65 00 73 00 74 00-20 00 28 00 74 00 68 00 |t.e.s.t. .(.t.h.|
0030 69 00 6e 00 67 00 29 00-20 00 56 00 41 00 4c 00 |i.n.g.). .V.A.L.|
0040 55 00 45 00 53 00 20 00-28 00 31 00 32 00 33 00 |U.E.S. . (.1.2.3.|
0050 34 00 29 00 - |4.).|


Received header @ 11:27:19.023255
0000 04 01 00 11 00 00 00 00- |........|


Received packet @ 11:27:19.023493
0000 fd 10 00 c3 00 01 00 00-00 |........ .|


11:27:19.023668 processing result tokens. marker is fd(DONE)
11:27:19.023783 tds_process_end: more_results = 0
11:27:19.023866 was_cancelled = 0
11:27:19.023943 error = 0
11:27:19.024011 done_count_valid = 1
11:27:19.024106 tds_process_end() state set to TDS_IDLE
11:27:19.024206 rows_affected = 1
SQLFreeHandle(3, 0x81b1ff8)
sql2tds.c:123 type=12
sql2tds.c:129
sql2tds.c:192
sql2tds.c:197
sql2tds.c:219
sql2tds.c:254
Creating prepared statement
11:27:19.025674 tds_put_string converting 3 bytes of "@P1"
11:27:19.025809 tds_put_string wrote 6 bytes
Sending packet @ 11:27:19.025938
0000 03 01 00 a8 00 00 01 00-0a 00 73 00 70 00 5f 00 |........ ..s.p._.|
0010 70 00 72 00 65 00 70 00-61 00 72 00 65 00 00 00 |p.r.e.p. a.r.e...|
0020 00 01 26 04 00 00 00 63-1c 00 00 00 1c 00 00 00 |..&....c ........|
0030 40 00 50 00 31 00 20 00-56 00 41 00 52 00 43 00 |@.P.1. . V.A.R.C.|
0040 48 00 41 00 52 00 28 00-31 00 29 00 00 00 63 4a |H.A.R.(. 1.)...cJ|
0050 00 00 00 4a 00 00 00 49-00 4e 00 53 00 45 00 52 |...J...I .N.S.E.R|
0060 00 54 00 20 00 49 00 4e-00 54 00 4f 00 20 00 74 |.T. .I.N .T.O. .t|
0070 00 65 00 73 00 74 00 20-00 28 00 74 00 68 00 69 |.e.s.t. .(.t.h.i|
0080 00 6e 00 67 00 29 00 20-00 56 00 41 00 4c 00 55 |.n.g.). .V.A.L.U|
0090 00 45 00 53 00 20 00 28-00 40 00 50 00 31 00 29 |.E.S. .( .@.P.1.)|
00a0 00 00 00 38 01 00 00 00- |...8....|


Received header @ 11:27:19.029229
0000 04 01 00 2f 00 00 00 00- |.../....|


Received packet @ 11:27:19.029468
0000 ff 11 00 c3 00 00 00 00-00 79 00 00 00 00 ac 0d |........ .y......|
0010 00 00 01 38 00 00 00 26-04 04 01 00 00 00 fe 00 |...8...& ........|
0020 00 e0 00 00 00 00 00 - |.......|


11:27:19.029902 processing result tokens. marker is ff(DONEINPROC)
11:27:19.030016 tds_process_end: more_results = 1
11:27:19.030099 was_cancelled = 0
11:27:19.030176 error = 0
11:27:19.030243 done_count_valid = 1
11:27:19.030340 rows_affected = 0
11:27:19.030440 processing result tokens. marker is 79(RETURNSTATUS)
11:27:19.030553 processing result tokens. marker is ac(PARAM)
11:27:19.030664 processing parameters for sp 11
11:27:19.030757 calling tds_process_param_result
11:27:19.030910 processing result. type = 38(integer-null), varint_size 1
11:27:19.031040 processing result. column_size 4
11:27:19.031148 processing row. column is 0 varint size = 1
11:27:19.031264 processing row. column size is 4
11:27:19.031390 clearing column 0 NULL bit
11:27:19.031486 no of hidden return parameters 1
11:27:19.031593 processing result tokens. marker is fe(DONEPROC)
11:27:19.031706 tds_process_end: more_results = 0
11:27:19.031790 was_cancelled = 0
11:27:19.031867 error = 0
11:27:19.031934 done_count_valid = 0
11:27:19.032029 tds_process_end() state set to TDS_IDLE
End prepare, execute
11:27:19.032166 tds_submit_execute()
11:27:19.032254 tds_put_data_info putting status
11:27:19.032356 tds_put_data: is_null = 0, colsize = 1
11:27:19.032462 tds_put_data: not null param varint_size = 2
Sending packet @ 11:27:19.032595
0000 03 01 00 2f 00 00 01 00-0a 00 73 00 70 00 5f 00 |.../.... ..s.p._.|
0010 65 00 78 00 65 00 63 00-75 00 74 00 65 00 00 00 |e.x.e.c. u.t.e...|
0020 00 00 38 01 00 00 00 00-00 a7 01 00 01 00 31 |..8..... ......1|


Received header @ 11:27:19.038831
0000 04 01 00 1f 00 00 00 00- |........|


Received packet @ 11:27:19.039068
0000 ff 11 00 c3 00 01 00 00-00 79 00 00 00 00 fe 00 |........ .y......|
0010 00 e0 00 01 00 00 00 - |.......|


11:27:19.039369 processing result tokens. marker is ff(DONEINPROC)
11:27:19.039483 tds_process_end: more_results = 1
11:27:19.039567 was_cancelled = 0
11:27:19.039644 error = 0
11:27:19.039711 done_count_valid = 1
11:27:19.039808 rows_affected = 1
11:27:19.039907 processing result tokens. marker is 79(RETURNSTATUS)
11:27:19.040020 processing result tokens. marker is fe(DONEPROC)
11:27:19.040132 tds_process_end: more_results = 0
11:27:19.040214 was_cancelled = 0
11:27:19.040291 error = 0
11:27:19.040358 done_count_valid = 0
11:27:19.040452 tds_process_end() state set to TDS_IDLE
SQLFreeHandle(3, 0x81b1ff8)
11:27:19.040939 tds_submit_unprepare() miax336000
Sending packet @ 11:27:19.041066
0000 03 01 00 2b 00 00 01 00-0c 00 73 00 70 00 5f 00 |...+.... ..s.p._.|
0010 75 00 6e 00 70 00 72 00-65 00 70 00 61 00 72 00 |u.n.p.r. e.p.a.r.|
0020 65 00 00 00 00 00 38 01-00 00 00 |e.....8. ...|


Received header @ 11:27:19.042426
0000 04 01 00 16 00 00 00 00- |........|


Received packet @ 11:27:19.042665
0000 79 00 00 00 00 fe 00 00-e0 00 01 00 00 00 |y....... ......|


11:27:19.042862 processing result tokens. marker is 79(RETURNSTATUS)
11:27:19.042977 processing result tokens. marker is fe(DONEPROC)
11:27:19.043089 tds_process_end: more_results = 0
11:27:19.043172 was_cancelled = 0
11:27:19.043249 error = 0
11:27:19.043316 done_count_valid = 0
11:27:19.043411 tds_process_end() state set to TDS_IDLE
11:27:19.043863 tds_put_string converting 18 bytes of "SELECT * FROM test"
11:27:19.044013 tds_put_string wrote 36 bytes
Sending packet @ 11:27:19.044133
0000 01 01 00 2c 00 00 01 00-53 00 45 00 4c 00 45 00 |...,.... S.E.L.E.|
0010 43 00 54 00 20 00 2a 00-20 00 46 00 52 00 4f 00 |C.T. .*. .F.R.O.|
0020 4d 00 20 00 74 00 65 00-73 00 74 00 |M. .t.e. s.t.|


Received header @ 11:27:19.048242
0000 04 01 00 45 00 00 00 00- |...E....|


Received packet @ 11:27:19.048481
0000 81 02 00 00 00 10 00 38-03 74 00 69 00 64 00 00 |.......8 .t.i.d..|
0010 00 09 00 26 04 05 74 00-68 00 69 00 6e 00 67 00 |...&..t. h.i.n.g.|
0020 d1 01 00 00 00 04 d2 04-00 00 d1 02 00 00 00 04 |........ ........|
0030 01 00 00 00 fd 10 00 c1-00 02 00 00 00 |........ .....|


11:27:19.049073 processing result tokens. marker is 81(TDS7_RESULT)
tds_get_string: reading 6 from wire to give 3 to client.
11:27:19.049335 tds7_get_data_info:1424:
colname = tid (3 bytes)
type = 56 (int)
server's type = 56 (int)
column_varint_size = 0
column_size = 4 (4 on server)
tds_get_string: reading 10 from wire to give 5 to client.
11:27:19.049728 tds7_get_data_info:1424:
colname = thing (5 bytes)
type = 38 (integer-null)
server's type = 38 (integer-null)
column_varint_size = 1
column_size = 4 (4 on server)
11:27:19.049988 processing result tokens. marker is d1(ROW)
odbc:SQLColAttribute: fDescType is 2
odbc:SQLColAttribute: fDescType is 6
odbc:SQLColAttribute: fDescType is 2
odbc:SQLColAttribute: fDescType is 6
odbc:SQLColAttribute: fDescType is 2
odbc:SQLColAttribute: fDescType is 6
odbc:SQLColAttribute: fDescType is 2
odbc:SQLColAttribute: fDescType is 6
11:27:19.050990 processing row tokens. marker is d1(ROW)
11:27:19.051120 processing row. column is 0 varint size = 0
11:27:19.051234 processing row. column size is 4
11:27:19.051330 clearing column 0 NULL bit
11:27:19.051446 processing row. column is 1 varint size = 1
11:27:19.051562 processing row. column size is 4
11:27:19.051659 clearing column 1 NULL bit
convert_tds2sql: src is 56 dest = 1
convert_tds2sql: outputting character data destlen = 12
convert_tds2sql: src is 56 dest = 4
11:27:19.053309 processing row tokens. marker is d1(ROW)
11:27:19.053453 processing row. column is 0 varint size = 0
11:27:19.053567 processing row. column size is 4
11:27:19.053664 clearing column 0 NULL bit
11:27:19.053753 processing row. column is 1 varint size = 1
11:27:19.053866 processing row. column size is 4
11:27:19.053963 clearing column 1 NULL bit
convert_tds2sql: src is 56 dest = 1
convert_tds2sql: outputting character data destlen = 12
convert_tds2sql: src is 56 dest = 4
11:27:19.055118 processing row tokens. marker is fd(DONE)
11:27:19.055257 tds_process_end: more_results = 0
11:27:19.055343 was_cancelled = 0
11:27:19.055420 error = 0
11:27:19.055487 done_count_valid = 1
11:27:19.055583 tds_process_end() state set to TDS_IDLE
11:27:19.055685 rows_affected = 2
SQLFetch: NO_DATA_FOUND
SQLFreeHandle(3, 0x81b2010)





Archive powered by MHonArc 2.6.24.

Top of Page