General information
Forum:
Microsoft SQL Server
Title:
Invalid call issued while executing a SQLEXEC( ) sequence
I received the error:
Invalid call issued while executing a SQLEXEC( ) sequence (Error 1474)
when executing the code below. Actually, this was just test code that I set up in the hope of debugging the error:
Invalid call issued while executing a SQLMORERESULTS( ) sequence (Error 1475) in another context.
I wanted to execute code in the way that I understood it to be recommended when asynchronous is .t. and batchmode is false. My understanding was that I would execute sqlmoreresults repeatedly until It returned 2 - no more data.
I don't know what is wrong with this code.
The vfp help for error 1474 says:
An invalid SQL pass-through (SPT) function call has been made while a SQLEXEC( ) call was expected to continue the SPT call sequence in progress.
I don't understand what they mean when they say a sqlexec() call was expected to continue the spt call. I thought I am supposed to issue sqlmoreresults - not reissue sqlexec().
Can someone explain this to me?
In the other case, the help for error 1475 says:
An invalid SQL pass-through (SPT) function call has been made while a SQLMORERESULTS( ) call was expected to continue the SPT call sequence in progress. Call SQLCANCEL( ) to cancel the SPT sequence or make valid SPT calls to finish the call sequence.
This makes sense to me - I got error 1475, when I tried to execute a NEW SPT STATEMENT, with the same connection handle, before the current one was finished executing, because, I think, sqlmoreresults() had not yet returned 0. (unfortunately, I can't see the sqlmoreresults code executing - it is locked up in an exe for a portion of a system that I don't have access to (Visual accountmate accounting - which hides pieces of its source)
open data data\buds
lnhandle=sqlconnect('vamconnect')
lnres=sqlsetprop(lnhandle,'batchmode',.f.)
lnre2=sqlsetprop(lnhandle,'asynchronous',.t.)
lnres3=sqlexec(lnhandle,'select * from sostrs','mycursor')
lncounter=0
do while .t.
** get error 1474 upon executing this line
lndata=sqlmoreresults(lnhandle)
wait wind str(lndata) nowait
do case
case lndata= 0
loop
case lndata=1
loop
case lndata=2
exit
otherwise
wait wind 'error'
endcase
lncounter=lncounter+1
enddo
?lncounter
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only