CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  数据库

vc sql server odbc如何动态创建一个数据源!!!

楼主dd97911(www)2005-06-03 08:36:46 在 VC/MFC / 数据库 提问

vc   sql   server   odbc如何动态创建一个数据源!!!  
  实现条件:  
  1〉不使用控制面板,  
  2〉而后又能使数据源直接连到pubs库上,  
  3〉使用系统身份验证。  
  以上这些能够自动完成!!清高首赐教!!! 问题点数:0、回复次数:6Top

1 楼bohut(●伯虎● )回复于 2005-06-03 08:53:33 得分 0

写注册表动态创建SQL   Server   ODBC数据源  
   
  各个参数的意义:  
  DBServer:   数据库所在主机  
  DBName:     数据库名称  
  DSN:       数据源名称  
  UID:       登陆用户  
  返回值:  
  -1:   没有安装SQL   Server驱动程序  
  -2:   其他错误  
  0:   成功  
   
  实现函数:  
  int   MakeSQLServerODBCDSN(LPCTSTR   DBServer,LPCTSTR   DBName,LPCTSTR   DSN,LPCTSTR   UID)  
  {  
    BOOL     bInstallDriver=TRUE;  
    CRegKey     regKey;  
   
    LONG   lRet=regKey.Open(HKEY_LOCAL_MACHINE,"Software\\ODBC\\ODBCINST.INI\\SQL   Server");  
    if(lRet!=ERROR_SUCCESS)  
    {  
      bInstallDriver=FALSE;  
    }  
    else  
    {  
      char     szDirverPath[MAX_PATH]="";  
      DWORD     dwCount=100;  
      lRet=regKey.QueryValue(szDirverPath,"Driver",&dwCount);  
      if((lRet!=ERROR_SUCCESS)||(dwCount<1))  
      {  
        DWORD   dwErr=GetLastError();  
        bInstallDriver=FALSE;  
      }  
      regKey.Close();  
    }  
    if(!bInstallDriver)  
    {  
      return   -1;  
    }  
    CString     strKeyValueName="Software\\ODBC\\ODBC.INI\\";  
    strKeyValueName+=DSN;  
    lRet=regKey.Create(HKEY_LOCAL_MACHINE,strKeyValueName);  
    if(lRet!=ERROR_SUCCESS)  
    {  
      return   -2;  
    }  
    regKey.SetValue(DBName,"Database");  
    regKey.SetValue("SQLSrv32.dll","Driver");  
    regKey.SetValue(DBServer,"Server");  
    regKey.SetValue(UID,"LastUser");  
    regKey.m_hKey=HKEY_LOCAL_MACHINE;  
    regKey.SetKeyValue("Software\\ODBC\\ODBC.INI\\ODBC   Data   Sources","SQL   Server",DSN);  
    regKey.Close();  
    return   0;  
  }  
  Top

2 楼flyback(墨羽)回复于 2005-06-03 08:53:55 得分 0

注册表Top

3 楼dd97911(www)回复于 2005-06-03 09:19:37 得分 0

to:bohut(伯虎)    
  我是想实现:  
  怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS   NT验证被选中”?  
  我写的部分代码:      
  if(SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"SQL   Server",_T("DNS=myDNS\0SERVER=TEXT\0DATABASE=pubs\0"));我是由控制面板打开DNS时,默认的选择“使用用户登陆的ID和密码的SQL   SERVER身份验证”,我怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS   NT验证被选中”呢?Top

4 楼dd97911(www)回复于 2005-06-03 09:19:45 得分 0

to:bohut(伯虎)    
  我是想实现:  
  怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS   NT验证被选中”?  
  我写的部分代码:      
  if(SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"SQL   Server",_T("DNS=myDNS\0SERVER=TEXT\0DATABASE=pubs\0"));我是由控制面板打开DNS时,默认的选择“使用用户登陆的ID和密码的SQL   SERVER身份验证”,我怎样才能使动态配置的数据源能够默认选择“使用网络登陆ID的WINDOWS   NT验证被选中”呢?Top

5 楼koko1998(高价购买火车票)回复于 2005-06-03 09:40:30 得分 0

http://www.vckbase.com/document/finddoc.asp?mclsid=&sclsid=&page=1&keyword=odbcTop

6 楼bohut(●伯虎● )回复于 2005-06-03 09:51:57 得分 0

参考  
  http://www.vckbase.com/document/viewdoc/?id=249Top

相关问题

  • VC通过ODBC连接Sql Server数据库的问题
  • SQL SERVER和VC++用ODBC连接的问题?
  • COleDateTime and datetime in VC - SQL SERVER
  • 用Vc访问SQL Server库除了ODBC还有其它方法吗?
  • 如何取消在VC里用ODBC连接SQL SERVER的登录框?
  • 专业的ODBC ORACLE SQL SERVER
  • SQL Server连接问题 ODBC
  • SQL Server ODBC连接问题
  • odbc连接SQL Server问题
  • 初学者问题之三:"SQL"+"ODBC"+"VC++"

关键词

  • 数据
  • server
  • 数据源
  • lret
  • 动态创建
  • dwcount
  • odbc
  • regkey
  • lpctstr
  • sql server

得分解答快速导航

  • 帖主:dd97911

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo