freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: Jeff Dahl <jddahl AT micron.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] MS SQL Server 2005 and FreeTDS
- Date: Tue, 14 Feb 2006 09:08:46 -0700
ZIGLIO, Frediano, VF-IT wrote:
1. SQLExecDirectIl giorno ven, 10/02/2006 alle 18.01 -0700, Jeff Dahl ha scritto:Only the CVS
Why does this query
CREATE TABLE #data( myID varchar( 25 ))
INSERT into #data select myID from myTable where myID = 'data1'
INSERT into #data select myID from myTable where myID = 'data2'
CREATE index myindex on #data (myID)
SELECT myID
FROM #data, myTable
WHERE ( #data.myID = myTable.myID )
DROP TABLE #data
generate this error:
SQL_STATE: 24000
NATIVE_ERROR: 0
MSG: [FreeTDS][SQL Server]Invalid cursor state
MSG_LEN: 41
I've tried this with both 0.63 and the latest CVS version.
tool you areversion gives the error. Version 0.63 doesn't return anything.Is difficult do reply to your question without knowing the
Thanks,
Jeff Dahl
using... I suppose is a ODBC tool like isql. Or is it a program youI wrote the program using the ODBC API. However, if I run the same query with with tsql (v0.63 and CVS), the data is returned correctly. Looks like the problem is in the ODBC layer.
wrote?
Does myTable contain 'data1' and 'data2' ?Yes.
Mmm... did you use SQLExecDirect and then SQLFetch return this "24000"
error ?
Which is the call sequence?
2. SQLBindCol
3. SQLFetch
ret = SQLExecDirect( <command above> );
if( ret == SQL_ERROR )
{
throw SQLException( SQL_HANDLE_STMT, cmd );
}
unsigned char buffer[300];
SQLLEN indicator;
ret = SQLBindCol( cmd, 1, SQL_C_CHAR, buffer, 300, &indicator );
if( ret == SQL_SUCCESS_WITH_INFO )
{
warning( SQL_HANDLE_STMT, cmd );
}
else if( ret == SQL_ERROR )
{
throw SQLException( SQL_HANDLE_STMT, cmd );
}
cerr << "FETCHING" << endl;
while(( ret = SQLFetch( cmd )) != SQL_NO_DATA )
{
if(( ret == SQL_SUCCESS_WITH_INFO ) || ( ret == SQL_ERROR ))
{
SQLCHAR SqlState[6], Msg[MAX_MESSAGE_LEN];
SQLINTEGER NativeError;
SQLSMALLINT i = 1, MsgLen;
while ((ret = SQLGetDiagRec(SQL_HANDLE_STMT, cmd, i,
SqlState, &NativeError,
Msg, sizeof(Msg), &MsgLen)) != SQL_NO_DATA) {
cerr << "SQL_STATE: " << SqlState << endl;
cerr << "NATIVE_ERROR: " << NativeError << endl;
cerr << "MSG: " << Msg << endl;
cerr << "MSG_LEN: " << MsgLen << endl;
i++;
}
}
cerr << "[" << buffer << "]" << "\t" << indicator << endl;
}
-
[freetds] MS SQL Server 2005 and FreeTDS,
Jeff Dahl, 02/10/2006
- Re: [freetds] MS SQL Server 2005 and FreeTDS, Konrad J Hambrick, 02/11/2006
-
Re: [freetds] MS SQL Server 2005 and FreeTDS,
Frediano Ziglio, 02/12/2006
- Re: [freetds] MS SQL Server 2005 and FreeTDS, Jeff Dahl, 02/13/2006
- <Possible follow-up(s)>
-
Re: [freetds] MS SQL Server 2005 and FreeTDS,
ZIGLIO, Frediano, VF-IT, 02/14/2006
- Re: [freetds] MS SQL Server 2005 and FreeTDS, Jeff Dahl, 02/14/2006
-
[freetds] Release 0.64,
Wolfgang Gruen, 02/14/2006
-
Re: [freetds] Release 0.64,
James K. Lowden, 02/15/2006
- Re: [freetds] Release 0.64, Wolfgang Gruen, 02/16/2006
-
Re: [freetds] Release 0.64,
James K. Lowden, 02/15/2006
- Re: [freetds] MS SQL Server 2005 and FreeTDS, ZIGLIO, Frediano, VF-IT, 02/15/2006
Archive powered by MHonArc 2.6.24.