我用的是delphi+delphi自带的paradox库(ADO)开发的程序,在本机可以运行,但是在另一台只装拉
操作系统的机子上就不能运行总提示odbc错误请问要怎样打包

解决方案 »

  1.   

    呵呵,那个是用ADO连的ODBC联接,看看源程序,创建一个ODBC呗
      

  2.   

    在打开数据连接的时候判断ODBC连接是否存在,如果不存在的话,创建连接即可。
      

  3.   

    这是个SQL Server的,你改改就可以的//注册SQL Server ODBC数据库连接信息到注册表
    function RegOdbcSqlServer(OdbcName:string;Desc:string;DatabaseName:string;DatabaseUserName:string;Databasepassword:string;DatabaseServerName:string;var ErrorInfo:string):Boolean;
    var
      registertemp:TRegistry;   //注册表类
    begin
      if trim(OdbcName)='' then begin
        ErrorInfo:='ODBC数据源名称不能为空!';
        RegOdbcSqlServer:=false;
        exit;
      end;
      if trim(DatabaseName)='' then begin
        ErrorInfo:='数据库名称不能为空!';
        RegOdbcSqlServer:=false;
        exit;
      end;
      if trim(DatabaseUserName)='' then begin
        ErrorInfo:='数据库用户名不能为空!';
        RegOdbcSqlServer:=false;
        exit;
      end;
      if trim(DatabaseServerName)='' then begin
        ErrorInfo:='数据库服务器名不能为空!';
        RegOdbcSqlServer:=false;
        exit;
      end;    //以下为注册ODBC(SQL SERVER) 和写信息到注册表
      registertemp:=Tregistry.Create;
      with registertemp do begin
        Rootkey:=HKEY_LOCAL_MACHINE;
        try
          try
                                               //首先检测ODBC驱动程序是否安装
            if not openkey('SOFTWARE\ODBC\ODBCINST.INI\SQL Server',FALSE) then begin
              ErrorInfo:='请按装 Microsoft SQL Server 的ODBC驱动程序!';
              RegOdbcSqlServer:=false;
              Exit;
            end;
                                 //注册SQL SERVER
            closekey;
            if openkey('SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources',true) then
              writestring(OdbcName,'SQL Server');        closekey;
            If Openkey('SOFTWARE\ODBC\ODBC.INI\'+OdbcName,true) then
              begin
                Writestring('driver','\SQLSRV32.dll');
                Writestring('lastuser',DatabaseUserName);
                Writestring('server',DatabaseServerName);
                Writestring('password',Databasepassword);
                Writestring('database',DatabaseName);
                Writestring('Description',Desc);
              End;
            ErrorInfo:='创建成功!';
            RegOdbcSqlServer:=true;
          except
            ErrorInfo:='创建失败,写注册表失败!';
            RegOdbcSqlServer:=false;
          end;
        finally
          Closekey;
          Free;
        end;
      end;
    end;
      

  4.   

    它可以把注册的ODBC设置做进安装文件中,再其它电脑中安装时自动修改注册表。