CADORecordset* m_pRs = new CADORecordset(CMyApp::m_AppDb);m_pRs->Open((LPCTSTR)"select * from user");
编译时能通过,不过程序执行时却出错,错误信息是:CADORecordset Error
   Code = 80040e14
   Code meaning = IDispatch error #3092
   Source = Microsoft JET Database Engine
   Description = FROM 子语法错误各位老大,这是怎么回事啊?多谢了

解决方案 »

  1.   

    CAdoRecordSetOpen 方法:
    BOOL CAdoRecordSet::Open(LPCTSTR strSQL, long lOption, CursorTypeEnum CursorType, LockTypeEnum LockType)
    Params: 
    [strSQL]: SQL语句, 表名, 存储过程或持久 Recordset 文件名.
    [lOption]: 可选. 长整型值, 用于指示 strSQL 参数的类型. 可为下列常量之一.[常量] [说明]  
    adCmdText 指示strSQL为命令文本, 即普通的SQL语句. 
    adCmdTable 指示ADO生成SQL查询返回以 strSQL 命名的表中的所有行. 
    adCmdTableDirect 指示所作的更改在strSQL中命名的表中返回所有行. 
    adCmdStoredProc 指示strSQL为存储过程. 
    adCmdUnknown 指示strSQL参数中的命令类型为未知. 
    adCmdFile 指示应从在strSQL中命名的文件中恢复保留(保存的)Recordset. 
    adAsyncExecute 指示应异步执行strSQL.
     
    adAsyncFetch 指示在提取 Initial Fetch Size 属性中指定的初始数量后, 应该异步提取所有剩余的行. 如果所需的行尚未提取, 主要的线程将被堵塞直到行重新可用. 
     
    adAsyncFetchNonBlocking 指示主要线程在提取期间从未堵塞. 如果所请求的行尚未提取, 当前行自动移到文件末尾. [CursorType]: 可选. CursorTypeEnum 值, 确定打开 Recordset 时应该使用的游标类型. 可为下列常量之一.[常量] [说明] 
    adOpenForwardOnly 打开仅向前类型游标. 
    adOpenKeyset 打开键集类型游标.  
    adOpenDynamic 打开动态类型游标.  
    adOpenStatic 打开静态类型游标.  [ LockType]: 可选, 确定打开 Recordset 时应该使用的锁定类型(并发)的 LockTypeEnum 值, 可为下列常量之一.[常量] [说明] 
    adLockReadOnly 只读 - 不能改变数据.  
    adLockPessimistic 保守式锁定 - 通常通过在编辑时立即锁定数据源的记录. 
    adLockOptimistic 开放式锁定 - 只在调用 Update 方法时才锁定记录. 
    adLockBatchOptimistic 开放式批更新 - 用于批更新模式(与立即更新模式相对). 举例:
    m_pRs->Open((LPCTSTR)"select * from user"", adCmdTable);