ADO Jet SQL 总是抛出"Syntax Error in FROM Clause"
ADO Jet SQL Throws "Syntax Error in FROM Clause" Always
我有一个现有的程序写在VBA和MS Access内运行。出于各种原因,我们希望将其从Access中取出并制作一个独立的程序。
因此,我将VBA移植到c++。下面的代码在VBA
中工作Dim DataFile As New ADODB.Connection
Dim rstSrc As New ADODB.Recordset
DataFile.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.aaf;"
rstSrc.Open "SELECT * FROM [Headr];", DataFile, adOpenStatic, adLockReadOnly
我的代码移植到c++下面不工作。每次都给出"FROM子句语法错误"的错误。
_RecordsetPtr RS("ADODB.Recordset");
_ConnectionPtr CON("ADODB.Connection");
CON->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.aaf;","","",adConnectUnspecified);
RS->PutRefActiveConnection( CON );
RS->Open("SELECT * FROM [Headr];",vtMissing,adOpenStatic,adLockReadOnly,adCmdTable);
我怀疑[header]是问题所在,也许这是某种宏,只能在Access环境中展开。所以我尝试了一些其他的SQL语句,只是作为一个测试,总是得到相同的语法错误在FROM子句。
我试着
选择MSysObjects。
FROM MSysObjectsSELECT * FROM MSysObjects WHERE Type=1 AND Flags=0;
SELECT 'ASDF' AS TEST FROM DUAL;
所有这些都给出了相同的错误。
任何想法?谢谢!
我通过添加一个Command对象来执行SELECT查询来解决这个问题。下面的代码可以工作:
_RecordsetPtr RS("ADODB.Recordset");
_ConnectionPtr CON("ADODB.Connection");
_CommandPtr CMD("ADODB.Command");
CON->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.aaf;","","",adConnectUnspecified);
CMD->ActiveConnection = CON;
CMD->CommandText = "SELECT * FROM [Headr];";
RS = CMD->Execute(NULL,NULL,0);
这和我之前所做的没有本质上的区别。它们应该都能很好地工作,只是语义略有不同。但在现实中,这是有效的,而前者不起作用。所以我认为这是Jet OBDC驱动程序中的错误。
相关文章:
- "error: no matching function for call to"构造函数错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用 LuaBridge 将 LuaJIT 绑定到C++会导致"PANIC: unprotected error"
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- C++错误:"error: int aaa::bbb is protected within this context"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- 在 armhf 上使用 cmake 在 qt 上的编译问题 "Syntax error: wird unexpected (expecting " ) " "
- 接收"Error compiling: 0:1(1): error: syntax error, unexpected $end" C++、GLSL、着色器文件
- 如何在 Eclipse 4.7.3a 中抑制"Syntax error"
- SWIG 不会扩展嵌套宏"Error: Syntax error in input(3)"
- 如何追查"syntax error: missing ')' before identifier"等原因?
- 在具有预编译标头的 C++ 项目中"syntax error : missing ';' before '{'"
- sqlite3_prepare失败,"near "表": syntax error"
- 什么是"error C2061: syntax error : identifier "?
- "Syntax error in input" when SWIGging Boost.Geometry?
- SWIG:%忽略不断给出"Syntax error in input(1)"
- 将默认构造的对象传递给函数时"E2188 Expression syntax error"
- ADO Jet SQL 总是抛出"Syntax Error in FROM Clause"