如何直接使用OLE DB API 连接SQL Server 2000

timiil 2002-11-18 12:28:48
我只想要连接SQL,但不想使用Adodc,而想直接调用API ,并且是OLE DB的API,而不是ODBC的API。我看过MSDN的文档,好像API放在Sqloledb.dll文件中,但我没有VC和VB的实例啊。
...全文
103 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
timiil 2002-11-21
  • 打赏
  • 举报
回复
还有哪位大哥知道?
timiil 2002-11-20
  • 打赏
  • 举报
回复
很多书都说VB不能直接调用OLE DB,但我想,好像平时调用API那样应该可以吧!谁知道啊!
chump 2002-11-18
  • 打赏
  • 举报
回复
VC例:
void InitializeAndEstablishConnection()
{
//Initialize the COM library.
CoInitialize(NULL);
//Obtain access to the SQLOLEDB provider.
hr = CoCreateInstance(CLSID_SQLOLEDB,
NULL,
CLSCTX_INPROC_SERVER,
IID_IDBInitialize,
(void **) &pIDBInitialize);
/*
Initialize the property values needed
to establish the connection.
*/
for(i = 0; i < 4; i++)
VariantInit(&InitProperties[i].vValue);
//Server name.
InitProperties[0].dwPropertyID = DBPROP_INIT_DATASOURCE;
InitProperties[0].vValue.vt = VT_BSTR;
InitProperties[0].vValue.bstrVal=
SysAllocString(L"Server");
InitProperties[0].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[0].colid = DB_NULLID;
//Database.
InitProperties[1].dwPropertyID = DBPROP_INIT_CATALOG;
InitProperties[1].vValue.vt = VT_BSTR;
InitProperties[1].vValue.bstrVal= SysAllocString(L"database");
InitProperties[1].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[1].colid = DB_NULLID;
//Username (login).
InitProperties[2].dwPropertyID = DBPROP_AUTH_USERID;
InitProperties[2].vValue.vt = VT_BSTR;
InitProperties[2].vValue.bstrVal= SysAllocString(L"sa");
InitProperties[2].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[2].colid = DB_NULLID;
//Password.
InitProperties[3].dwPropertyID = DBPROP_AUTH_PASSWORD;
InitProperties[3].vValue.vt = VT_BSTR;
InitProperties[3].vValue.bstrVal= SysAllocString(L"");
InitProperties[3].dwOptions = DBPROPOPTIONS_REQUIRED;
InitProperties[3].colid = DB_NULLID;
/*
Construct the DBPROPSET structure(rgInitPropSet). The
DBPROPSET structure is used to pass an array of DBPROP
structures (InitProperties) to the SetProperties method.
*/
rgInitPropSet[0].guidPropertySet = DBPROPSET_DBINIT;
rgInitPropSet[0].cProperties = 4;
rgInitPropSet[0].rgProperties = InitProperties;
//Set initialization properties.
hr = pIDBInitialize->QueryInterface(IID_IDBProperties,
(void **)&pIDBProperties);
hr = pIDBProperties->SetProperties(1, rgInitPropSet);
pIDBProperties->Release();
//Now establish the connection to the data source.
pIDBInitialize->Initialize()
}

w18ily 2002-11-18
  • 打赏
  • 举报
回复
只有ODBC的API,OLE DB的没有~~
realdreamer 2002-11-18
  • 打赏
  • 举报
回复
VB 语言限制无法直接访问 OLEDB API
chump 2002-11-18
  • 打赏
  • 举报
回复
不可以!
timiil 2002-11-18
  • 打赏
  • 举报
回复
这个例是在SQL的Books的吧,谢谢!不过我也看过了,能不能提供在VB的例呢?

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧