CoInitialize(NULL);
_ConnectionPtr Conn(__uuidof(Connection));
_RecordsetPtr Rct(__uuidof(Recordset)); Conn->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=student.mdb;";
Conn->Open("","","",adConnectUnspecified);
try
{
CString m_name="id";
int m_number=789;
_bstr_t str2="insert into std(name,number) values(m_name,m_number)";
Conn->Execute(str2,NULL,adCmdText); }
catch(_com_error e)
{
e.Description();
return;
}
Rct->Close();
Conn->Close();
Rct.Release();
Conn.Release();
CoUninitialize();以上是我随便写的一个向数据库中插入数据的测试,但数据无法插入到std表中,错误提示说是INSERT INTO语句有问题,不过INSERT INTO也没问题啊,我连的是ACCESS数据库
谢谢高手指点啊~~~~~~
_ConnectionPtr Conn(__uuidof(Connection));
_RecordsetPtr Rct(__uuidof(Recordset)); Conn->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=student.mdb;";
Conn->Open("","","",adConnectUnspecified);
try
{
CString m_name="id";
int m_number=789;
_bstr_t str2="insert into std(name,number) values(m_name,m_number)";
Conn->Execute(str2,NULL,adCmdText); }
catch(_com_error e)
{
e.Description();
return;
}
Rct->Close();
Conn->Close();
Rct.Release();
Conn.Release();
CoUninitialize();以上是我随便写的一个向数据库中插入数据的测试,但数据无法插入到std表中,错误提示说是INSERT INTO语句有问题,不过INSERT INTO也没问题啊,我连的是ACCESS数据库
谢谢高手指点啊~~~~~~
这句错了,改为下面试试:
_bstr_t str2="insert into std(name,number) values('" + m_name + "'" + ",m_number)";
我试过
长度过长,在access内部执行自动截断,但用ado执行就报错
我也按照shakaqrj(我是菜鸟)你说的那么改了,不过新的错误出来了,参数不足,我看过数据库里的字段和程序里的一样啊~~~~~
假设
CString szSQl;
CString m_name="hello";
int m_number = 6;szSQl.Fromat"insert into std([name],[number]) values('%s',%d)", m_name ,m_number);
Conn->Execute(_bstr_t(szSQl),NULL,adCmdText);
就像ls一样的改,不过,我还是习惯用“\'”