[freetds] SELECT @@IDENTITY AS InsertID

Shaun Craig s.craig at andronics.com
Wed Nov 16 05:23:42 EST 2005


Can you explain this abit further as i'm no dba!

Igor Korot wrote:

>Shaun,
>Maybe its just a lock issue?
>
>Thank you.
>
>-----Original Message-----
>From: Shaun Craig <s.craig at andronics.com>
>Sent: Nov 15, 2005 10:00 AM
>To: s.craig at andronics.com, FreeTDS Development Group <freetds at lists.ibiblio.org>
>Subject: Re: [freetds] SELECT @@IDENTITY AS InsertID
>
>A bit more debug.  I found that 2 inserts done on seperate pool 
>connections at the same time returned the wrong identity for 1 insert 
>that had @@IDENTITY, the Identity returned belonged to the other insert 
>that had no @@IDENTITY statement.
>
>To understand whats happening I will explain the system and how it 
>works:  Platform: Linux, Programming in C, Database: ms sql server 7
>
>    * Receive data(Events) via socket, can receive multiple 'Events' at
>      same time.
>    * Each event has its own server program which will grab a pool
>      connection and do inserts/updates/selects etc until completed and
>      return connection to pool.
>
>What i seen happen was 2 'Events' hit our socket at same time, so 2 
>server programs would have been created, each would grab a pool 
>connection.  One of these 'Events' had an @@IDENTITY statement after 
>insert and the other had none.  What happened was the 'Event' that had 
>the @@IDENTITY returned the Identity of the Insert of the 'Event' that 
>didn't have the @@IDENTITY statement.  Am I making sense.
>
>Explained:
>
>'Event1'
>INSERT
>
>'Event2'
>INSERT.....SELECT @@IDENTITY
>
>'Event1' Identity - checked in Table = 19488675
>
>'Event2' Identity - checked in Table = 19488676, but @@IDENTITY returned 
>value = 19488675
>
>As you can see the @@IDENTITY doesn't belong to that 'Event' but the 
>first event that didn't have @@IDENTITY in the statement.
>
>Can anyone think of what may have happened?
>
>Thanks.
>
>Shaun.
>
>Shaun Craig wrote:
>
>  
>
>>Right have my message/error handlers are in and working, know they're 
>>working as I got this
>>
>>'Msg 195, Level 15, State 10 - |IDENT_CURRENT| is not a recognized 
>>function name.'
>>
>>So did a bit of research and found that IDENT_CURRENT, SCOPE_IDENTITY() 
>>came in with ms sql 2000, I'm working of ms sql server 7.0 which only 
>>has @@IDENTITY.  This is going to cause problems then, what is my best 
>>option, remove the trigger?
>>
>>Shaun.
>>
>>Pickett, David wrote:
>>
>> 
>>
>>    
>>
>>>OOPS!  Reading that URL again, it does not describe any way to get the last
>>>identity of a specific table in the current scope!
>>>
>>>(I have never liked identity columns -- I like to know what I am inserting
>>>ahead of time, and there are a myriad of ways to achieve uniqueness, many of
>>>them using real world, application-relevant data.)
>>>
>>>Best regards,
>>>
>>>David
>>>
>>>-----Original Message-----
>>>From: Pickett, David 
>>>Sent: Thursday, November 10, 2005 9:39 AM
>>>To: 'FreeTDS Development Group'
>>>Subject: Re: [freetds] SELECT @@IDENTITY AS InsertID
>>>
>>>
>>>Maybe he wants SCOPE_IDENTITY() to just see his own?:
>>>
>>>
>>>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_
>>>ia-iz_82i1.asp
>>>
>>>-----Original Message-----
>>>From: Rogers, Tom [mailto:tom.rogers at ccur.com]
>>>Sent: Thursday, November 10, 2005 9:35 AM
>>>To: s.craig at andronics.com; FreeTDS Development Group
>>>Subject: Re: [freetds] SELECT @@IDENTITY AS InsertID
>>>
>>>
>>>If the table you are inserting into has an insert trigger and that insert
>>>trigger inserts into another table with an identity column than you can rest
>>>assured that you will NOT get back the identity of the FIRST table with
>>>SELECT @@IDENTITY.
>>>
>>>To overcome this problem, Microsoft supplied the IDENT_CURRENT() function.
>>>Use the SQL Books Online for its documentation, but for the most part you
>>>use it JUST like @@IDENTITY, but it has a single parameter to the function,
>>>which is the name of the table you want to get the last identity id from:
>>>
>>>e.g.
>>>
>>> SELECT IDENT_CURRENT('MyTable')
>>>
>>>Thomas Rogers
>>>System Engineer
>>>Concurrent Computer Corporation
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>phone: 215.712.7422 x7261
>>>>
>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>The information contained herein is proprietary and confidential and should
>>>be treated in accordance with the Non-Disclosure Agreement and any
>>>Amendments to said Agreement executed between the discloser and recipient.
>>>If the reader of this message is not the intended recipient, you are hereby
>>>notified that any dissemination, distribution, or copy of this information
>>>is strictly prohibited.  If you have received this information in error,
>>>please immediately notify discloser, and then destroy the information
>>>contained herein.  Thank you.
>>>
>>>
>>>-----Original Message-----
>>>From: freetds-bounces at lists.ibiblio.org
>>>[mailto:freetds-bounces at lists.ibiblio.org]On Behalf Of Shaun Craig
>>>Sent: Thursday, November 10, 2005 9:28 AM
>>>To: Rogers, Tom; FreeTDS Development Group
>>>Subject: Re: [freetds] SELECT @@IDENTITY AS InsertID
>>>
>>>
>>>Thanks for all the input guys,
>>>
>>>The table I'm inserting to does have an insert trigger to another table 
>>>although i dont think this is the value i got back.  I know this as the 
>>>trigger insert can only be done on a value between 100-2000 and the 
>>>number i get is way above that.
>>>
>>>I'm currently working on something else thats holding me back from 
>>>getting stuck into this.  What happened and at present i dont know if it 
>>>was a one off or happens regularly is that an insert into table followed 
>>>by select identity on a single pool connection was returning a different 
>>>identity to that of the inserted record, as i dont have any 
>>>error/message handlers in this could be down to my code, when i get the 
>>>handlers in and get testing i should know more.
>>>
>>>Will let you know the results.
>>>
>>>Shaun.
>>>
>>>Rogers, Tom wrote:
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>Sorry if this has already come up, but the CLASSIC problem that causes this
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>is you have an insert trigger on the table you are inserting into and that
>>>trigger ends up inserting into another table and what you are getting is the
>>>identity id of that last table inserted into.
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>Could that be happening?
>>>>
>>>>Thomas Rogers
>>>>System Engineer
>>>>Concurrent Computer Corporation
>>>>
>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>phone: 215.712.7422 x7261
>>>>>
>>>>>
>>>>> 
>>>>>
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>The information contained herein is proprietary and confidential and should
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>be treated in accordance with the Non-Disclosure Agreement and any
>>>Amendments to said Agreement executed between the discloser and recipient.
>>>If the reader of this message is not the intended recipient, you are hereby
>>>notified that any dissemination, distribution, or copy of this information
>>>is strictly prohibited.  If you have received this information in error,
>>>please immediately notify discloser, and then destroy the information
>>>contained herein.  Thank you.
>>>
>>>
>>>   
>>>
>>>      
>>>
>>>>-----Original Message-----
>>>>From: freetds-bounces at lists.ibiblio.org
>>>>[mailto:freetds-bounces at lists.ibiblio.org]On Behalf Of Shaun Craig
>>>>Sent: Thursday, November 03, 2005 7:07 AM
>>>>To: FreeTDS Development Group
>>>>Subject: Re: [freetds] SELECT @@IDENTITY AS InsertID
>>>>
>>>>
>>>>Thought everything was rosy with this but its not!  I'm having a small 
>>>>problem where the insertid i get back is incorrect, i think that the 
>>>>value is not actually returned and the value i get is a memory value.  I 
>>>>have not used any error handlers before with freetds, if someone could 
>>>>give us the code i could probably find out whats wrong.
>>>>
>>>>Code example, take for granted I called the following before the snipet 
>>>>below
>>>>DBINT InsertID;
>>>>int journey_insert_id //global program variable
>>>>etc...
>>>>dbcmd()
>>>>dbsqlexec()
>>>>dbresults()
>>>>
>>>>if ( strstr(statements[z],"SELECT @@IDENTITY AS InsertID") != NULL)
>>>>     {
>>>>         if (SUCCEED != dbbind(dbconn, 1, INTBIND, (DBINT)0, (BYTE 
>>>>*)& InsertID))
>>>>         {
>>>>             if (error_level > 0)
>>>>                 LogError(GPRS_ERR,15,"Insert", "myDBQuery(), Could 
>>>>Not Bind JourneyInsetID","fail");
>>>>             return -1;
>>>>         }   
>>>>        
>>>>         while ( dbnextrow(dbconn) != NO_MORE_ROWS)    // no error 
>>>>handling here which probably where my problem is
>>>>         {
>>>>             journey_insert_id = InsertID;
>>>>         }     
>>>>     }
>>>>
>>>>Hope someone can help me out as I have to get this sorted before 
>>>>christmas, then its off to Australia for a year!
>>>>
>>>>Thanks,
>>>>
>>>>Shaun.
>>>>
>>>>Shaun Craig wrote:
>>>>
>>>>
>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>>>Finally got the insertid back from my insert, I just tinkered around 
>>>>>with the code I had and eventually got it back.
>>>>>
>>>>>Thanks to all who helped me on it.
>>>>>
>>>>>Shaun.
>>>>>
>>>>>Shaun Craig wrote:
>>>>>
>>>>> 
>>>>>
>>>>>    
>>>>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>>>>>Just realised my tdsdump file wasn't attached to email yesterday, so 
>>>>>>here it is.
>>>>>>
>>>>>>util.c:269:Starting log file for FreeTDS 0.64.dev.20050228
>>>>>>on 2005-10-12 09:31:17 with debug flags 0x4fff.
>>>>>>iconv.c:364:iconv to convert client-side data to the "ISO-8859-1" 
>>>>>>character set
>>>>>>iconv.c:517:tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
>>>>>>net.c:150:Connecting to 127.0.0.1 port 5000.
>>>>>>net.c:650:Sending packet
>>>>>>0000 02 00 02 00 00 00 00 00-73 76 72 2d 73 75 73 65 |........ svr-suse|
>>>>>>0010 2d 31 38 00 00 00 00 00-00 00 00 00 00 00 00 00 |-18..... ........|
>>>>>>0020 00 00 00 00 00 00 0b 73-61 00 00 00 00 00 00 00 |.......***.......|
>>>>>>0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
>>>>>>0040 00 00 00 00 00 02 72 75-6c 65 72 00 00 00 00 00 |......******.....|
>>>>>>0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
>>>>>>0060 00 00 00 00 05 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 03 01 06 0a-09 01 00 00 00 00 02 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 6d 79 70 6f 6f-6c 00 00 00 00 00 00 00 |...mypoo l.......|
>>>>>>00c0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |........ ........|
>>>>>>00d0 00 06 72 75 6c 65 72 00-00 00 00 00 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 05 04 02 00 00 44 42-2d 4c 69 62 72 61 72 79 |......DB -Library|
>>>>>>01e0 0a 00 00 00 00 00 0d 11-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...... ........|
>>>>>>
>>>>>>net.c:650:Sending packet
>>>>>>0000 02 01 00 4c 00 00 00 00-00 00 00 00 00 00 0a 00 |...L.... ........|
>>>>>>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-00 00 00 00             |........ ....|
>>>>>>
>>>>>>token.c:317:tds_process_login_tokens()
>>>>>>net.c:437:Received header
>>>>>>0000 04 01 00 dc 00 00 00 00-                        |........|
>>>>>>
>>>>>>net.c:531:Received packet
>>>>>>0000 e3 14 00 01 0b 4c 65 6f-63 61 74 65 54 65 73 74 |.....Leo cateTest|
>>>>>>0010 06 6d 61 73 74 65 72 ab-3e 00 45 16 00 00 02 0a |.master. >.E.....|
>>>>>>0020 2a 00 43 68 61 6e 67 65-64 20 64 61 74 61 62 61 |*.Change d databa|
>>>>>>0030 73 65 20 63 6f 6e 74 65-78 74 20 74 6f 20 27 4c |se conte xt to 'L|
>>>>>>0040 65 6f 63 61 74 65 54 65-73 74 27 2e 04 4a 44 42 |eocateTe st'..JDB|
>>>>>>0050 43 05 5a 5a 5a 5a 5a 01-00 e3 0d 00 02 0a 75 73 |C.ZZZZZ. ......us|
>>>>>>0060 5f 65 6e 67 6c 69 73 68-00 ab 3d 00 47 16 00 00 |_english ..=.G...|
>>>>>>0070 01 0a 29 00 43 68 61 6e-67 65 64 20 6c 61 6e 67 |..).Chan ged lang|
>>>>>>0080 75 61 67 65 20 73 65 74-74 69 6e 67 20 74 6f 20 |uage set ting to |
>>>>>>0090 27 75 73 5f 65 6e 67 6c-69 73 68 27 2e 04 4a 44 |'us_engl ish'..JD|
>>>>>>00a0 42 43 05 5a 5a 5a 5a 5a-01 00 e3 07 00 04 04 31 |BC.ZZZZZ .......1|
>>>>>>00b0 30 32 34 00 ad 14 00 05-05 00 00 00 0a 73 71 6c |024..... .....sql|
>>>>>>00c0 20 73 65 72 76 65 72 01-00 00 01 fd 00 00 02 00 | server. ........|
>>>>>>00d0 01 00 00 00            -                        |....|
>>>>>>
>>>>>>token.c:321:looking for login token, got  e3(ENVCHANGE)
>>>>>>token.c:106:tds_process_default_tokens() marker is e3(ENVCHANGE)
>>>>>>read.c:178:tds_get_string: reading 11 from wire to give 11 to client.
>>>>>>read.c:178:tds_get_string: reading 6 from wire to give 6 to client.
>>>>>>token.c:321:looking for login token, got  ab(INFO)
>>>>>>token.c:106:tds_process_default_tokens() marker is ab(INFO)
>>>>>>token.c:2640:tds_process_msg() reading message from server
>>>>>>read.c:178:tds_get_string: reading 42 from wire to give 42 to client.
>>>>>>read.c:178:tds_get_string: reading 4 from wire to give 4 to client.
>>>>>>read.c:178:tds_get_string: reading 5 from wire to give 5 to client.
>>>>>>token.c:2702:tds_process_msg() calling client msg handler
>>>>>>token.c:2715:tds_process_msg() returning TDS_SUCCEED
>>>>>>token.c:321:looking for login token, got  e3(ENVCHANGE)
>>>>>>token.c:106:tds_process_default_tokens() marker is e3(ENVCHANGE)
>>>>>>read.c:178:tds_get_string: reading 10 from wire to give 10 to client.
>>>>>>token.c:321:looking for login token, got  ab(INFO)
>>>>>>token.c:106:tds_process_default_tokens() marker is ab(INFO)
>>>>>>token.c:2640:tds_process_msg() reading message from server
>>>>>>read.c:178:tds_get_string: reading 41 from wire to give 41 to client.
>>>>>>read.c:178:tds_get_string: reading 4 from wire to give 4 to client.
>>>>>>read.c:178:tds_get_string: reading 5 from wire to give 5 to client.
>>>>>>token.c:2702:tds_process_msg() calling client msg handler
>>>>>>token.c:2715:tds_process_msg() returning TDS_SUCCEED
>>>>>>token.c:321:looking for login token, got  e3(ENVCHANGE)
>>>>>>token.c:106:tds_process_default_tokens() marker is e3(ENVCHANGE)
>>>>>>read.c:178:tds_get_string: reading 4 from wire to give 4 to client.
>>>>>>token.c:2528:increasing block size from  to 1024
>>>>>>token.c:321:looking for login token, got  ad(LOGINACK)
>>>>>>read.c:178:tds_get_string: reading 10 from wire to give 10 to client.
>>>>>>token.c:321:looking for login token, got  fd(DONE)
>>>>>>token.c:106:tds_process_default_tokens() marker is fd(DONE)
>>>>>>token.c:2344:tds_process_end: more_results = 0
>>>>>>    was_cancelled = 0
>>>>>>    error = 0
>>>>>>    done_count_valid = 0
>>>>>>token.c:2360:tds_process_end() state set to TDS_IDLE
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_IDLE
>>>>>>token.c:394:leaving tds_process_login_tokens() returning 1
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_QUERYING
>>>>>>mem.c:453:tds_free_all_results()
>>>>>>util.c:125:Changing query state from TDS_QUERYING to TDS_PENDING
>>>>>>net.c:650:Sending packet
>>>>>>0000 01 01 00 1b 00 00 00 00-73 65 74 20 74 65 78 74 |........ set text|
>>>>>>0010 73 69 7a 65 20 36 34 35-31 32 20                |size 645 12 |
>>>>>>
>>>>>>util.c:125:Changing query state from TDS_PENDING to TDS_READING
>>>>>>net.c:437:Received header
>>>>>>0000 04 01 00 11 00 00 00 00-                        |........|
>>>>>>
>>>>>>net.c:531:Received packet
>>>>>>0000 fd 00 00 be 00 00 00 00-00                      |........ .|
>>>>>>
>>>>>>token.c:526:processing result tokens.  marker is  fd(DONE)
>>>>>>token.c:2344:tds_process_end: more_results = 0
>>>>>>    was_cancelled = 0
>>>>>>    error = 0
>>>>>>    done_count_valid = 0
>>>>>>token.c:2360:tds_process_end() state set to TDS_IDLE
>>>>>>util.c:125:Changing query state from TDS_READING to TDS_IDLE
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_PENDING
>>>>>>token.c:514:tds_process_result_tokens() state is COMPLETED
>>>>>>dblib.c:1138:dbuse()
>>>>>>dblib.c:1054:dbcmd() bufsz = 0
>>>>>>dblib.c:1104:in dbsqlexec()
>>>>>>dblib.c:5818:in dbsqlsend()
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_QUERYING
>>>>>>mem.c:453:tds_free_all_results()
>>>>>>util.c:125:Changing query state from TDS_QUERYING to TDS_PENDING
>>>>>>net.c:650:Sending packet
>>>>>>0000 01 01 00 13 00 00 00 00-75 73 65 20 4c 65 6f 63 |........ use Leoc|
>>>>>>0010 61 74 65               -                        |ate|
>>>>>>
>>>>>>dblib.c:4005:in dbsqlok()
>>>>>>net.c:437:Received header
>>>>>>0000 04 01 00 63 00 00 00 00-                        |...c....|
>>>>>>
>>>>>>net.c:531:Received packet
>>>>>>0000 e3 11 00 01 07 4c 65 6f-63 61 74 65 07 4c 65 6f |.....Leo cate.Leo|
>>>>>>0010 63 61 74 65 ab 3b 00 45-16 00 00 01 00 26 00 43 |cate.;.E .....&.C|
>>>>>>0020 68 61 6e 67 65 64 20 64-61 74 61 62 61 73 65 20 |hanged d atabase |
>>>>>>0030 63 6f 6e 74 65 78 74 20-74 6f 20 27 4c 65 6f 63 |context  to 'Leoc|
>>>>>>0040 61 74 65 27 2e 09 53 51-4c 53 45 52 56 45 52 00 |ate'..SQ LSERVER.|
>>>>>>0050 01 00 fd 00 00 e2 00 00-00 00 00                |........ ...|
>>>>>>
>>>>>>dblib.c:4024:dbsqlok() marker is e3
>>>>>>util.c:125:Changing query state from TDS_PENDING to TDS_READING
>>>>>>token.c:526:processing result tokens.  marker is  e3(ENVCHANGE)
>>>>>>token.c:106:tds_process_default_tokens() marker is e3(ENVCHANGE)
>>>>>>read.c:178:tds_get_string: reading 7 from wire to give 7 to client.
>>>>>>read.c:178:tds_get_string: reading 7 from wire to give 7 to client.
>>>>>>token.c:526:processing result tokens.  marker is  ab(INFO)
>>>>>>token.c:106:tds_process_default_tokens() marker is ab(INFO)
>>>>>>token.c:2640:tds_process_msg() reading message from server
>>>>>>read.c:178:tds_get_string: reading 38 from wire to give 38 to client.
>>>>>>read.c:178:tds_get_string: reading 9 from wire to give 9 to client.
>>>>>>token.c:2702:tds_process_msg() calling client msg handler
>>>>>>token.c:2715:tds_process_msg() returning TDS_SUCCEED
>>>>>>token.c:526:processing result tokens.  marker is  fd(DONE)
>>>>>>token.c:2344:tds_process_end: more_results = 0
>>>>>>    was_cancelled = 0
>>>>>>    error = 0
>>>>>>    done_count_valid = 0
>>>>>>token.c:2360:tds_process_end() state set to TDS_IDLE
>>>>>>util.c:125:Changing query state from TDS_READING to TDS_IDLE
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_PENDING
>>>>>>dblib.c:4070:dbsqlok() end status was success
>>>>>>dblib.c:1288:dbresults()
>>>>>>token.c:897:tds_process_row_tokens() state is COMPLETED
>>>>>>dblib.c:1054:dbcmd() bufsz = 12
>>>>>>dblib.c:5007:in dbfreebuf()
>>>>>>dblib.c:1104:in dbsqlexec()
>>>>>>dblib.c:5818:in dbsqlsend()
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_QUERYING
>>>>>>mem.c:453:tds_free_all_results()
>>>>>>util.c:125:Changing query state from TDS_QUERYING to TDS_PENDING
>>>>>>net.c:650:Sending packet
>>>>>>0000 01 01 00 ed 00 00 00 00-49 4e 53 45 52 54 20 49 |........ INSERT I|
>>>>>>0010 4e 54 4f 20 4a 6f 75 72-6e 65 79 20 28 4a 6f 75 |NTO Jour ney (Jou|
>>>>>>0020 72 6e 65 79 53 74 61 72-74 54 69 6d 65 2c 53 74 |rneyStar tTime,St|
>>>>>>0030 61 72 74 4c 61 74 69 74-75 64 65 2c 53 74 61 72 |artLatit ude,Star|
>>>>>>0040 74 4c 6f 6e 67 69 74 75-64 65 2c 4f 64 6f 6d 65 |tLongitu de,Odome|
>>>>>>0050 74 65 72 53 74 61 72 74-2c 56 65 68 69 63 6c 65 |terStart ,Vehicle|
>>>>>>0060 49 44 29 20 56 41 4c 55-45 53 20 28 43 4f 4e 56 |ID) VALU ES (CONV|
>>>>>>0070 45 52 54 28 44 61 74 65-54 69 6d 65 2c 27 32 34 |ERT(Date Time,'24|
>>>>>>0080 20 41 75 67 75 73 74 20-32 30 30 35 20 31 37 3a | August  2005 17:|
>>>>>>0090 30 34 3a 34 39 27 29 2c-43 4f 4e 56 45 52 54 28 |04:49'), CONVERT(|
>>>>>>00a0 66 6c 6f 61 74 2c 27 35-33 2e 33 30 39 37 32 30 |float,'5 3.309720|
>>>>>>00b0 27 29 2c 43 4f 4e 56 45-52 54 28 66 6c 6f 61 74 |'),CONVE RT(float|
>>>>>>00c0 2c 27 2d 32 2e 37 30 33-34 33 39 27 29 2c 43 4f |,'-2.703 439'),CO|
>>>>>>00d0 4e 56 45 52 54 28 69 6e-74 2c 27 31 31 36 32 35 |NVERT(in t,'11625|
>>>>>>00e0 35 33 34 27 29 2c 27 31-31 31 30 27 29          |534'),'1 110')|
>>>>>>
>>>>>>dblib.c:4005:in dbsqlok()
>>>>>>net.c:437:Received header
>>>>>>0000 04 01 00 11 00 00 00 00-                        |........|
>>>>>>
>>>>>>net.c:531:Received packet
>>>>>>0000 fd 10 00 c3 00 01 00 00-00                      |........ .|
>>>>>>
>>>>>>dblib.c:4024:dbsqlok() marker is fd
>>>>>>util.c:125:Changing query state from TDS_PENDING to TDS_READING
>>>>>>token.c:526:processing result tokens.  marker is  fd(DONE)
>>>>>>token.c:2344:tds_process_end: more_results = 0
>>>>>>    was_cancelled = 0
>>>>>>    error = 0
>>>>>>    done_count_valid = 1
>>>>>>token.c:2360:tds_process_end() state set to TDS_IDLE
>>>>>>util.c:125:Changing query state from TDS_READING to TDS_IDLE
>>>>>>token.c:2376:                rows_affected = 1
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_PENDING
>>>>>>dblib.c:4070:dbsqlok() end status was success
>>>>>>dblib.c:1288:dbresults()
>>>>>>dblib.c:1054:dbcmd() bufsz = 230
>>>>>>dblib.c:5007:in dbfreebuf()
>>>>>>dblib.c:1104:in dbsqlexec()
>>>>>>dblib.c:5818:in dbsqlsend()
>>>>>>util.c:125:Changing query state from TDS_IDLE to TDS_QUERYING
>>>>>>mem.c:453:tds_free_all_results()
>>>>>>util.c:125:Changing query state from TDS_QUERYING to TDS_PENDING
>>>>>>net.c:650:Sending packet
>>>>>>0000 01 01 00 25 00 00 00 00-53 45 4c 45 43 54 20 40 |...%.... SELECT @|
>>>>>>0010 40 49 44 45 4e 54 49 54-59 20 41 53 20 49 6e 73 |@IDENTIT Y AS Ins|
>>>>>>0020 65 72 74 49 44         -                        |ertID|
>>>>>>
>>>>>>dblib.c:4005:in dbsqlok()
>>>>>>net.c:437:Received header
>>>>>>0000 04 01 00 30 00 00 00 00-                        |...0....|
>>>>>>
>>>>>>net.c:531:Received packet
>>>>>>0000 a0 09 00 08 49 6e 73 65-72 74 49 44 a1 06 00 19 |....Inse rtID....|
>>>>>>0010 00 01 00 6d 08 d1 08 00-00 00 00 00 80 43 40 fd |...m.... .....C at .|
>>>>>>0020 10 00 c1 00 01 00 00 00-                        |........|
>>>>>>
>>>>>>dblib.c:4024:dbsqlok() marker is a0
>>>>>>dblib.c:4030:dbsqlok() found result token
>>>>>>dblib.c:1288:dbresults()
>>>>>>mem.c:453:tds_free_all_results()
>>>>>>util.c:125:Changing query state from TDS_PENDING to TDS_READING
>>>>>>token.c:526:processing result tokens.  marker is  a0(COLNAME)
>>>>>>read.c:178:tds_get_string: reading 8 from wire to give 8 to client.
>>>>>>mem.c:453:tds_free_all_results()
>>>>>>token.c:526:processing result tokens.  marker is  a1(COLFMT)
>>>>>>token.c:1256:processing result. type = 109(float-null), varint_size 1
>>>>>>util.c:125:Changing query state from TDS_READING to TDS_PENDING
>>>>>>dblib.c:1326:dbresults() process_result_tokens returned result_type = 
>>>>>>4049 retcode = 1
>>>>>>util.c:125:Changing query state from TDS_PENDING to TDS_READING
>>>>>>token.c:526:processing result tokens.  marker is  d1(ROW)
>>>>>>util.c:125:Changing query state from TDS_READING to TDS_PENDING
>>>>>>dblib.c:1326:dbresults() process_result_tokens returned result_type = 
>>>>>>4040 retcode = 1
>>>>>>dblib.c:2091:dbbind() column = 1 8 0
>>>>>>dblib.c:2123:dbbind() srctype = 62 desttype = 56
>>>>>>convert.c:2887:tds_willconvert()
>>>>>>convert.c:2891:tds_willconvert() 62 56 1
>>>>>>dblib.c:1545:dbnextrow()
>>>>>>dblib.c:1560:dbnextrow() dbresults_state = 2
>>>>>>util.c:125:Changing query state from TDS_PENDING to TDS_READING
>>>>>>token.c:907:processing row tokens.  marker is  d1(ROW)
>>>>>>token.c:2071:processing row.  column is 0 varint size = 1
>>>>>>token.c:2128:processing row.  column size is 8
>>>>>>util.c:125:Changing query state from TDS_READING to TDS_PENDING
>>>>>>dblib.c:6244:copy_data_to_host_var(62 [SYBFLT8] len 8 => 56 [SYBINT4] 
>>>>>>len 0)
>>>>>>dblib.c:6387:copy_data_to_host_var() called tds_convert returned 4
>>>>>>
>>>>>>HTH
>>>>>>_______________________________________________
>>>>>>FreeTDS mailing list
>>>>>>FreeTDS at lists.ibiblio.org
>>>>>>http://lists.ibiblio.org/mailman/listinfo/freetds
>>>>>>
>>>>>>   
>>>>>>
>>>>>>      
>>>>>>
>>>>>>         
>>>>>>
>>>>>>            
>>>>>>
>>>>_______________________________________________
>>>>FreeTDS mailing list
>>>>FreeTDS at lists.ibiblio.org
>>>>http://lists.ibiblio.org/mailman/listinfo/freetds
>>>>
>>>>
>>>>  
>>>>
>>>>     
>>>>
>>>>        
>>>>
>>>_______________________________________________
>>>FreeTDS mailing list
>>>FreeTDS at lists.ibiblio.org
>>>http://lists.ibiblio.org/mailman/listinfo/freetds
>>>_______________________________________________
>>>FreeTDS mailing list
>>>FreeTDS at lists.ibiblio.org
>>>http://lists.ibiblio.org/mailman/listinfo/freetds
>>>_______________________________________________
>>>FreeTDS mailing list
>>>FreeTDS at lists.ibiblio.org
>>>http://lists.ibiblio.org/mailman/listinfo/freetds
>>>_______________________________________________
>>>FreeTDS mailing list
>>>FreeTDS at lists.ibiblio.org
>>>http://lists.ibiblio.org/mailman/listinfo/freetds
>>>
>>>
>>>
>>>   
>>>
>>>      
>>>
>>_______________________________________________
>>FreeTDS mailing list
>>FreeTDS at lists.ibiblio.org
>>http://lists.ibiblio.org/mailman/listinfo/freetds
>> 
>>
>>    
>>
>
>_______________________________________________
>FreeTDS mailing list
>FreeTDS at lists.ibiblio.org
>http://lists.ibiblio.org/mailman/listinfo/freetds
>  
>


-- 
Shaun Craig
Andronics Ltd. 
Tel: 02871273118
Web: http://www.andronics.co.uk



More information about the FreeTDS mailing list