ado不能写入sql数据库,请各位帮忙解答,谢谢啦
问题,catch也没有报错,但是数据库的表格也没有写入,求问时什么原因?
代码如下:
int main()
{
//连接数据库
_ConnectionPtr pMyConnect=NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if( FAILED(hr) )
return 1;
_bstr_t strConnect="Provider=SQLOLEDB; Server=1.1.1.1;Database=DB; uid=id; pwd=pwd;";
//connecting to the database server now:
try{pMyConnect->Open(strConnect,"","",NULL);}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(), (WCHAR *)"警告",MB_OK | MB_ICONWARNING);
}
//写入
_CommandPtr Cmd1;//命令集
ParametersPtr *Params1 = NULL; // Not an instance of a smart pointer.
_ParameterPtr Param1;
_RecordsetPtr Rs1;
try
{
Cmd1.CreateInstance( __uuidof( Command ) );//创建命令集实例
Cmd1->ActiveConnection = pMyConnect;
Cmd1->CommandText = _bstr_t("INSERT INTO Table1 (s_SevenpairRandom) VALUES('1234567')");
}
catch (_com_error &e)
{
::MessageBox(NULL,e.Description(), (WCHAR *)"失败",MB_OK | MB_ICONWARNING);
}
//Param1 = Cmd1->CreateParameter( _bstr_t(bstrEmpty), adInteger, adParamInput, -1, _variant_t((long) 5) );
//Param1->Value = _variant_t( (long) 5 );
//Cmd1->Parameters->Append( Param1 );
return 0;
}
编译提示信息,看起来OK的样子:
“test7.exe”: 已加载“C:\Users\liuzhenxing\Documents\Visual Studio 2008\Projects\test7\Debug\test7.exe”,已加载符号。
“test7.exe”: 已加载“C:\Windows\SysWOW64\ntdll.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\kernel32.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\KernelBase.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\user32.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\gdi32.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\lpk.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\usp10.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\msvcrt.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\advapi32.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\sechost.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\rpcrt4.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\sspicli.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\cryptbase.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\ole32.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\oleaut32.dll”
“test7.exe”: 已加载“C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_2a4f639a55563668\msvcp90d.dll”,已加载符号。
“test7.exe”: 已加载“C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.6161_none_2a4f639a55563668\msvcr90d.dll”,已加载符号。
“test7.exe”: 已加载“C:\Windows\SysWOW64\imm32.dll”
“test7.exe”: 已加载“C:\Windows\SysWOW64\msctf.dll”
程序“[2416] test7.exe: 本机”已退出,返回值为 1 (0x1)。
[解决办法]
int main() 是控制台程序吧
ADO是COM吧
那是不是应该先要CoInitialize呢
我猜的