access-[ODBC Microsoft Access Driver]非法的游标状态 ????

问题描述

[ODBC Microsoft Access Driver]非法的游标状态 ????
 char sql[81];sprintf(sqlINSERT INTO studen (xingmingxuehaosexage) VALUES ('%s'%d'%s'%d)""namenumxxsexnAge);// inserts a new row to the tableint count = db.Execute(sql);

以上代码是通过ODBC插入一个记录,编程语言是C++。
但是db.Execute后,运行提示“""[Microsoft][ODBC Microsoft Access Driver]非法的游标状态 ""

网上搜索不到解决方法,只好求助各位了

xingming 是数据库的姓名字段;
xuehao 是代表学号,数字类型

解决方案

请参考以下内容:
ODBC连接数据持续执行两次sql语句结果提示:[Microsoft][ODBC Microsoft Access Driver]非法的游标状态
例如:
sprintf(sqlStrselect passCode from passCode_t where stationCode='A01' and currentDate='2011-03-19'"");
connectDB_ACCESS(); //连接ACCESS数据库
retcode = SQLExecDirect(hstmtAcc(SQLCHAR *)sqlStrSQL_NTS);
if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode=SQLBindCol(hstmtAcc1SQL_C_CHARpassCode_str4&cb);

while (TRUE)
{
retcode = SQLFetch(hstmtAcc);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO){
}else {
break;
}

}
}
//紧接着执行下面的语句
sprintf(sqlStrupdate passCode_t set passCode='001' where stationCode='A01' and currentDate='2011-03-19'"");
retcode = SQLExecDirect(hstmtAcc(SQLCHAR *)sqlStrSQL_NTS);

结果提示上面开头处的错误!
在第一次执行完语句后调用:
retcode = SQLCloseCursor(hstmtAcc);
retcode = SQLFreeStmt(hstmtAcc SQL_CLOSE);
通过微软的sql server资料了解到http://support.microsoft.com/kb/253010/zh-cn
引用:
允许在单个连接上的多个并发的语句句柄的方式使用 Microsoft SQL Server ODBC 驱动程序 (sqlsrv32.dll) 时 繁忙的连接可能会留下游标 SQL Server 数据库中打开无警告或通知给用户。发生这种情况主要情况下在一个或多个语句句柄在流水 (仅向前、 只读游标) 模式下工作。

这可以有两个而不是严重的负面影响。第一个副作用是游标可以保持打开,消耗内存并可能会导致锁对记录打开数据库服务器上。第二个的副作用是在非流水 ODBC 的语句句柄上执行语句的后续尝试可能会生成没有明显原因的以下错误:
SQLState: 24000 [Microsoft] [ODBC SQL Server 驱动程序] 无效的游标状态

此 行为发生与 sqlsrv32.dll 驱动程序版本 3.70.0690 (Microsoft 数据访问组件 [MDAC] 2.1 SP2) 和更早版本,并与 sqlsrv32.dll 驱动程序版本 3.70.820 (MDAC 2.5/windows 2000)。

在流水模式操作正忙于 SQL Server ODBC 驱动程序时没有其他活动发生在连接上直到完成该操作。这包括 sp_cursorclose 调用驱动程序问题时调用 SQLFreeStmt 或 SQLCloseCursor。

当驱动程序出现故障时关闭游标 SQLFreeStmt 和 SQLCloseCursor 这两个返回 SQL_SUCCESS 时,ODBC,要过帐没有错误和失败的迹象是可用于应用程序或用户。但是,光标保持在 SQL Server 中打开,并且该语句句柄仍具有与其关联的光标标识符。

时间: 2024-11-02 03:45:34

access-[ODBC Microsoft Access Driver]非法的游标状态 ????的相关文章

asp开发记录(1)——[Microsoft][ODBC Microsoft Access Driver]行中有错误

 今天做东西的时候发现的此处错误,最后虽然解决了,但是自己还是要记录一下,方便以后查询! 使用rs.Update()的时候,发现如下错误: [Microsoft][ODBC Microsoft Access Driver]行中有错误 1.开始怀疑参数的问题,在进行数据更新的时候发生参数不符合数据库内的类型或其他的要求.比如:id字段一般用int或自动编号的,但是如果你传入了char或string的类型,那么更新就会失败.通过检查程序,排出怀疑: 2.数据库锁定.看是否有其他的程序在使用数据库.检

关于access,为什么提示“[Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误。”

问题描述 各位大哥大姐,请大家帮帮我解决一下问题,谢谢!以下是我的工程,运行后老是报[Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误.是怎么回事?package access;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public

求助,为什么会出现[Microsoft][ODBC 驱动程序管理器] 无效的游标状态

问题描述 在一个表中,如果要查询的的列没有重复项时,输出就是正常的,但是在表中一有重复项时,就会出现下面的提示:[Microsoft][ODBC驱动程序管理器]无效的游标状态麻烦高手帮帮忙啊!!!具体代码如下:packagess;importjavax.swing.*;importjavax.swing.event.ListSelectionEvent;importjavax.swing.event.ListSelectionListener;importjavax.swing.table.De

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] (未知)不是一个有效的路径

问题描述 ClassjdbcDriver=Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//这里加载驱动,数据库DriverManager.registerDriver((Driver)jdbcDriver.newInstance());Connectioncon=DriverManager.getConnection("jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb,*.accdb)}

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 磁盘或网络错误。

问题描述 java.sql.SQLException:[Microsoft][ODBCMicrosoftAccessDriver]磁盘或网络错误. 解决方案 解决方案二:没有包解决方案三:1.给"系统盘:WindowsServiceProfilesNetworkServiceAppDataLocalTemp"目录添加一个"AuthenticatedUsers"的用户2.检查连接字符串"Provider=Microsoft.Jet.OLEDB.4.0;Dat

[Microsoft][ODBC Microsoft Access Driver] 语法错误 (逗号) 在查询表达式 'id = 83, 79' 中。

问题描述 错误类型:MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)[Microsoft][ODBCMicrosoftAccessDriver]语法错误(逗号)在查询表达式'id=83,79'中./web/admin/gedanxiugai.asp,第105行修改页面代码<%varRecordset1=Server.CreateObject("ADODB.Recordset");Recordset1.ActiveConnection

Microsoft][ODBC Microsoft Access 驱动程序] &amp;amp;#x27;(未知的)&amp;amp;#x27;不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存

问题描述 <%connstr="driver={microsoftaccessdriver(*.mdb)};dbq="&server.mappath("db/chat.mdb")setconn=server.createobject("adodb.connection")conn.openconnstr%>MicrosoftOLEDBProviderforODBCDrivers'80004005'[Microsoft][ODB

了解 Microsoft Access 安全性

access|安全|安全性 简介在早期版本的 Microsoft Access(Microsoft Access 2000 以前)中,有关安全性的知识有时被认为是无法为任何人所掌握和应用的.您需要按顺序执行很多步骤,一旦遗漏某个步骤或者颠倒了顺序就会带来灾难性的后果.随着 Microsoft Access for Microsoft Windows 95 的 Security Wizard 出现,以及 Microsoft Access 2000 的 Security Wizard 的不断改进,在

了解Microsoft Access安全性

简介 在早期版本的 Microsoft Access(Microsoft Access 2000 以前)中,有关安全性的知识有时被认为是无法为任何人所掌握和应用的.您需要按顺序执行很多步骤,一旦遗漏某个步骤或者颠倒了顺序就会带来灾难性的后果.随着 Microsoft Access for Microsoft Windows 95 的 Security Wizard 出现,以及 Microsoft Access 2000 的 Security Wizard 的不断改进,在 Access 中实现安全