2012-01-18 211 views
1

我必须使用C++从mdb文件中读取数据,但是我无法入门。我发现this教程,但是当我尝试连接到本地数据库文件时,我的代码总是崩溃。如何使用C++从mdb文件读取数据?

ADO::_ConnectionPtr conn; 
conn.CreateInstance(__uuidof(ADO::Connection)); 
conn->Open(L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.mdb;", 
         L"", 
         L"password", 
         ADO::adConnectUnspecified); 

上面的代码有什么问题吗?

+0

您是否至少尝试过搜索Stackoverflow?人们不理解被要求提供代码。 – Fionnuala 2012-01-18 15:23:45

回答

1

如果添加一些错误处理,它不会崩溃。并且您将有机会诊断发生了什么问题:

try { 
    ADO::_ConnectionPtr conn; 
    conn.CreateInstance(__uuidof(ADO::Connection)); 
    conn->Open(L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\database.mdb;", 
     L"", 
     L"password", 
     ADO::adConnectUnspecified); 
} 

catch (_com_error& e) { 
    printf("Error:\n"); 
    printf("Code = %08lx\n", e.Error()); 
    printf("Message = %s\n", e.ErrorMessage()); 
    printf("Source = %s\n", (LPCSTR) e.Source()); 
    printf("Description = %s\n", (LPCSTR) e.Description()); 
}