(*======================================
delphi中编程实现建立ODBC数据源
====================================== 验证方式选用户输入登陆ID和密码的验证
 客户端配置里面的网络库选择 tcp/ip DSN           --- Test
 驱动程序      --- SQL Server
 服务器名      --- zzzz
 登陆ID        --- sa
 密码          --- sa
 默认数据库    --- Testbase
======================================
我测试了下面,没用。不能实现上面的效果
begin
  SQLConfigDataSource(0, ODBC_ADD_DSN,'SQL Server',
  'DSN=Test'+ chr(0) +  //数据源名字
  'Server=zzzz'+ chr(0) +
  'Database=hbrk'+ chr(0) +
end;
*)

解决方案 »

  1.   

    在用delphi自动配置odbc数据源时如果是Sql  server数据库如何配置? 主要解答者: tinderman 在注册表中可以写入用户名、数据库、驱动程序文件、数据源名称、服务器名称,但是SQl  服务器的密码怎么办呀?请教高手!  
    ---------------------------------------------------------------  
     
    procedure  CreateOdbc(ServerName,DataBaseName,UserName:String);  
    var  TheReg:TRegistry;  
           KeyName,DataBase,Driver,LastUser,Server,Trusted_connection:string;  
    begin  
       Server:=ServerName;  
       DataBase:=DataBaseName;  
       Driver:='C:\WINDOWS\SYSTEM\SQLSRV32.DLL';  
       LastUser:=UserName;  
       Trusted_Connection:='Yes';  
       try  
           TheReg:=TRegistry.Create;  
           TheReg.RootKey:=HKEY_LOCAL_MACHINE;  
           KeyName:='\software\odbc\odbc.ini\'+DataBase;  
           if  TheReg.KeyExists(KeyName)  then  begin  
               exit;  
           end;  
           if  TheReg.OpenKey(KeyName,true)  then  begin  
               TheReg.WriteString('Database',DataBase);  
               TheReg.WriteString('Driver',Driver);  
               TheReg.WriteString('LastUser',LastUser);  
               TheReg.WriteString('Server',Server);  
               TheReg.CloseKey;  
           end;  
           KeyName:='\software\odbc\odbc.ini\odbc  data  sources';  
           if  TheReg.OpenKey(KeyName,false)  then  begin  
               TheReg.WriteString(DataBase,'SQL  Server');  
               TheReg.CloseKey;  
           end;  
       finally  
           TheReg.Free;  
       end;  
    end;  
    ---------------------------------------------------------------  
     
    对,在写数据原的时候照样写,在CREATE的时候  把  登陆ID  和密码从注册表中读出,按  tinderman(塞外飞鹄)  的方法去做没有问题。
      

  2.   

    (*======================================================
       先谢谢楼上的兄弟!!!
       我试验了上面的代码了,有2点疑惑
        1。客户端配置里面的网络库选择 tcp/ip得用程序实现!
        2。 密码项如果写进去,咋写呢?所以,我还是认为是delphi中不可能完成的任务!!!========================================================= *)
      

  3.   

    除了  jinjazz(近身剪(N-P攻略))  ,楼上的全部不算靠技术吃饭的!!
    =================================================================
    如果 你能在写完代码后在说的话,那才是能力,那才是俺佩服的高手!!!
    ==================================================================================================================================期待真正的高手出现 !!!谢谢!!!
      

  4.   

    急聘DELPHI人员,3个月的项目,地点上海,待遇优!
    有意请至电:021 6249 2931
    [email protected]
      

  5.   

    uses adoconed;EditConnectionString(AdoConnection1);
      

  6.   

    对对对,这里只有楼主才是靠技术吃饭的,PFPF
      

  7.   

    uses AdoConEd;   
    Try
         ADOConnection.Open;
       except
         ADOConnection.Close;
         if EditConnectionString(ADOConnection) then
         begin
          //showmessage(ADOConnection.ConnectionString);
          WriteString('ConnStr',ADOConnection.ConnectionString);
         end;
       end;
      

  8.   

    客户端配置里面的网络库选择 tcp/ip用程序实现
    -------------------------------------------
    ODBC的客户端配置是通过ODBC administrator程序配置到注册表里面取的,
    HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources,
    你可以通过修改里面的键值来对达到设置的目的。