用了FILEDIALOG獲取用戶來源文件為CSV類型(用戶需要)
CFileDialog fileDlg (TRUE);
fileDlg.m_ofn.lpstrTitle = _T("readfile");
fileDlg.m_ofn.lpstrFilter = _T("csv files(.csv)\0*.csv\0\0)");
fileDlg.m_ofn.lpstrDefExt = _T("csv");然後下面的代碼就會出問題了
if ( IDOK == fileDlg.DoModal())
{
CString fileName = fileDlg.GetFileName ();
CString filePath = fileDlg.GetPathName ();
CoInitialize(NULL);
_ConnectionPtr pConn (__uuidof ( Connection ));
_RecordsetPtr pRst (__uuidof ( Recordset ));
//HRESULT hr = pConn->Open(_T("DRIVER = {MicorsoftTextDriver(*.txt;*.csv)}; DBQ =&filePath&;"),"","",adConnectUnspecified);
CString str;
str = _T("Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ="+filePath+";Extensions=asc,csv,tab,txt;Persist Security Info=False");
HRESULT hr = pConn->Open ((_bstr_t)str,"","",adConnectUnspecified); if (SUCCEEDED(hr))
{
MessageBox(_T("open csv file succeeded!"));
}
else if (FAILED(hr))
{
MessageBox(_T("open csv file failed!"));
}
CoUninitialize();
}
是不是str的問題?因為剛接觸這個項目,所以對ADO方面不是很熟,希望有人能夠指教
CFileDialog fileDlg (TRUE);
fileDlg.m_ofn.lpstrTitle = _T("readfile");
fileDlg.m_ofn.lpstrFilter = _T("csv files(.csv)\0*.csv\0\0)");
fileDlg.m_ofn.lpstrDefExt = _T("csv");然後下面的代碼就會出問題了
if ( IDOK == fileDlg.DoModal())
{
CString fileName = fileDlg.GetFileName ();
CString filePath = fileDlg.GetPathName ();
CoInitialize(NULL);
_ConnectionPtr pConn (__uuidof ( Connection ));
_RecordsetPtr pRst (__uuidof ( Recordset ));
//HRESULT hr = pConn->Open(_T("DRIVER = {MicorsoftTextDriver(*.txt;*.csv)}; DBQ =&filePath&;"),"","",adConnectUnspecified);
CString str;
str = _T("Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ="+filePath+";Extensions=asc,csv,tab,txt;Persist Security Info=False");
HRESULT hr = pConn->Open ((_bstr_t)str,"","",adConnectUnspecified); if (SUCCEEDED(hr))
{
MessageBox(_T("open csv file succeeded!"));
}
else if (FAILED(hr))
{
MessageBox(_T("open csv file failed!"));
}
CoUninitialize();
}
是不是str的問題?因為剛接觸這個項目,所以對ADO方面不是很熟,希望有人能夠指教
{
//你的ADO代码
}
catch(_com_error& e)
{
AfxMessageBox(e.Discription());
}
http://www.connectionstrings.com/textfile
从上面看字符串在下面的连接中测试看是否能连接成功
http://blog.csdn.net/zyq5945/archive/2010/05/13/5586423.aspx
爲什麽還顯示這種錯誤呢
沒錯啊
這個是斷點后檢查的STR的屬性,其中
DBQ = "C:\Documents and Settings\Rex_Cao\桌面\testcsv.csv"
這樣不對嗎。。DBQ不是應該是絕對地址嗎
CString str;
int filepathlen = filePath.GetLength(); //getdbq
int filenamelen = fileName.GetLength();
int dbqlen = filepathlen - filenamelen;
CString sqldbq = filePath.Left(dbqlen);
str = _T("Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq="+sqldbq+";Extensions=asc,csv,tab,txt;");
HRESULT hr = pConn->Open ((_bstr_t)str,"","",adConnectUnspecified);
這樣完美解決了,感謝zyq5945 anyway