在delphi中怎样动态创建ODBC数据源
就是用代码创建?
请各位帮帮忙!!!!!!

解决方案 »

  1.   

    function RegODBCDNSName(const DNSName, Server, DatabaseName: string): boolean;
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create();
      try
        with Reg do
        begin
          RootKey := HKEY_LOCAL_MACHINE;
          if OpenKey('SoftWare\ODBC\ODBC.INI\ODBC Data Sources', true) then
            WriteString(DNSName, 'SQL Server')
          else
          begin
            ShowErrorInfo('ODBC 初始化错误!');
            Result := False;
            Exit;
          end;
          CloseKey;
          if OpenKey('SoftWare\ODBC\ODBC.INI\' + DNSName, true) then
          begin
            WriteString('Database', DatabaseName);
            WriteString('LastUser', 'sa');
            WriteString('Server', Server);
            WriteString('Driver', 'C:\WINNT\System32\SQLSRV32.dll');
          end
          else
          begin
            ShowErrorInfo('ODBC 初始化错误!');
            Exit;
          end;
        end;
      finally
        if Reg <> nil then
        begin
          Reg.CloseKey;
          Reg.Free;
        end;
      end;
    end;
      

  2.   

    另外,你可用SQLConfigDataSource来建别名:
    http://www.chinabyte.com.cn/20010625/186771.shtml
    因为delphi是用BDE调用ODBC的,所以密码可保存在一个TDataBase控件中