[freetds] Re: Inserting empty strings into MS SQL Server

Charles Bearden Charles.F.Bearden at uth.tmc.edu
Mon Aug 9 15:12:41 EDT 2004


> Charles Bearden writes,
> 
> > I am trying to avoid NULLs in my columns and am finding that the
empty
> > string works as a substitute for almost all cases where I would have
> > used a NULL in the past.  However, when I pass empty strings as
values
> > in the tuple second argument to the execute method (e.g.
> > 'cu.execute(stmnt, tpl)'), the following exception is raised:
> 
> Not knowing the data types you are passing, here is something to keep
in
> mind. 
> 
> Numeric data can be NULL in SQL Server, and passing a NULLable value
to a
> numeric column is permitted.  What is NOT permitted however, is
passing an
> empty string to a numeric column, and this looks like what might be
> occurring here.
> 
> Check data types - and if you must use something other than NULL in
> numerics, and we do not permit it here, we use Defaults - default all
> numerics to zero or other value that would make sense.  For Dates, we
do not
> use null dates - we either default to getdate() (current date/time) or
for
> an undefined date, we use '2100-12-31 00:00:00' - well enough into the
> future that this system will very well be replaced by then.

Thanks for the response.  Sorry, I should have posted the table 
definition in my first message.  All columns in this table except for 
ID are of a string type: varchar, nvarchar, or char:

  ID               int(4)
  PMID             varchar(10)
  MID              varchar(10)
  ISSN             varchar(9)
  Volume           nvarchar(48)
  Issue            nvarchar(100)
  PDYear           nvarchar(16)
  PDMonth          nvarchar(16)
  PDDay            nvarchar(20)
  PDSeason         nvarchar(40)
  PDMedDate        nvarchar(100)
  ArticleTitle     nvarchar(1024)
  Pagination       nvarchar(50)
  Affiliation      nvarchar(768)
  [Language]       char(3)
  VernacularTitle  nvarchar(640)
  Country          nvarchar(30)
  MedlineTA        nvarchar(100)
  NlmUniqueID      nvarchar(10)
  PubDate          nvarchar(128)
  Cite             nvarchar(640)

As noted, the same script (using mx.ODBC.Windows instead of
mx.ODBC.iODBC) successfully inserts '' under Windows.

I'm appending a somewhat sanitized TDSDUMP log of one attempt.  
In this case, I am trying to insert the empty string into column 'ISSN'.

Here is the INSERT statement, followed by the tuple of parameter values
I 
used.  Thanks for any advice.

Chuck


  INSERT INTO pmCiteTest
  (ID, PMID, MID, ISSN, Volume, Issue, PDYear, PDMonth, PDDay, PDSeason,
   PDMedDate, ArticleTitle, Pagination, Affiliation, Language,
VernacularTitle,
   Country, MedlineTA, NlmUniqueID, PubDate, Cite)
  VALUES
  (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)

(1, 'foo', ' ', '', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo',
'foo',
 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo')


--------------------------------------------------
Starting log file for FreeTDS 0.62.4
	on 2004-08-09 14:00:35 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
14:00:35.736115 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
14:00:35.736165 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
14:00:35.736199 Connecting to 129.106.31.28 port 1433, TDS 7.0.
14:00:35.736514 tds_put_string converting 8 bytes of "xxxxxxxx"
14:00:35.736557 tds_put_string wrote 16 bytes
14:00:35.736578 tds_put_string wrote 0 bytes
14:00:35.736598 tds_put_string converting 6 bytes of "SYBASE"
14:00:35.736623 tds_put_string wrote 12 bytes
14:00:35.736643 tds_put_string wrote 0 bytes
14:00:35.736663 tds_put_string converting 10 bytes of "us_english"
14:00:35.736685 tds_put_string wrote 20 bytes
14:00:35.736705 tds_put_string converting 9 bytes of "xxxxxxxxx"
14:00:35.736727 tds_put_string wrote 18 bytes
14:00:35.736773 tds_process_login_tokens()
Received header @ 14:00:35.738189
0000 04 01 00 43 00 00 01 00-                        |...C....|


Received packet @ 14:00:35.738226
0000 ed 38 00 4e 54 4c 4d 53-53 50 00 02 00 00 00 00 |.8.NTLMS SP......|
0010 00 00 00 38 00 00 00 01-82 00 02 76 de 33 c1 14 |...8.... ...v.3..|
0020 77 74 b5 00 00 00 00 00-00 00 00 00 00 00 00 38 |wt...... .......8|
0030 00 00 00 05 00 93 08 00-00 00 0f                |........ ...|


14:00:35.738287 looking for login token, got  ed(AUTH)
TDS_AUTH_TOKEN PDU size 56
TDS_AUTH_TOKEN nonce
0000 76 de 33 c1 14 77 74 b5-                        |v.3..wt.|

14:00:35.738352 Draining 16 bytes
14:00:35.738373 tds_put_string converting 7 bytes of "xxxxxxxxxxxxxxxx"
14:00:35.738396 tds_put_string wrote 14 bytes
14:00:35.738415 tds_put_string converting 8 bytes of "xxxxxxxx"
14:00:35.738437 tds_put_string wrote 16 bytes
14:00:35.738457 tds_put_string converting 8 bytes of "xxxxxxxx"
14:00:35.738479 tds_put_string wrote 16 bytes
Sending packet @ 14:00:35.739638
0000 11 01 00 a6 00 00 01 00-4e 54 4c 4d 53 53 50 00 |........ NTLMSSP.|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |........ x.......|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |........ @.......|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |x....... ^.......|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |........ x.x.x.x.|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |x.x.x.x. x.x.x.x.|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |x.x.x.x. x.x.x.x.|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |x.x.x... ....x..x|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |..\.x..; /.......|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |.x....x/ ..xx....|
xxxx xx xx xx xx xx xx      -                        |. ....|


Received header @ 14:00:35.755710
0000 04 01 01 ac 00 39 01 00-                        |.....9..|


Received packet @ 14:00:35.755747
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |.!...x.x .x.x._.x|
0010 00 65 00 73 00 74 00 06-6d 00 61 00 73 00 74 00 |.e.s.t.. m.a.s.t.|
0020 65 00 72 00 ab 6c 00 45-16 00 00 02 00 28 00 43 |e.r..l.E .....(.C|
0030 00 68 00 61 00 6e 00 67-00 65 00 64 00 20 00 64 |.h.a.n.g .e.d. .d|
0040 00 61 00 74 00 61 00 62-00 61 00 73 00 65 00 20 |.a.t.a.b .a.s.e. |
0050 00 63 00 6f 00 6e 00 74-00 65 00 78 00 74 00 20 |.c.o.n.t .e.x.t. |
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |.x.x. .' .x.x.x.x|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |._.x.x.x .x.'....|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |x.x.x.x. x.x.x.x.|
0090 00 00 00 e3 17 00 02 0a-75 00 73 00 5f 00 65 00 |........ u.s._.e.|
00a0 6e 00 67 00 6c 00 69 00-73 00 68 00 00 ab 6a 00 |n.g.l.i. s.h...j.|
00b0 47 16 00 00 01 00 27 00-43 00 68 00 61 00 6e 00 |G.....'. C.h.a.n.|
00c0 67 00 65 00 64 00 20 00-6c 00 61 00 6e 00 67 00 |g.e.d. . l.a.n.g.|
00d0 75 00 61 00 67 00 65 00-20 00 73 00 65 00 74 00 |u.a.g.e.  .s.e.t.|
00e0 74 00 69 00 6e 00 67 00-20 00 74 00 6f 00 20 00 |t.i.n.g.  .t.o. .|
00f0 75 00 73 00 5f 00 65 00-6e 00 67 00 6c 00 69 00 |u.s._.e. n.g.l.i.|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |x.x....x .x.x.x.x|
xxxx xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx xx |.x.x.x.. .......x|
0120 00 73 00 6f 00 5f 00 31-00 01 00 00 e3 0b 00 05 |.s.o._.1 ........|
0130 04 31 00 30 00 33 00 33-00 00 e3 0f 00 06 06 31 |.1.0.3.3 .......1|
0140 00 39 00 36 00 36 00 30-00 39 00 00 ad 36 00 01 |.9.6.6.0 .9...6..|
0150 07 00 00 00 16 4d 00 69-00 63 00 72 00 6f 00 73 |.....M.i .c.r.o.s|
0160 00 6f 00 66 00 74 00 20-00 53 00 51 00 4c 00 20 |.o.f.t.  .S.Q.L. |
0170 00 53 00 65 00 72 00 76-00 65 00 72 00 00 00 00 |.S.e.r.v .e.r....|
0180 00 08 00 03 32 e3 13 00-04 04 34 00 30 00 39 00 |....2... ..4.0.9.|
0190 36 00 04 34 00 30 00 39-00 36 00 fd 00 00 00 00 |6..4.0.9 .6......|
01a0 00 00 00 00            -                        |....|


14:00:35.756092 looking for login token, got  e3(ENVCHANGE)
14:00:35.756113 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 18 from wire to give 9 to client.
tds_get_string: reading 12 from wire to give 6 to client.
14:00:35.756188 looking for login token, got  ab(INFO)
14:00:35.756210 tds_process_default_tokens() marker is ab(INFO)
tds_get_string: reading 80 from wire to give 40 to client.
tds_get_string: reading 16 from wire to give 8 to client.
14:00:35.756285 looking for login token, got  e3(ENVCHANGE)
14:00:35.756306 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 20 from wire to give 10 to client.
14:00:35.756351 looking for login token, got  ab(INFO)
14:00:35.756372 tds_process_default_tokens() marker is ab(INFO)
tds_get_string: reading 78 from wire to give 39 to client.
tds_get_string: reading 16 from wire to give 8 to client.
14:00:35.756441 looking for login token, got  e3(ENVCHANGE)
14:00:35.756462 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.
14:00:35.756535 looking for login token, got  e3(ENVCHANGE)
14:00:35.756556 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 8 from wire to give 4 to client.
14:00:35.756600 looking for login token, got  e3(ENVCHANGE)
14:00:35.756621 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 12 from wire to give 6 to client.
14:00:35.756666 looking for login token, got  ad(LOGINACK)
tds_get_string: reading 44 from wire to give 22 to client.
14:00:35.756709 looking for login token, got  e3(ENVCHANGE)
14:00:35.756729 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 8 from wire to give 4 to client.
tds_get_string: reading 8 from wire to give 4 to client.
14:00:35.756794 increasing block size from 4096 to 4096
14:00:35.756827 looking for login token, got  fd(DONE)
14:00:35.756848 tds_process_default_tokens() marker is fd(DONE)
14:00:35.756871 tds_process_end: more_results = 0
		was_cancelled = 0
		error = 0
		done_count_valid = 0
14:00:35.756900 tds_process_end() state set to TDS_IDLE
14:00:35.756921 leaving tds_process_login_tokens() returning 1
14:00:35.756955 tds_put_string converting 19 bytes of "set textsize
64512 "
14:00:35.756978 tds_put_string wrote 38 bytes
Sending packet @ 14:00:35.757000
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 @ 14:00:35.757476
0000 04 01 00 11 00 39 01 00-                        |.....9..|


Received packet @ 14:00:35.757511
0000 fd 00 00 be 00 00 00 00-00                      |........ .|


14:00:35.757536 processing result tokens.  marker is  fd(DONE)
14:00:35.757559 tds_process_end: more_results = 0
		was_cancelled = 0
		error = 0
		done_count_valid = 0
14:00:35.757589 tds_process_end() state set to TDS_IDLE
14:00:35.757611 tds_process_result_tokens() state is COMPLETED
SQLGetFunctions: fFunction is 58
change_autocommit: executing SET IMPLICIT_TRANSACTIONS ON
14:00:35.757712 tds_put_string converting 28 bytes of "SET
IMPLICIT_TRANSACTIONS ON"
14:00:35.757757 tds_put_string wrote 56 bytes
Sending packet @ 14:00:35.757783
0000 01 01 00 40 00 00 01 00-53 00 45 00 54 00 20 00 |... at .... S.E.T. .|
0010 49 00 4d 00 50 00 4c 00-49 00 43 00 49 00 54 00 |I.M.P.L. I.C.I.T.|
0020 5f 00 54 00 52 00 41 00-4e 00 53 00 41 00 43 00 |_.T.R.A. N.S.A.C.|
0030 54 00 49 00 4f 00 4e 00-53 00 20 00 4f 00 4e 00 |T.I.O.N. S. .O.N.|


Received header @ 14:00:35.758183
0000 04 01 00 11 00 39 01 00-                        |.....9..|


Received packet @ 14:00:35.758218
0000 fd 00 00 b9 00 00 00 00-00                      |........ .|


14:00:35.758244 processing result tokens.  marker is  fd(DONE)
14:00:35.758266 tds_process_end: more_results = 0
		was_cancelled = 0
		error = 0
		done_count_valid = 0
14:00:35.758295 tds_process_end() state set to TDS_IDLE
14:00:35.758316 tds_process_result_tokens() state is COMPLETED
sql2tds.c:120 type=4
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
sql2tds.c:120 type=1
sql2tds.c:126
sql2tds.c:261
Creating prepared statement
14:00:35.766443 tds_put_string converting 3 bytes of "@P1"
14:00:35.766473 tds_put_string wrote 6 bytes
14:00:35.766495 tds_put_string converting 3 bytes of "@P2"
14:00:35.766517 tds_put_string wrote 6 bytes
14:00:35.766537 tds_put_string converting 3 bytes of "@P3"
14:00:35.766559 tds_put_string wrote 6 bytes
14:00:35.766579 tds_put_string converting 3 bytes of "@P4"
14:00:35.766601 tds_put_string wrote 6 bytes
14:00:35.766622 tds_put_string converting 3 bytes of "@P5"
14:00:35.766643 tds_put_string wrote 6 bytes
14:00:35.766663 tds_put_string converting 3 bytes of "@P6"
14:00:35.766685 tds_put_string wrote 6 bytes
14:00:35.766706 tds_put_string converting 3 bytes of "@P7"
14:00:35.766727 tds_put_string wrote 6 bytes
14:00:35.766748 tds_put_string converting 3 bytes of "@P8"
14:00:35.766769 tds_put_string wrote 6 bytes
14:00:35.766790 tds_put_string converting 3 bytes of "@P9"
14:00:35.766811 tds_put_string wrote 6 bytes
14:00:35.766832 tds_put_string converting 4 bytes of "@P10"
14:00:35.766854 tds_put_string wrote 8 bytes
14:00:35.766874 tds_put_string converting 4 bytes of "@P11"
14:00:35.766896 tds_put_string wrote 8 bytes
14:00:35.766916 tds_put_string converting 4 bytes of "@P12"
14:00:35.766938 tds_put_string wrote 8 bytes
14:00:35.766959 tds_put_string converting 4 bytes of "@P13"
14:00:35.766980 tds_put_string wrote 8 bytes
14:00:35.767001 tds_put_string converting 4 bytes of "@P14"
14:00:35.767023 tds_put_string wrote 8 bytes
14:00:35.767052 tds_put_string converting 4 bytes of "@P15"
14:00:35.767080 tds_put_string wrote 8 bytes
14:00:35.767100 tds_put_string converting 4 bytes of "@P16"
14:00:35.767122 tds_put_string wrote 8 bytes
14:00:35.767142 tds_put_string converting 4 bytes of "@P17"
14:00:35.767164 tds_put_string wrote 8 bytes
14:00:35.767185 tds_put_string converting 4 bytes of "@P18"
14:00:35.767207 tds_put_string wrote 8 bytes
14:00:35.767227 tds_put_string converting 4 bytes of "@P19"
14:00:35.767249 tds_put_string wrote 8 bytes
14:00:35.767269 tds_put_string converting 4 bytes of "@P20"
14:00:35.767291 tds_put_string wrote 8 bytes
14:00:35.767311 tds_put_string converting 4 bytes of "@P21"
14:00:35.767362 tds_put_string wrote 8 bytes
Sending packet @ 14:00:35.767385
0000 03 01 05 18 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-06 02 00 00 06 02 00 00 |..&....c ........|
0030 40 00 50 00 31 00 20 00-49 00 4e 00 54 00 2c 00 |@.P.1. . I.N.T.,.|
0040 40 00 50 00 32 00 20 00-43 00 48 00 41 00 52 00 |@.P.2. . C.H.A.R.|
0050 28 00 33 00 29 00 2c 00-40 00 50 00 33 00 20 00 |(.3.).,. @.P.3. .|
0060 43 00 48 00 41 00 52 00-28 00 31 00 29 00 2c 00 |C.H.A.R. (.1.).,.|
0070 40 00 50 00 34 00 20 00-43 00 48 00 41 00 52 00 |@.P.4. . C.H.A.R.|
0080 28 00 30 00 29 00 2c 00-40 00 50 00 35 00 20 00 |(.0.).,. @.P.5. .|
0090 43 00 48 00 41 00 52 00-28 00 33 00 29 00 2c 00 |C.H.A.R. (.3.).,.|
00a0 40 00 50 00 36 00 20 00-43 00 48 00 41 00 52 00 |@.P.6. . C.H.A.R.|
00b0 28 00 33 00 29 00 2c 00-40 00 50 00 37 00 20 00 |(.3.).,. @.P.7. .|
00c0 43 00 48 00 41 00 52 00-28 00 33 00 29 00 2c 00 |C.H.A.R. (.3.).,.|
00d0 40 00 50 00 38 00 20 00-43 00 48 00 41 00 52 00 |@.P.8. . C.H.A.R.|
00e0 28 00 33 00 29 00 2c 00-40 00 50 00 39 00 20 00 |(.3.).,. @.P.9. .|
00f0 43 00 48 00 41 00 52 00-28 00 33 00 29 00 2c 00 |C.H.A.R. (.3.).,.|
0100 40 00 50 00 31 00 30 00-20 00 43 00 48 00 41 00 |@.P.1.0.  .C.H.A.|
0110 52 00 28 00 33 00 29 00-2c 00 40 00 50 00 31 00 |R.(.3.). ,. at .P.1.|
0120 31 00 20 00 43 00 48 00-41 00 52 00 28 00 33 00 |1. .C.H. A.R.(.3.|
0130 29 00 2c 00 40 00 50 00-31 00 32 00 20 00 43 00 |).,. at .P. 1.2. .C.|
0140 48 00 41 00 52 00 28 00-33 00 29 00 2c 00 40 00 |H.A.R.(. 3.).,. at .|
0150 50 00 31 00 33 00 20 00-43 00 48 00 41 00 52 00 |P.1.3. . C.H.A.R.|
0160 28 00 33 00 29 00 2c 00-40 00 50 00 31 00 34 00 |(.3.).,. @.P.1.4.|
0170 20 00 43 00 48 00 41 00-52 00 28 00 33 00 29 00 | .C.H.A. R.(.3.).|
0180 2c 00 40 00 50 00 31 00-35 00 20 00 43 00 48 00 |,. at .P.1. 5. .C.H.|
0190 41 00 52 00 28 00 33 00-29 00 2c 00 40 00 50 00 |A.R.(.3. ).,. at .P.|
01a0 31 00 36 00 20 00 43 00-48 00 41 00 52 00 28 00 |1.6. .C. H.A.R.(.|
01b0 33 00 29 00 2c 00 40 00-50 00 31 00 37 00 20 00 |3.).,. at . P.1.7. .|
01c0 43 00 48 00 41 00 52 00-28 00 33 00 29 00 2c 00 |C.H.A.R. (.3.).,.|
01d0 40 00 50 00 31 00 38 00-20 00 43 00 48 00 41 00 |@.P.1.8.  .C.H.A.|
01e0 52 00 28 00 33 00 29 00-2c 00 40 00 50 00 31 00 |R.(.3.). ,. at .P.1.|
01f0 39 00 20 00 43 00 48 00-41 00 52 00 28 00 33 00 |9. .C.H. A.R.(.3.|
0200 29 00 2c 00 40 00 50 00-32 00 30 00 20 00 43 00 |).,. at .P. 2.0. .C.|
0210 48 00 41 00 52 00 28 00-33 00 29 00 2c 00 40 00 |H.A.R.(. 3.).,. at .|
0220 50 00 32 00 31 00 20 00-43 00 48 00 41 00 52 00 |P.2.1. . C.H.A.R.|
0230 28 00 33 00 29 00 00 00-63 d0 02 00 00 d0 02 00 |(.3.)... c.......|
0240 00 0a 00 20 00 20 00 49-00 4e 00 53 00 45 00 52 |... . .I .N.S.E.R|
0250 00 54 00 20 00 49 00 4e-00 54 00 4f 00 20 00 70 |.T. .I.N .T.O. .p|
0260 00 6d 00 43 00 69 00 74-00 65 00 54 00 65 00 73 |.m.C.i.t .e.T.e.s|
0270 00 74 00 0a 00 20 00 20-00 28 00 49 00 44 00 2c |.t... .  .(.I.D.,|
0280 00 20 00 50 00 4d 00 49-00 44 00 2c 00 20 00 4d |. .P.M.I .D.,. .M|
0290 00 49 00 44 00 2c 00 20-00 49 00 53 00 53 00 4e |.I.D.,.  .I.S.S.N|
02a0 00 2c 00 20 00 56 00 6f-00 6c 00 75 00 6d 00 65 |.,. .V.o .l.u.m.e|
02b0 00 2c 00 20 00 49 00 73-00 73 00 75 00 65 00 2c |.,. .I.s .s.u.e.,|
02c0 00 20 00 50 00 44 00 59-00 65 00 61 00 72 00 2c |. .P.D.Y .e.a.r.,|
02d0 00 20 00 50 00 44 00 4d-00 6f 00 6e 00 74 00 68 |. .P.D.M .o.n.t.h|
02e0 00 2c 00 20 00 50 00 44-00 44 00 61 00 79 00 2c |.,. .P.D .D.a.y.,|
02f0 00 20 00 50 00 44 00 53-00 65 00 61 00 73 00 6f |. .P.D.S .e.a.s.o|
0300 00 6e 00 2c 00 0a 00 20-00 20 00 20 00 50 00 44 |.n.,...  . . .P.D|
0310 00 4d 00 65 00 64 00 44-00 61 00 74 00 65 00 2c |.M.e.d.D .a.t.e.,|
0320 00 20 00 41 00 72 00 74-00 69 00 63 00 6c 00 65 |. .A.r.t .i.c.l.e|
0330 00 54 00 69 00 74 00 6c-00 65 00 2c 00 20 00 50 |.T.i.t.l .e.,. .P|
0340 00 61 00 67 00 69 00 6e-00 61 00 74 00 69 00 6f |.a.g.i.n .a.t.i.o|
0350 00 6e 00 2c 00 20 00 41-00 66 00 66 00 69 00 6c |.n.,. .A .f.f.i.l|
0360 00 69 00 61 00 74 00 69-00 6f 00 6e 00 2c 00 20 |.i.a.t.i .o.n.,. |
0370 00 4c 00 61 00 6e 00 67-00 75 00 61 00 67 00 65 |.L.a.n.g .u.a.g.e|
0380 00 2c 00 20 00 56 00 65-00 72 00 6e 00 61 00 63 |.,. .V.e .r.n.a.c|
0390 00 75 00 6c 00 61 00 72-00 54 00 69 00 74 00 6c |.u.l.a.r .T.i.t.l|
03a0 00 65 00 2c 00 20 00 0a-00 20 00 20 00 20 00 43 |.e.,. .. . . . .C|
03b0 00 6f 00 75 00 6e 00 74-00 72 00 79 00 2c 00 20 |.o.u.n.t .r.y.,. |
03c0 00 4d 00 65 00 64 00 6c-00 69 00 6e 00 65 00 54 |.M.e.d.l .i.n.e.T|
03d0 00 41 00 2c 00 20 00 4e-00 6c 00 6d 00 55 00 6e |.A.,. .N .l.m.U.n|
03e0 00 69 00 71 00 75 00 65-00 49 00 44 00 2c 00 20 |.i.q.u.e .I.D.,. |
03f0 00 50 00 75 00 62 00 44-00 61 00 74 00 65 00 2c |.P.u.b.D .a.t.e.,|
0400 00 20 00 43 00 69 00 74-00 65 00 29 00 0a 00 20 |. .C.i.t .e.)... |
0410 00 20 00 56 00 41 00 4c-00 55 00 45 00 53 00 0a |. .V.A.L .U.E.S..|
0420 00 20 00 20 00 28 00 40-00 50 00 31 00 2c 00 20 |. . .(.@ .P.1.,. |
0430 00 40 00 50 00 32 00 2c-00 20 00 40 00 50 00 33 |. at .P.2., . . at .P.3|
0440 00 2c 00 20 00 40 00 50-00 34 00 2c 00 20 00 40 |.,. . at .P .4.,. .@|
0450 00 50 00 35 00 2c 00 20-00 40 00 50 00 36 00 2c |.P.5.,.  . at .P.6.,|
0460 00 20 00 40 00 50 00 37-00 2c 00 20 00 40 00 50 |. . at .P.7 .,. . at .P|
0470 00 38 00 2c 00 20 00 40-00 50 00 39 00 2c 00 20 |.8.,. .@ .P.9.,. |
0480 00 40 00 50 00 31 00 30-00 2c 00 20 00 40 00 50 |. at .P.1.0 .,. . at .P|
0490 00 31 00 31 00 2c 00 20-00 40 00 50 00 31 00 32 |.1.1.,.  . at .P.1.2|
04a0 00 2c 00 20 00 40 00 50-00 31 00 33 00 2c 00 20 |.,. . at .P .1.3.,. |
04b0 00 40 00 50 00 31 00 34-00 2c 00 20 00 40 00 50 |. at .P.1.4 .,. . at .P|
04c0 00 31 00 35 00 2c 00 20-00 40 00 50 00 31 00 36 |.1.5.,.  . at .P.1.6|
04d0 00 2c 00 20 00 40 00 50-00 31 00 37 00 2c 00 20 |.,. . at .P .1.7.,. |
04e0 00 40 00 50 00 31 00 38-00 2c 00 20 00 40 00 50 |. at .P.1.8 .,. . at .P|
04f0 00 31 00 39 00 2c 00 20-00 40 00 50 00 32 00 30 |.1.9.,.  . at .P.2.0|
0500 00 2c 00 20 00 40 00 50-00 32 00 31 00 29 00 0a |.,. . at .P .2.1.)..|
0510 00 00 00 38 01 00 00 00-                        |...8....|


Received header @ 14:00:35.769910
0000 04 01 01 87 00 39 01 00-                        |.....9..|


Received packet @ 14:00:35.769947
0000 aa 8a 00 e9 03 00 00 01-0f 37 00 4c 00 69 00 6e |........ .7.L.i.n|
0010 00 65 00 20 00 31 00 3a-00 20 00 4c 00 65 00 6e |.e. .1.: . .L.e.n|
0020 00 67 00 74 00 68 00 20-00 6f 00 72 00 20 00 70 |.g.t.h.  .o.r. .p|
0030 00 72 00 65 00 63 00 69-00 73 00 69 00 6f 00 6e |.r.e.c.i .s.i.o.n|
0040 00 20 00 73 00 70 00 65-00 63 00 69 00 66 00 69 |. .s.p.e .c.i.f.i|
0050 00 63 00 61 00 74 00 69-00 6f 00 6e 00 20 00 30 |.c.a.t.i .o.n. .0|
0060 00 20 00 69 00 73 00 20-00 69 00 6e 00 76 00 61 |. .i.s.  .i.n.v.a|
0070 00 6c 00 69 00 64 00 2e-xx xx xx xx xx xx xx xx |.l.i.d.. ..x.x.x.|
0080 xx xx xx xx xx xx xx xx-xx 00 00 01 00 aa 5c 00 |x.x.x.x. x.....\.|
0090 89 00 00 00 02 0f 20 00-4d 00 75 00 73 00 74 00 |...... . M.u.s.t.|
00a0 20 00 64 00 65 00 63 00-6c 00 61 00 72 00 65 00 | .d.e.c. l.a.r.e.|
00b0 20 00 74 00 68 00 65 00-20 00 76 00 61 00 72 00 | .t.h.e.  .v.a.r.|
00c0 69 00 61 00 62 00 6c 00-65 00 20 00 27 00 40 00 |i.a.b.l. e. .'. at .|
00d0 50 00 34 00 27 00 2e 00-xx xx xx xx xx xx xx xx |P.4.'... .x.x.x.x|
00e0 xx xx xx xx xx xx xx xx-00 00 07 00 aa 76 00 f4 |.x.x.x.x .....v..|
00f0 1f 00 00 01 10 23 00 53-00 74 00 61 00 74 00 65 |.....#.S .t.a.t.e|
0100 00 6d 00 65 00 6e 00 74-00 28 00 73 00 29 00 20 |.m.e.n.t .(.s.). |
0110 00 63 00 6f 00 75 00 6c-00 64 00 20 00 6e 00 6f |.c.o.u.l .d. .n.o|
0120 00 74 00 20 00 62 00 65-00 20 00 70 00 72 00 65 |.t. .b.e . .p.r.e|
0130 00 70 00 61 00 72 00 65-00 64 00 2e 00 08 xx xx |.p.a.r.e .d....U.|
0140 xx xx xx xx xx xx xx xx-xx xx xx xx xx xx xx 73 |x.x.x.x. x.x.x..s|
0150 00 70 00 5f 00 70 00 72-00 65 00 70 00 61 00 72 |.p._.p.r .e.p.a.r|
0160 00 65 00 01 00 79 f4 1f-00 00 ac 09 00 00 01 38 |.e...y.. .......8|
0170 00 00 00 26 04 00 fe 02-00 e0 00 00 00 00 00    |...&.... .......|


14:00:35.770243 processing result tokens.  marker is  aa(ERROR)
14:00:35.770266 tds_process_default_tokens() marker is aa(ERROR)
tds_get_string: reading 110 from wire to give 55 to client.
tds_get_string: reading 16 from wire to give 8 to client.
14:00:35.770363 processing result tokens.  marker is  aa(ERROR)
14:00:35.770386 tds_process_default_tokens() marker is aa(ERROR)
tds_get_string: reading 64 from wire to give 32 to client.
tds_get_string: reading 16 from wire to give 8 to client.
14:00:35.770454 processing result tokens.  marker is  aa(ERROR)
14:00:35.770477 tds_process_default_tokens() marker is aa(ERROR)
tds_get_string: reading 70 from wire to give 35 to client.
tds_get_string: reading 16 from wire to give 8 to client.
tds_get_string: reading 20 from wire to give 10 to client.
14:00:35.770567 processing result tokens.  marker is  79(RETURNSTATUS)
14:00:35.770589 processing result tokens.  marker is  ac(PARAM)
14:00:35.770612 processing parameters for sp 11
14:00:35.770631 calling tds_process_param_result
14:00:35.770659 processing result. type = 38(integer-null), varint_size
1
14:00:35.770682 processing result. column_size 4
14:00:35.770704 processing row.  column is 0 varint size = 1
14:00:35.770726 processing row.  column size is 0 
14:00:35.770747 setting column 0 NULL bit
14:00:35.770767 no of hidden return parameters 1
14:00:35.770787 processing result tokens.  marker is  fe(DONEPROC)
14:00:35.770810 tds_process_end: more_results = 0
		was_cancelled = 0
		error = 1
		done_count_valid = 0
14:00:35.770839 tds_process_end() state set to TDS_IDLE
SQLFreeHandle(2, 0x81b8df8)



More information about the FreeTDS mailing list