这个是我从网上看到的例子通过自己修改写的,但还有一个问题,就是运行时没有得到想要的结果,这个程序基本路是创建一个表,插入两个数据,输出数据,然后是删除表,
#include<iostream>
#include<cstring>
//#pragma warning(disable:4146)
#import"D:\Program Files\Common Files\System\ado\msado15.dll" rename("EOF","ADOEOF")
std::string outputashex(unsigned long l)
{
char buffer[1024];
::itoa (l,buffer,16);
return buffer;
};
void main()
{
HRESULT hr;
CoInitialize(NULL);
try
{
ADODB::_ConnectionPtr connection;
hr=connection.CreateInstance(_uuidof(ADODB::Connection));
if(FAILED(hr))
{
throw _com_error(hr);
}
ADODB::_RecordsetPtr recordset;
hr=recordset.CreateInstance(_uuidof(ADODB::Recordset));
if(FAILED(hr))
{
throw _com_error(hr);
}
connection->CursorLocation=ADODB::adUseClient;
connection->Open(L"Provider=sqloledb;Data Source=local\SQL_RBAC;"
L"Initial Catalog=brother;User Id= ;PassWord= ;",L"",L"",ADODB::adConnectUnspecified);
recordset->Open("create table mytable(value nvarchar(20))",connection.GetInterfacePtr(),
ADODB::adOpenForwardOnly,ADODB::adLockReadOnly,ADODB::adCmdText);
recordset->Open("insert into mytable values ('hello')",connection.GetInterfacePtr(),
ADODB::adOpenForwardOnly,ADODB::adLockReadOnly,ADODB::adCmdText);
recordset->Open("insert into mytable values ('goodbye')",connection.GetInterfacePtr(),
ADODB::adOpenForwardOnly,ADODB::adLockReadOnly,ADODB::adCmdText);
recordset->Open("select * from mytable",connection.GetInterfacePtr(),ADODB::adOpenForwardOnly,ADODB::adLockReadOnly,ADODB::adCmdText);
while(!recordset->ADOEOF)
{
_variant_t var;
var=recordset->Fields->GetItem(L"value")->GetValue();
std::cout<<static_cast<char*>(_bstr_t(var.bstrVal))<<std::endl ;
recordset->MoveNext();
};
recordset->Close();
//recordset->Open("drop table mytable",connection.GetInterfacePtr(),ADODB::adOpenForwardOnly,ADODB::adLockReadOnly,ADODB::adCmdText);
}
catch(_com_error e)
{
std::cerr<<":"<<static_cast<char*>(e.Description());
}
catch(...)
{
std::cerr <<"Unhandled Exception";
};
system("pause");
这个程序运行后并没有创建表,而是输出“:无效授权说明”,我找个很久没有找出错误所在,所以贴出来,请各位老师指点下!
本文探讨了一个使用ADO连接SQL Server数据库并执行CRUD操作的C++程序。该程序旨在创建表、插入数据、读取数据并最终删除表,但在运行过程中遇到了授权问题,输出了“无效授权说明”的错误信息。
4125

被折叠的 条评论
为什么被折叠?



