使用SQLConfigDataSource()函数

  函数原型 

BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest,LPCSTR lpszDriver,LPCSTR  lpszAttributes)

(1)参数hwndPwent是父级窗口句柄。
   如果句柄为NULL,将不会显示一些有关的对话框。
   如果参数 IpszAttributes提供的信息不够完善,在创建过程中就会出现对话框要求用户提供相应信息。

(2)参数fRequest可以设置为下面的数值之一:
   ODBC_ADD_DSN: 增加_个新数据源
   ODBC_CONHG_DSN: 配置(修改)一个已经存在的数据源
   ODBC_REMOVE_DSN: 删除一个已经存在的数据源
   ODBC_ADD_SYS_DSN:. 增加一个新的系统数据源
   ODBC_CONFIG—SYS—DSN: 更改一个已经存在的系统数据源
   ODBC_REMOVE_SYS_DSN:. 删除一个已经存在的系统数据源

(3)参数lpszDriver是数据库引擎名称。 即ODBC数据源管理器中驱动程序名称

(4)lpszAttributes这一部分分两种情况

  4.1 数据源在本地

      举例

    if(!SQLConfigDataSource  (
NULL, //父窗口指针;
        ODBC_ADD_DSN,  //添加的数据源的类型;
      "Microsoft Access Driver (*.mdb)",//驱动程序名;
//属性:
                            "DSN=Students\0"  //数据源名
                           // "Description=This a sample\0"    //数据源的说明
                           // "FileType=Microsoft Access\0"    //数据源文件类型
"DBQ=D:\\database\\数据库\\StudentsInfo.mdb\0"//数据库文件全路径名
                    //在根据现有数据设置列的数据类型时所要扫描的行数。 可以为 1 到 16,
//默认值为 8;如果设置为 0,将扫描 所有行。(如果数字超出界限,会返回一个错误)
       //"MaxScanRows=0\0"  
                     
)
 )
{
AfxMessageBox("创建数据源失败!!");
return;
}

    属描述中最重要的是DSN和DBQ两项,不能缺少。其它项可忽略。

  4.2 数据在远程服务器上

       举例


  if (!SQLConfigDataSource(NULL,ODBC_ADD_DSN,_T("SQL Server"),
_T("DSN=watchboard10\0DESCRIPTION=SQLConfigDSN Sample\0")
_T("SERVER=服务器名\0ADDRESS=192.168.0.118\0NETWORK=WORKGROUP\0")
_T("DATABASE=数据库名\0")
))
{
AfxMessageBox(_T("Cannot add DSN!"));
}


   最重要的三项是DSN,SERVER,DATABASE。其它项可忽略。

  注意的地方是不要加入UID,PWD;也不要在‘=’号两边有空格。

  另外,SERVER和ADDRESS一般指明一个就可以,而且服务器名和IP地址可以互换。

  可简化成如下形式:

if (!SQLConfigDataSource(NULL,ODBC_ADD_DSN,_T("SQL Server"),
_T("DSN=watchboard10\0")
_T("SERVER=192.168.0.118\0")
_T("DATABASE=wbdb\0")
))

{
AfxMessageBox(_T("Cannot add DSN!"));
}



最后说明,这个函数可以重复执行,不必担心会加入多个相同的数据源。


参考:http://blog.csdn.net/jarily/article/details/23534635



  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值