[freetds] TDS and ldap

Nicolas Goy goyman at goyman.com
Thu Apr 15 03:48:56 EDT 2004


> 
> 
>>So I think the error is generated with the second sql statement.
> 
> 
> Do you mean the "begin tran", or the "create proc" statement?  

I mean the create proc (select from ldap_attr_mappings), but really not 
sure.


> 
> A TDSDUMP log would probably prove that right or wrong.  
> 

You will find it at the end.

> 
> My hypothesis wouldn't be hard to test.  If it turns out to be accurate, I
> think that would constitute a bug, because I doubt the ODBC standard
> requires an application to try to read a nonexistent row before issuing
> the next query.  
> 
The content of the table can be found at the end too.



Starting log file for FreeTDS 0.62.3
         on 2004-04-15 09:30:50 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
09:30:50.400831 tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
09:30:50.401002 Connecting to 192.168.2.2 port 4100, TDS 5.0.
Sending packet @ 09:30:50.411362
0000 02 00 02 00 00 00 00 00-78 65 6c 6e 61 67 61 00 |........ xelnaga.|
0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0020 00 00 00 00 00 00 07 47-4d 61 73 74 65 72 00 00 |.......G Master..|
0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0040 00 00 00 00 00 07 61 73-64 66 70 6f 69 75 00 00 |......** ******..|
0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0060 00 00 00 00 08 33 37 38-37 36 00 00 00 00 00 00 |.....378 76......|
0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0080 00 00 00 05 02 00 06 04-08 01 00 00 00 00 00 00 |........ ........|
0090 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00a0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00b0 00 00 00 53 59 42 41 53-45 00 00 00 00 00 00 00 |...SYBAS E.......|
00c0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00d0 00 06 00 08 61 73 64 66-70 6f 69 75 00 00 00 00 |....**** ****....|
00e0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
00f0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0100 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
0190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01a0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01b0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01c0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01d0 00 0a 05 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
01e0 00 05 00 00 00 00 0c 10-75 73 5f 65 6e 67 6c 69 |........ us_engli|
01f0 73 68 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |sh...... ........|


Sending packet @ 09:30:50.421289
0000 02 01 00 61 00 00 00 00-00 00 00 00 00 00 0a 00 |...a.... ........|
0010 00 00 00 00 00 00 00 00-00 00 00 00 00 69 73 6f |........ .....iso|
0020 5f 31 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |_1...... ........|
0030 00 00 00 00 00 00 00 00-00 00 00 05 01 35 31 32 |........ .....512|
0040 00 00 00 03 00 00 00 00-e2 00 16 01 09 00 00 06 |........ ........|
0050 6d 7f ff ff ff fe 02 09-00 00 00 00 0a 68 00 00 |m....... .....h..|
0060 00                     -                        |.|


09:30:50.431429 tds_process_login_tokens()
Received header @ 09:30:50.431573
0000 04 01 01 02 00 00 00 00-                        |........|


Received packet @ 09:30:50.431704
0000 e3 00 0c 03 05 69 73 6f-5f 31 04 75 74 66 38 e5 |.....iso _1.utf8.|
0010 00 4d 00 00 16 48 01 0a-05 5a 5a 5a 5a 5a 00 00 |.M...H.. .ZZZZZ..|
0020 01 00 31 43 68 61 6e 67-65 64 20 63 6c 69 65 6e |..1Chang ed clien|
0030 74 20 63 68 61 72 61 63-74 65 72 20 73 65 74 20 |t charac ter set |
0040 73 65 74 74 69 6e 67 20-74 6f 20 27 69 73 6f 5f |setting  to 'iso_|
0050 31 27 2e 0a 07 78 65 6c-6e 61 67 61 00 00 00 e3 |1'...xel naga....|
0060 00 10 01 07 47 4d 61 73-74 65 72 06 6d 61 73 74 |....GMas ter.mast|
0070 65 72 e5 00 43 00 00 16-45 02 0a 05 5a 5a 5a 5a |er..C... E...ZZZZ|
0080 5a 00 00 01 00 27 43 68-61 6e 67 65 64 20 64 61 |Z....'Ch anged da|
0090 74 61 62 61 73 65 20 63-6f 6e 74 65 78 74 20 74 |tabase c ontext t|
00a0 6f 20 27 47 4d 61 73 74-65 72 27 2e 0a 07 78 65 |o 'GMast er'...xe|
00b0 6c 6e 61 67 61 00 00 00-e3 00 06 04 03 35 31 32 |lnaga... .....512|
00c0 00 ad 00 14 05 05 00 00-00 0a 73 71 6c 20 73 65 |........ ..sql se|
00d0 72 76 65 72 0c 05 00 00-e2 00 16 01 09 00 00 02 |rver.... ........|
00e0 61 41 ff ff ff e6 02 09-00 00 00 00 02 00 00 00 |aA...... ........|
00f0 00 fd 00 00 00 02 00 00-00 1c                   |........ ..|


09:30:50.432229 looking for login token, got  e3(ENVCHANGE)
09:30:50.432318 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 5 from wire to give 5 to client.
tds_get_string: reading 4 from wire to give 4 to client.
09:30:50.432549 looking for login token, got  e5(EED)
09:30:50.432634 tds_process_default_tokens() marker is e5(EED)
tds_get_string: reading 49 from wire to give 49 to client.
tds_get_string: reading 7 from wire to give 7 to client.
09:30:50.432811 looking for login token, got  e3(ENVCHANGE)
09:30:50.432917 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 7 from wire to give 7 to client.
tds_get_string: reading 6 from wire to give 6 to client.
09:30:50.433077 looking for login token, got  e5(EED)
09:30:50.433159 tds_process_default_tokens() marker is e5(EED)
tds_get_string: reading 39 from wire to give 39 to client.
tds_get_string: reading 7 from wire to give 7 to client.
09:30:50.433324 looking for login token, got  e3(ENVCHANGE)
09:30:50.433407 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 3 from wire to give 3 to client.
09:30:50.433528 looking for login token, got  ad(LOGINACK)
tds_get_string: reading 10 from wire to give 10 to client.
09:30:50.433645 looking for login token, got  e2(CAPABILITY)
09:30:50.433724 tds_process_default_tokens() marker is e2(CAPABILITY)
09:30:50.433809 looking for login token, got  fd(DONE)
09:30:50.433888 tds_process_default_tokens() marker is fd(DONE)
09:30:50.433971 tds_process_end: more_results = 0
                 was_cancelled = 0
                 error = 0
                 done_count_valid = 0
09:30:50.434091 tds_process_end() state set to TDS_IDLE
09:30:50.434177 leaving tds_process_login_tokens() returning 1
Sending packet @ 09:30:50.434283
0000 0f 01 00 2d 00 00 00 00-21 00 00 00 20 00 73 65 |...-.... !... .se|
0010 74 20 74 65 78 74 73 69-7a 65 20 36 34 35 31 32 |t textsi ze 64512|
0020 20 75 73 65 20 47 41 64-64 72 65 73 73          | use GAd dress|


Received header @ 09:30:50.444009
0000 04 01 00 76 00 00 00 00-                        |...v....|


Received packet @ 09:30:50.444153
0000 fd 00 01 00 02 00 00 00-00 e3 00 12 01 08 47 41 |........ ......GA|
0010 64 64 72 65 73 73 07 47-4d 61 73 74 65 72 e5 00 |ddress.G Master..|
0020 44 00 00 16 45 01 0a 05-5a 5a 5a 5a 5a 00 00 01 |D...E... ZZZZZ...|
0030 00 28 43 68 61 6e 67 65-64 20 64 61 74 61 62 61 |.(Change d databa|
0040 73 65 20 63 6f 6e 74 65-78 74 20 74 6f 20 27 47 |se conte xt to 'G|
0050 41 64 64 72 65 73 73 27-2e 0a 07 78 65 6c 6e 61 |Address' ...xelna|
0060 67 61 00 00 01 fd 00 00-00 02 00 00 00 00       |ga...... ......|


09:30:50.444444 processing result tokens.  marker is  fd(DONE)
09:30:50.444536 tds_process_end: more_results = 1
                 was_cancelled = 0
                 error = 0
                 done_count_valid = 0
09:30:50.444640 processing result tokens.  marker is  e3(ENVCHANGE)
09:30:50.444724 tds_process_default_tokens() marker is e3(ENVCHANGE)
tds_get_string: reading 8 from wire to give 8 to client.
tds_get_string: reading 7 from wire to give 7 to client.
09:30:50.444883 processing result tokens.  marker is  e5(EED)
09:30:50.444967 tds_process_default_tokens() marker is e5(EED)
tds_get_string: reading 40 from wire to give 40 to client.
tds_get_string: reading 7 from wire to give 7 to client.
09:30:50.445134 processing result tokens.  marker is  fd(DONE)
09:30:50.445220 tds_process_end: more_results = 0
                 was_cancelled = 0
                 error = 0
                 done_count_valid = 0
09:30:50.445320 tds_process_end() state set to TDS_IDLE
09:30:50.445400 tds_process_result_tokens() state is COMPLETED
change_autocommit: executing BEGIN TRANSACTION
Sending packet @ 09:30:50.446146
0000 0f 01 00 1f 00 00 00 00-21 00 00 00 12 00 42 45 |........ !.....BE|
0010 47 49 4e 20 54 52 41 4e-53 41 43 54 49 4f 4e    |GIN TRAN SACTION|


Received header @ 09:30:50.450149
0000 04 01 00 11 00 00 00 00-                        |........|


Received packet @ 09:30:50.450292
0000 fd 00 04 00 01 00 00 00-00                      |........ .|


09:30:50.450393 processing result tokens.  marker is  fd(DONE)
09:30:50.450482 tds_process_end: more_results = 0
                 was_cancelled = 0
                 error = 0
                 done_count_valid = 0
09:30:50.450586 tds_process_end() state set to TDS_IDLE
09:30:50.450670 tds_process_result_tokens() state is COMPLETED
Creating prepared statement
Sending packet @ 09:30:50.451883
0000 0f 01 00 8c 00 00 00 00-e7 00 81 01 00 0a 77 35 |........ ......w5|
0010 33 79 30 30 36 30 30 30-00 72 63 72 65 61 74 65 |3y006000 .rcreate|
0020 20 70 72 6f 63 20 77 35-33 79 30 30 36 30 30 30 | proc w5 3y006000|
0030 20 61 73 20 53 45 4c 45-43 54 20 69 64 2c 6e 61 | as SELE CT id,na|
0040 6d 65 2c 6b 65 79 74 62-6c 2c 6b 65 79 63 6f 6c |me,keytb l,keycol|
0050 2c 63 72 65 61 74 65 5f-70 72 6f 63 2c 64 65 6c |,create_ proc,del|
0060 65 74 65 5f 70 72 6f 63-2c 65 78 70 65 63 74 5f |ete_proc ,expect_|
0070 72 65 74 75 72 6e 20 46-52 4f 4d 20 6c 64 61 70 |return F ROM ldap|
0080 5f 6f 63 5f 6d 61 70 70-69 6e 67 73             |_oc_mapp ings|


Received header @ 09:30:50.462117
0000 04 01 00 98 00 00 00 00-                        |........|


Received packet @ 09:30:50.462265
0000 e7 00 0d 20 00 0a 77 35-33 79 30 30 36 30 30 30 |... ..w5 3y006000|
0010 ee 00 74 00 07 02 69 64-10 00 00 00 00 38 00 04 |..t...id .....8..|
0020 6e 61 6d 65 10 00 00 00-00 27 40 00 06 6b 65 79 |name.... .'@..key|
0030 74 62 6c 10 00 00 00 00-27 40 00 06 6b 65 79 63 |tbl..... '@..keyc|
0040 6f 6c 10 00 00 00 00 27-40 00 0b 63 72 65 61 74 |ol.....' @..creat|
0050 65 5f 70 72 6f 63 30 00-00 00 02 27 ff 00 0b 64 |e_proc0. ...'...d|
0060 65 6c 65 74 65 5f 70 72-6f 63 30 00 00 00 02 27 |elete_pr oc0....'|
0070 ff 00 0d 65 78 70 65 63-74 5f 72 65 74 75 72 6e |...expec t_return|
0080 10 00 00 00 00 38 00 fd-00 04 00 01 00 00 00 00 |.....8.. ........|


09:30:50.462611 processing result tokens.  marker is  e7(TDS5_DYNAMIC)
tds_get_string: reading 10 from wire to give 10 to client.
09:30:50.462743 processing result tokens.  marker is  ee(RESULT)
tds_get_string: reading 2 from wire to give 2 to client.
09:30:50.462902 processing result. type = 56(int), varint_size 0
09:30:50.462990 processing result. column_size 4
tds_get_string: reading 4 from wire to give 4 to client.
09:30:50.463107 processing result. type = 39(varchar), varint_size 1
09:30:50.463193 processing result. column_size 64
tds_get_string: reading 6 from wire to give 6 to client.
09:30:50.463307 processing result. type = 39(varchar), varint_size 1
09:30:50.463392 processing result. column_size 64
tds_get_string: reading 6 from wire to give 6 to client.
09:30:50.463506 processing result. type = 39(varchar), varint_size 1
09:30:50.463614 processing result. column_size 64
tds_get_string: reading 11 from wire to give 11 to client.
09:30:50.463735 processing result. type = 39(varchar), varint_size 1
09:30:50.463822 processing result. column_size 255
tds_get_string: reading 11 from wire to give 11 to client.
09:30:50.463937 processing result. type = 39(varchar), varint_size 1
09:30:50.464022 processing result. column_size 255
tds_get_string: reading 13 from wire to give 13 to client.
09:30:50.464137 processing result. type = 56(int), varint_size 0
09:30:50.464222 processing result. column_size 4
09:30:50.464307 processing result tokens.  marker is  fd(DONE)
09:30:50.464392 tds_process_end: more_results = 0
                 was_cancelled = 0
                 error = 0
                 done_count_valid = 0
09:30:50.464493 tds_process_end() state set to TDS_IDLE
09:30:50.464575 tds_process_result_tokens() state is COMPLETED
End prepare, execute
09:30:50.464679 tds_submit_execute()
Sending packet @ 09:30:50.464769
0000 0f 01 00 1a 00 00 00 00-e7 00 0f 02 00 0a 77 35 |........ ......w5|
0010 33 79 30 30 36 30 30 30-00 00                   |3y006000 ..|


Received header @ 09:30:50.475889
0000 04 01 00 f9 00 00 00 00-                        |........|


Received packet @ 09:30:50.476042
0000 e7 00 0d 20 00 0a 77 35-33 79 30 30 36 30 30 30 |... ..w5 3y006000|
0010 ee 00 74 00 07 02 69 64-10 00 00 00 07 38 00 04 |..t...id .....8..|
0020 6e 61 6d 65 10 00 00 00-02 27 40 00 06 6b 65 79 |name.... .'@..key|
0030 74 62 6c 10 00 00 00 02-27 40 00 06 6b 65 79 63 |tbl..... '@..keyc|
0040 6f 6c 10 00 00 00 02 27-40 00 0b 63 72 65 61 74 |ol.....' @..creat|
0050 65 5f 70 72 6f 63 30 00-00 00 02 27 ff 00 0b 64 |e_proc0. ...'...d|
0060 65 6c 65 74 65 5f 70 72-6f 63 30 00 00 00 02 27 |elete_pr oc0....'|
0070 ff 00 0d 65 78 70 65 63-74 5f 72 65 74 75 72 6e |...expec t_return|
0080 10 00 00 00 07 38 00 ae-00 07 00 00 00 00 00 00 |.....8.. ........|
0090 00 d1 00 00 00 01 12 6f-72 67 61 6e 69 7a 61 74 |.......o rganizat|
00a0 69 6f 6e 61 6c 55 6e 69-74 07 6f 72 67 75 6e 69 |ionalUni t.orguni|
00b0 74 02 69 64 00 00 00 00-00 00 d1 00 00 00 02 0d |t.id.... ........|
00c0 69 6e 65 74 4f 72 67 50-65 72 73 6f 6e 08 63 6f |inetOrgP erson.co|
00d0 6e 74 61 63 74 73 02 69-64 00 00 00 00 00 00 ff |ntacts.i d.......|
00e0 00 55 00 01 00 00 00 02-fe 00 0c 00 01 00 00 00 |.U...... ........|
00f0 02                     -                        |.|


09:30:50.476567 processing result tokens.  marker is  e7(TDS5_DYNAMIC)
tds_get_string: reading 10 from wire to give 10 to client.
09:30:50.476699 processing result tokens.  marker is  ee(RESULT)
tds_get_string: reading 2 from wire to give 2 to client.
09:30:50.476835 processing result. type = 56(int), varint_size 0
09:30:50.476923 processing result. column_size 4
tds_get_string: reading 4 from wire to give 4 to client.
09:30:50.477037 processing result. type = 39(varchar), varint_size 1
09:30:50.477123 processing result. column_size 64
tds_get_string: reading 6 from wire to give 6 to client.
09:30:50.477236 processing result. type = 39(varchar), varint_size 1
09:30:50.477321 processing result. column_size 64
tds_get_string: reading 6 from wire to give 6 to client.
09:30:50.477462 processing result. type = 39(varchar), varint_size 1
09:30:50.477551 processing result. column_size 64
tds_get_string: reading 11 from wire to give 11 to client.
09:30:50.477665 processing result. type = 39(varchar), varint_size 1
09:30:50.477751 processing result. column_size 255
tds_get_string: reading 11 from wire to give 11 to client.
09:30:50.477864 processing result. type = 39(varchar), varint_size 1
09:30:50.477949 processing result. column_size 255
tds_get_string: reading 13 from wire to give 13 to client.
09:30:50.478063 processing result. type = 56(int), varint_size 0
09:30:50.478148 processing result. column_size 4
09:30:50.478231 processing result tokens.  marker is  ae(CONTROL)
09:30:50.478316 tds_process_default_tokens() marker is ae(CONTROL)
09:30:50.478401 token.c:212: Eating CONTROL token
09:30:50.478478 processing result tokens.  marker is  d1(ROW)
09:30:50.478775 processing row tokens.  marker is  d1(ROW)
09:30:50.478896 processing row.  column is 0 varint size = 0
09:30:50.478990 processing row.  column size is 4
09:30:50.479074 clearing column 0 NULL bit
09:30:50.479156 processing row.  column is 1 varint size = 1
09:30:50.479241 processing row.  column size is 18
09:30:50.479321 clearing column 1 NULL bit
09:30:50.479400 processing row.  column is 2 varint size = 1
09:30:50.479485 processing row.  column size is 7
09:30:50.479566 clearing column 2 NULL bit
09:30:50.479644 processing row.  column is 3 varint size = 1
09:30:50.479728 processing row.  column size is 2
09:30:50.479809 clearing column 3 NULL bit
09:30:50.479887 processing row.  column is 4 varint size = 1
09:30:50.479971 processing row.  column size is 0
09:30:50.480192 setting column 4 NULL bit
09:30:50.480275 processing row.  column is 5 varint size = 1
09:30:50.480361 processing row.  column size is 0
09:30:50.480442 setting column 5 NULL bit
09:30:50.480519 processing row.  column is 6 varint size = 0
09:30:50.480684 processing row.  column size is 4
09:30:50.480772 clearing column 6 NULL bit
convert_tds2sql: src is 56 dest = 1
convert_tds2sql: outputting character data destlen = 5
convert_tds2sql: src is 39 dest = 1
convert_tds2sql: outputting character data destlen = 65
convert_tds2sql: src is 39 dest = 1
convert_tds2sql: outputting character data destlen = 65
convert_tds2sql: src is 39 dest = 1
convert_tds2sql: outputting character data destlen = 65
convert_tds2sql: src is 56 dest = 1
convert_tds2sql: outputting character data destlen = 5
sql2tds.c:120 type=4
sql2tds.c:126
sql2tds.c:261
Creating prepared statement
tds_submit_query(): state is PENDING
09:30:50.481910 tds_client_msg: #20019: "Attempt to initiate a new SQL 
Server operation with results pending.".  Connection state is now 1.
SQLTransact(0x0,0x117f68,1)
change_transaction(0x117f68,0)
Sending packet @ 09:30:50.483347
0000 06 01 00 08 00 00 00 00-                        |........|


09:30:50.483521 tds_process_default_tokens() marker is d1(ROW)
09:30:50.483657 processing row.  column is 0 varint size = 0
09:30:50.483751 processing row.  column size is 4
09:30:50.483834 clearing column 0 NULL bit
09:30:50.483914 processing row.  column is 1 varint size = 1
09:30:50.483999 processing row.  column size is 13
09:30:50.484080 clearing column 1 NULL bit
09:30:50.484159 processing row.  column is 2 varint size = 1
09:30:50.484243 processing row.  column size is 8
09:30:50.484324 clearing column 2 NULL bit
09:30:50.484402 processing row.  column is 3 varint size = 1
09:30:50.484487 processing row.  column size is 2
09:30:50.484567 clearing column 3 NULL bit
09:30:50.484646 processing row.  column is 4 varint size = 1
09:30:50.484730 processing row.  column size is 0
09:30:50.484810 setting column 4 NULL bit
09:30:50.484887 processing row.  column is 5 varint size = 1
09:30:50.484971 processing row.  column size is 0
09:30:50.485051 setting column 5 NULL bit
09:30:50.485128 processing row.  column is 6 varint size = 0
09:30:50.485212 processing row.  column size is 4
09:30:50.485315 clearing column 6 NULL bit
09:30:50.485400 tds_process_default_tokens() marker is ff(DONEINPROC)
09:30:50.485488 tds_process_end: more_results = 1
                 was_cancelled = 0
                 error = 0
                 done_count_valid = 1
09:30:50.485590                  rows_affected = 2
09:30:50.485672 tds_process_default_tokens() marker is fe(DONEPROC)
09:30:50.485757 tds_process_end: more_results = 0
                 was_cancelled = 0
                 error = 0
                 done_count_valid = 0
09:30:50.485857 tds_process_end() state set to TDS_IDLE
Received header @ 09:30:50.494950
0000 04 01 00 11 00 00 00 00-                        |........|


Received packet @ 09:30:50.495093
0000 fd 00 24 00 01 00 00 00-02                      |..$..... .|


09:30:50.495195 tds_process_end: more_results = 0
                 was_cancelled = 1
                 error = 0
                 done_count_valid = 0
09:30:50.495299 tds_process_end() state set to TDS_IDLE
09:30:50.495383 tds_submit_unprepare() w53y009000
Sending packet @ 09:30:50.495476
0000 0f 01 00 1a 00 00 00 00-e7 00 0f 04 00 0a 77 35 |........ ......w5|
0010 33 79 30 30 39 30 30 30-00 00                   |3y009000 ..|


Received header @ 09:30:50.504738
0000 04 01 00 84 00 00 00 00-                        |........|


Received packet @ 09:30:50.504879
0000 e7 00 0d 20 00 0a 77 35-33 79 30 30 39 30 30 30 |... ..w5 3y009000|
0010 e5 00 60 00 00 02 4e 02-10 05 5a 5a 5a 5a 5a 00 |..`...N. ..ZZZZZ.|
0020 00 00 00 44 44 79 6e 61-6d 69 63 20 53 51 4c 20 |...DDyna mic SQL |
0030 65 72 72 6f 72 20 2d 20-50 72 65 70 61 72 65 64 |error -  Prepared|
0040 20 73 74 61 74 65 6d 65-6e 74 20 27 77 35 33 79 | stateme nt 'w53y|
0050 30 30 39 30 30 30 27 20-64 6f 65 73 20 6e 6f 74 |009000'  does not|
0060 20 65 78 69 73 74 2e 0a-07 78 65 6c 6e 61 67 61 | exist.. .xelnaga|
0070 00 ff ff fd 00 06 00 01-00 00 00 02             |........ ....|


09:30:50.505170 processing result tokens.  marker is  e7(TDS5_DYNAMIC)
tds_get_string: reading 10 from wire to give 10 to client.
tds_get_string: reading 68 from wire to give 68 to client.
tds_get_string: reading 7 from wire to give 7 to client.
09:30:50.505414 processing result tokens.  marker is  fd(DONE)
09:30:50.505508 tds_process_end: more_results = 0
                 was_cancelled = 0
                 error = 1
                 done_count_valid = 0
09:30:50.505612 tds_process_end() state set to TDS_IDLE
SQLFreeHandle(2, 0x117f68)

### END

1> select * from ldap_oc_mappings
2> go
id      name    keytbl  keycol  create_proc     delete_proc 
expect_return
1       organizationalUnit      orgunit id      NULL    NULL    0
2       inetOrgPerson   contacts        id      NULL    NULL    0

1> select * from ldap_attr_mappings
2> go
id      oc_map_id       name    sel_expr        from_tbls 
join_where      add_proc        modify_proc     delete_proc 
param_order     expect_return   sel_expr_u
1       1       ou      orgunit.name    orgunit NULL    NULL    NULL 
NULL    3       0       NULL
2       2       cn      (contacts.FirstName+' '+contacts.LastName) 
contacts        NULL    NULL    NULL    NULL    3       0       NULL
3       2       givenName       contacts.FirstName      contacts 
NULL    NULL    NULL    NULL    3       0       NULL
4       2       sn      contacts.LastName       contacts        NULL 
NULL    NULL    NULL    3       0       NULL
5       2       o       contacts.Company        contacts        NULL 
NULL    NULL    NULL    3       0       NULL
6       2       mail    contacts.EMailAddress   contacts        NULL 
NULL    NULL    NULL    3       0       NULL
1>


References: http://www.openldap.org/lists/openldap-bugs/200010/msg00114.html

http://www.openldap.org/devel/cvsweb.cgi/servers/slapd/back-sql/schema-map.c?hideattic=1&sortbydate=0

(as I got the 1.19.2.7 version)

If you look at schema-map-c, this output may be usefull:

==>backsql_load_schema_map()
backsql_load_schema_map(): at_query 'SELECT 
name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expect_return 
FROM ldap_attr_mappings WHERE oc_map_id=?'
backsql_load_schema_map(): objectClass 'organizationalUnit': 
keytbl='orgunit' keycol='id'
expect_return: add=0, del=0; attributes:
backsql_load_schema_map(): autoadding 'objectClass' and 'ref' mappings
backsql_load_schema_map(): error executing at_query:
Return code: -1
Native error code: 20019
SQL engine state: 24000
Message: [FreeTDS][SQL Server]Attempt to initiate a new SQL Server 
operation with results pending.
==>backsql_free_db_conn()
backsql_free_db_conn(): closing db connection

I hope we will find a solution.

Best regards

Goyman



More information about the FreeTDS mailing list