我在stdafx.h文件中#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF")
然后在按钮的响应函数中添加代码如下:void IDS::OnImport()
{
// TODO: Add your control notification handler code here
CString sql;
CoInitialize(NULL);
_ConnectionPtr m_pConnection;
_variant_t RecordsAffected;
try{
HRESULT hr=m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=3;
m_pConnection->Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=db1;Data Source=JEFFY-A73938B38","","",adModeUnknown);
AfxMessageBox("数据库连接成功!");
//return true;
}
}
catch(_com_error e)
{
CString temp;
temp.Format("数据库连接出错:%s",e.ErrorMessage());
AfxMessageBox(temp);
//return false;
}
int num=m_list.GetItemCount();
for(int i=0;i<num;i++)
{
CString time=m_list.GetItemText(i,0);
CString info=m_list.GetItemText(i,1);
CString proto=m_list.GetItemText(i,2);
CString sip=m_list.GetItemText(i,3);
CString sport=m_list.GetItemText(i,4);
CString dip=m_list.GetItemText(i,5);
CString dport=m_list.GetItemText(i,6);
sql = "Insert into data values('"+time+"','"+info+"','"+proto+"','"+sip+"','"+sport+"','"+dip+"','"+dport+"')";
try
{
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
}
catch(_com_error e)
{
CString temp;
temp.Format("出错:%s",e.ErrorMessage());
AfxMessageBox(temp);
}
}
}
出现的错误是:
E:\存底\新建文件夹\snortTest\IDS.cpp(397) : error C2065: '_ConnectionPtr' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(397) : error C2146: syntax error : missing ';' before identifier 'm_pConnection'
E:\存底\新建文件夹\snortTest\IDS.cpp(397) : error C2065: 'm_pConnection' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(398) : error C2065: '_variant_t' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(398) : error C2146: syntax error : missing ';' before identifier 'RecordsAffected'
E:\存底\新建文件夹\snortTest\IDS.cpp(398) : error C2065: 'RecordsAffected' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(401) : error C2228: left of '.CreateInstance' must have class/struct/union type
E:\存底\新建文件夹\snortTest\IDS.cpp(404) : error C2227: left of '->ConnectionTimeout' must point to class/struct/union
E:\存底\新建文件夹\snortTest\IDS.cpp(405) : error C2227: left of '->Open' must point to class/struct/union
E:\存底\新建文件夹\snortTest\IDS.cpp(405) : error C2065: 'adModeUnknown' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(410) : error C2061: syntax error : identifier '_com_error'
E:\存底\新建文件夹\snortTest\IDS.cpp(410) : error C2310: catch handlers must specify one type
E:\存底\新建文件夹\snortTest\IDS.cpp(413) : error C2065: 'e' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(413) : error C2228: left of '.ErrorMessage' must have class/struct/union type
E:\存底\新建文件夹\snortTest\IDS.cpp(418) : error C2317: 'try' block starting on line '400' has no catch handlers
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2227: left of '->Execute' must point to class/struct/union
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2065: '_bstr_t' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2146: syntax error : missing ')' before identifier 'sql'
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2059: syntax error : ')'
E:\存底\新建文件夹\snortTest\IDS.cpp(437) : error C2061: syntax error : identifier '_com_error'
E:\存底\新建文件夹\snortTest\IDS.cpp(437) : error C2310: catch handlers must specify one type
E:\存底\新建文件夹\snortTest\IDS.cpp(440) : error C2228: left of '.ErrorMessage' must have class/struct/union type
E:\存底\新建文件夹\snortTest\IDS.cpp(443) : error C2317: 'try' block starting on line '432' has no catch handlers
怎么解决啊?
然后在按钮的响应函数中添加代码如下:void IDS::OnImport()
{
// TODO: Add your control notification handler code here
CString sql;
CoInitialize(NULL);
_ConnectionPtr m_pConnection;
_variant_t RecordsAffected;
try{
HRESULT hr=m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=3;
m_pConnection->Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=db1;Data Source=JEFFY-A73938B38","","",adModeUnknown);
AfxMessageBox("数据库连接成功!");
//return true;
}
}
catch(_com_error e)
{
CString temp;
temp.Format("数据库连接出错:%s",e.ErrorMessage());
AfxMessageBox(temp);
//return false;
}
int num=m_list.GetItemCount();
for(int i=0;i<num;i++)
{
CString time=m_list.GetItemText(i,0);
CString info=m_list.GetItemText(i,1);
CString proto=m_list.GetItemText(i,2);
CString sip=m_list.GetItemText(i,3);
CString sport=m_list.GetItemText(i,4);
CString dip=m_list.GetItemText(i,5);
CString dport=m_list.GetItemText(i,6);
sql = "Insert into data values('"+time+"','"+info+"','"+proto+"','"+sip+"','"+sport+"','"+dip+"','"+dport+"')";
try
{
m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
}
catch(_com_error e)
{
CString temp;
temp.Format("出错:%s",e.ErrorMessage());
AfxMessageBox(temp);
}
}
}
出现的错误是:
E:\存底\新建文件夹\snortTest\IDS.cpp(397) : error C2065: '_ConnectionPtr' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(397) : error C2146: syntax error : missing ';' before identifier 'm_pConnection'
E:\存底\新建文件夹\snortTest\IDS.cpp(397) : error C2065: 'm_pConnection' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(398) : error C2065: '_variant_t' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(398) : error C2146: syntax error : missing ';' before identifier 'RecordsAffected'
E:\存底\新建文件夹\snortTest\IDS.cpp(398) : error C2065: 'RecordsAffected' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(401) : error C2228: left of '.CreateInstance' must have class/struct/union type
E:\存底\新建文件夹\snortTest\IDS.cpp(404) : error C2227: left of '->ConnectionTimeout' must point to class/struct/union
E:\存底\新建文件夹\snortTest\IDS.cpp(405) : error C2227: left of '->Open' must point to class/struct/union
E:\存底\新建文件夹\snortTest\IDS.cpp(405) : error C2065: 'adModeUnknown' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(410) : error C2061: syntax error : identifier '_com_error'
E:\存底\新建文件夹\snortTest\IDS.cpp(410) : error C2310: catch handlers must specify one type
E:\存底\新建文件夹\snortTest\IDS.cpp(413) : error C2065: 'e' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(413) : error C2228: left of '.ErrorMessage' must have class/struct/union type
E:\存底\新建文件夹\snortTest\IDS.cpp(418) : error C2317: 'try' block starting on line '400' has no catch handlers
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2227: left of '->Execute' must point to class/struct/union
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2065: '_bstr_t' : undeclared identifier
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2146: syntax error : missing ')' before identifier 'sql'
E:\存底\新建文件夹\snortTest\IDS.cpp(434) : error C2059: syntax error : ')'
E:\存底\新建文件夹\snortTest\IDS.cpp(437) : error C2061: syntax error : identifier '_com_error'
E:\存底\新建文件夹\snortTest\IDS.cpp(437) : error C2310: catch handlers must specify one type
E:\存底\新建文件夹\snortTest\IDS.cpp(440) : error C2228: left of '.ErrorMessage' must have class/struct/union type
E:\存底\新建文件夹\snortTest\IDS.cpp(443) : error C2317: 'try' block starting on line '432' has no catch handlers
怎么解决啊?
//确定此文件在此目录下?
{
AfxOleInit(); //初始化COM库
}
是不是把
C:\Program Files\Common Files\System\ado\msado15.dll
写成
C:\Program Files\Common Files\System\ado\msador15.dll
no_namespace rename ("EOF","adoEOF")
no_namespace \
rename ("EOF", "adoEOF")
rename("EOF","ADOEOF")
using namespace ADODB ;
{
AfxOleInit(); //初始化COM库
}
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF","adoEOF")
这句话你确定加在了stdafx.h而不是stdafx.cpp里?