• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

怎样在程序中调用建立连接字符串的对话框

发布: 2007-7-01 20:40 | 作者: admin | 来源: | 查看: 13次 | 进入软件测试论坛讨论

领测软件测试网

在程序中有时候需要用到连接字符串,但是有可能在配置时要改变它,手工输入是容易错的,有了这个对话框,一切就简单了,但是这个对话框可不是一个api就能调出来的,偶查了查msdn再东抄抄西抄抄再自己发了一会儿呆些了下面的这个函数。里面的东西不用你看懂,把它copy下来用就行乐,当然能看懂最好了,找出错误来请发emailto:fantong77@hotmail.com.

BOOL GetConnectString(TCHAR *lpszConnectString,HWND hWndParent)
{
 CComPtr<IDBPromptInitialize> pIDBPromptInitialize=NULL;
 CComPtr<IDBProperties > pIDBProperties = NULL;
 CComPtr<IDataInitialize> spDataInit=NULL;
 CComBSTR bstrConnectString;
 
 HRESULT hr;
 // Create an instance of the Data Links component.
 hr=CoCreateInstance(CLSID_DataLinks, NULL, CLSCTX_INPROC_SERVER,
  IID_IDBPromptInitialize, (void **)&pIDBPromptInitialize);
 if (FAILED(hr))
  return FALSE;
 

 // Prompt the user for the provider and initialization properties.
 hr=pIDBPromptInitialize->PromptDataSource(NULL, hWndParent,
    DBPROMPTOPTIONS_PROPERTYSHEET, 0, NULL, NULL, IID_IDBProperties,
  (IUnknown **)&pIDBProperties);
 if (FAILED(hr))
  return FALSE;
 hr = CoCreateInstance(CLSID_MSDAINITIALIZE, NULL, CLSCTX_INPROC_SERVER,
   IID_IDataInitialize, (void**)&spDataInit);
 if (FAILED(hr))
  return FALSE;
 
 hr=spDataInit->GetInitializationString(pIDBProperties,true,&bstrConnectString);
 if (FAILED(hr))
  return FALSE;
 
 lstrcpy(lpszConnectString,(char*)_bstr_t(bstrConnectString));
 return TRUE;
 

}

参数说明,返回值为false,用户取消

第二个为out,输入连接字符串

第三个位in,父窗口

记住先要初始化com哦


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网