您的位置:首页 > 编程语言 > Delphi

动态连接数据库及动态建立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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐