现在的位置: 首页 > 综合 > 正文

关于delphi利用ado连接数据库

2013年09月09日 ⁄ 综合 ⁄ 共 1479字 ⁄ 字号 评论关闭
 

 
 最近做了一个小程序,主要是利用ado进行数据库的连接。把可执行文件拷贝到别的环境下面就发生错误。从网上搜了部分帖子,都是说要ado版本问题。必须打包,于是从网上下载了最新的mdac_typ2.8。exe 可总是会出现连接错误。
 最终终于把问题解决了。现在把自己的一点心得总结一下。(也许对高手来说比较简单)
 因为我是用sqlanywhere 8.0 做的,所以就以anywhere数据库为例
 1、写注册表
       Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  If Reg.OpenKey('Software/ODBC/ODBCINST.INI/Adaptive Server Anywhere 8.0',false) = False Then
  Begin
       Reg.OpenKey('Software/ODBC/ODBCINST.INI/Adaptive Server Anywhere 8.0',true)
       Reg.WriteString('Driver',CurPath + '/SQL Anywhere 8/win32/dbodbc8.dll');
       Reg.WriteString('Setup',CurPath + '/SQL Anywhere 8/win32/dbodbc8.dll');
       Reg.CloseKey;
 End;
 Reg.RootKey := HKEY_LOCAL_MACHINE;
 If Reg.OpenKey('Software/ODBC/ODBCINST.INI/ODBC Drivers',True) = True Then
 Begin
      Reg.WriteString('Adaptive Server Anywhere 8.0','Installed');
 End;
 解释:上面的操作主要是写注册表的驱动信息。
      1) 在注册表HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/Adaptive Server Anywhere 8.0下面写驱动信息。包括driver 和steup。
 2) 在注册表中HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/ODBC Drivers中建立一个Adaptive Server Anywhere 8.0 字符串值为Installed
 
 2、建立ado连接字符串
   Constring:=’Driver={Adaptive Server Anywhere 8.0};PWD=sql;UID=dba;autostop=yes;database=../database/sjcj.db;;start=../SQL Anywhere 8/win32/dbeng8.exe -Q' ‘;
   ADOCon_src.Close;
   ADOCon_src.ConnectionString := Constring;
   ADOCon_src.Connected := True;
 
   解释:
    1) .. 表示位置。我是取得当前程序所在的路径,可以替换绝对路径
         2)把adoconnetion 的连接字符串替换成 生成的连接字符串 constring就可以了
 
   通过上面写注册表和生成ado连接字符串就完全可以在没有anywhere数据库机器上面用ado连接字符串了。更没有必要为了打包ado而头疼。
  至于ado连接字符串 drivert={驱动程序} 驱动程序完全可以通过写注册表完成。

抱歉!评论已关闭.