其实我也没办法 可是一定要用foxpro的数据库
database.dbc 是数据库 
包含jsda.dbf这个表
我先#import "msado15.dll" no_namespace rename("EOF","adoEOF")
然后与数据库建立连接:
AfxEnableControlContainer();
AfxOleInit();
HRESULT hr;
hr = m_pConnection.CreateInstance("ADODB.Connection");
hr = m_pConnection->Open"Driver={Microsoft Visual FoxPro Driver};" & _ 
          "SourceType=DBF;" & _ 
          "SourceDB=databasepath\" & _ 
          "Exclusive=No;","","",adModeUnknown);
到这里都一直没出异常可是但我想打开jsda.dbf这个表的时候就出现异常了↓
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("SELECT * FROM jsda",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
执行到这里就出现异常了,为什么啊?  
应该怎么修改啊?

解决方案 »

  1.   

    怎么可以打开jsda.dbf这个表啊?  vc+ado访问dbf
      

  2.   

    介绍一个小技巧给你:
    先新建一“*.txt"文件 ,然后改名为“*.udl”,然后打开运行,再对其进行配置(即对foxpro数据库进行连接,直到调试通过后),再把这文件改回为“*.txt”,打开它,看看里面是什么内容。再结合
    bt=(_bstr_t)"Provider=SQLOLEDB.1;Persist Security Info=False;User ID="+(_bstr_t)m_strSUserName+(_bstr_t)";Password="+(_bstr_t)m_strSPassword+(_bstr_t)";Initial Catalog=SQL"+(_bstr_t)";Data Source="+(_bstr_t)m_strSServerName;
    把“*.txt”中的代码代替bt就行。
    再:
    ::CoInitialize(NULL);  //Initialize COM 
    try
    {
    hr=m_pCon.CreateInstance(__uuidof(Connection));
                ..........
             hr=m_pCon->Open (bt,_bstr_t(""),_bstr_t(""),adModeUnknown);