Chinaunix首页 | 论坛 | 博客
  • 博客访问: 537537
  • 博文数量: 576
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5020
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(576)

文章存档

2011年(1)

2008年(575)

我的朋友

分类:

2008-10-14 14:53:36

[ 翻译文档 本文适合中级读者 已阅读17227次 ]
如何调用[建立ADO连接字符串对话框]?
作者:孙海峰

译者:shf11111 发布日期:2003-7-1 10:37:13
原文出处:




我们做数据库应用程序时,经常需要动态建立数据库连接,您知道怎么做吗?

下面的代码会给你提供一些帮助,效果如图

数据连接属性对话框

HRESULT hr;
IDataSourceLocatorPtr dlPrompt=NULL;
_RecordsetPtr rs=NULL;
try
{
  // 初始化DataLinks对象
  hr=dlPrompt.CreateInstance(__uuidof(DataLinks));
  if(FAILED(hr))
	throw(_com_error(hr,NULL));

  // 建立连接
  pConn=dlPrompt->PromptNew();

  // 如果 conn 为 NULL
  if(pConn==NULL)
	return;

  // 打开连接
  pConn->Open(pConn->ConnectionString,L"",L"",-1); 

  // 清除列表框
  while(m_tblList.GetCount()>0)
	m_tblList.DeleteString(0);

  // 获取数据库中表集
  rs=pConn->OpenSchema(adSchemaTables);
  while(!rs->adoEOF)
  {
	m_tblList.AddString((char*)(_bstr_t)rs->Fields->Item[L"TABLE_NAME"]->Value);
	rs->MoveNext();
  }
  rs=NULL;
  dlPrompt.Release();
}
catch (_com_error &e)
{
	AfxMessageBox(e.ErrorMessage());
}

需要注意的是,在建立工程时,要选上Automation选项,

在StdAfx.h中加入下面代码

#import "C:\program files\common files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
//如果使用 ADO 2.0 加入下面代码
#import "C:\Program Files\Common Files\System\Ole DB\msdasc.dll" no_namespace 
//如果使用 ADO 2.1 加入下面代码
#import "C:\Program Files\Common Files\System\Ole DB\oledb32.dll" no_namespace

注:ADO2.0 或 ADO2.1 中,如果其中一个编译不成功,则用另一个

我就说这么多,具体请参见MSDN

<完>


--------------------next---------------------

阅读(327) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~