动态连接数据库及动态建立odbc’dsn的delphi实现
2004-07-05 10:45
513 查看
在form或Data Modules上放置Tdatabase控件,属性设置如下: object dbWork: TDatabase DatabaseName = 'work' LoginPrompt = False SessionName = 'Default' TransIsolation = tiDirtyRead Left = 32 Top = 16 End 1) Paradox数据库的连接 dbWork.Connected := False
dbWork.DriverName :='STANDARD';
dbWork.Params.Values['PATH'] := ‘d:/data’; //填写数据库路径
dbWork.Connected := True; 2) Informix数据库的连接(BDE连接) dbWork.Connected := False
dbWork.DriverName := 'informix';
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘sysmaster;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True; 3) SQL Server数据库的连接(与informix一样) dbWork.Connected := False
dbWork.DriverName := 'MSSQL';
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True; 4) Postgrd SQL数据库的连接(ODBC连接) dbWork.Connected := False
dbWork.DriverName := 'PostgreSQL';
dbWork.Params.Values['ODBC DSN'] := 'PgSQL';/ /数据源名称
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True; PS:ODBC连接时,请保证odbc驱动安装正确;并且有设置odbc; 附自动设置odbc代码: // sDriName 驱动程序名 (PostgreSQL) // sDsnName 数据源名 function CreateDSN(sDriName,sDsnName:string): boolean; var regTmp: TRegistry; sTmp: String; begin Result:= True; regTmp:= TRegistry.Create; try with regTmp do begin RootKey:= HKEY_LOCAL_MACHINE; if openkey('software/ODBC/ODBCINST.INI/'+sDriName,false) then begin sTmp:= ReadString('driver'); if sTmp = '' then begin result:= false; exit; end; end else begin result:= false; exit; end; CloseKey; RootKey:= HKEY_CURRENT_USER; if openkey('software/ODBC/ODBC.INI/ODBC Data Sources',True) then begin if not ValueExists(sDsnName) then WriteString(sDsnName,sDriName); end else begin result:= false; exit; end; CloseKey; if openkey('software/ODBC/ODBC.INI/'+sDsnName,True) then begin if not ValueExists('ServerName') then writeString('ServerName',''); if not ValueExists('DataBase') then writeString('DataBase',''); if not ValueExists('UserName') then writeString('UserName',''); if not ValueExists('Password') then writeString('Password',''); if not ValueExists('Description') then writeString('Description','DoWhat Create'); if not ValueExists('driver') then writeString('driver',sTmp); end else begin result:= false; exit; end; end; finally regTmp.CloseKey; end; end;
dbWork.DriverName :='STANDARD';
dbWork.Params.Values['PATH'] := ‘d:/data’; //填写数据库路径
dbWork.Connected := True; 2) Informix数据库的连接(BDE连接) dbWork.Connected := False
dbWork.DriverName := 'informix';
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘sysmaster;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True; 3) SQL Server数据库的连接(与informix一样) dbWork.Connected := False
dbWork.DriverName := 'MSSQL';
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True; 4) Postgrd SQL数据库的连接(ODBC连接) dbWork.Connected := False
dbWork.DriverName := 'PostgreSQL';
dbWork.Params.Values['ODBC DSN'] := 'PgSQL';/ /数据源名称
dbWork.Params.Values['SERVER NAME'] := sServer ;//数据库服务器名称
dbWork.Params.Values['USER NAME'] := sUse ;//用户名称
dbWork.Params.Values['DATABASE NAME'] := ‘master;//数据库名称
dbWork.Params.Values['PASSWORD'] := sPass ;//用户密码
dbWork.Connected:=True; PS:ODBC连接时,请保证odbc驱动安装正确;并且有设置odbc; 附自动设置odbc代码: // sDriName 驱动程序名 (PostgreSQL) // sDsnName 数据源名 function CreateDSN(sDriName,sDsnName:string): boolean; var regTmp: TRegistry; sTmp: String; begin Result:= True; regTmp:= TRegistry.Create; try with regTmp do begin RootKey:= HKEY_LOCAL_MACHINE; if openkey('software/ODBC/ODBCINST.INI/'+sDriName,false) then begin sTmp:= ReadString('driver'); if sTmp = '' then begin result:= false; exit; end; end else begin result:= false; exit; end; CloseKey; RootKey:= HKEY_CURRENT_USER; if openkey('software/ODBC/ODBC.INI/ODBC Data Sources',True) then begin if not ValueExists(sDsnName) then WriteString(sDsnName,sDriName); end else begin result:= false; exit; end; CloseKey; if openkey('software/ODBC/ODBC.INI/'+sDsnName,True) then begin if not ValueExists('ServerName') then writeString('ServerName',''); if not ValueExists('DataBase') then writeString('DataBase',''); if not ValueExists('UserName') then writeString('UserName',''); if not ValueExists('Password') then writeString('Password',''); if not ValueExists('Description') then writeString('Description','DoWhat Create'); if not ValueExists('driver') then writeString('driver',sTmp); end else begin result:= false; exit; end; end; finally regTmp.CloseKey; end; end;
相关文章推荐
- 动态连接数据库及动态建立ODBC,DSN(ZT)
- 动态连接数据库及动态建立ODBC,DSN(ZT) 选择自 SafeF8 的 Blog
- php和ajax连接数据库实现动态数据可视化
- ODBC连接数据库使用动态密码
- 在Java中利用动态代理实现数据库连接与事务的自动管理
- delphi连接mysql不用添加DSN(mysql connector odbc 5.1版)
- Delphi实现winsock编程之二(套接字的建立绑定侦听以及连接)
- 数据持久层DAO的建立和使用,实现数据库的连接
- 利用NS2的产生随机数机制来实现对链路的动态设置(连接建立时间,延迟)
- delphi中动态创建MySQL的ODBC连接 --转
- Delphi 开发时运行出现 程序连接数据库错误 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
- [Delphi]delphi中动态创建MySQL的ODBC连接
- 在Java中利用动态代理实现数据库连接与事务的自动管理
- ODBC连接数据库提示“ [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配”的解决方法
- 如何在web页面中实现连接数据库的动态的组织结构图?
- 通过动态代理(Proxy)实现的数据库连接池的创建连接与归还链接的操作的简单的实现流程
- C#数据库编程(建立数据库表,数据库的连接,实现的源代码)
- delphi连接mysql不用添加DSN(mysql connector odbc 5.1版)
- C#数据库编程(建立数据库表,数据库的连接,实现的源代码)
- [Echarts可视化] 二.php和ajax连接数据库实现动态数据可视化