{--------------------------------------------------------------------} { } { 单元名: CreateODBC } { } { 作者: 冀涛 } { } { 版本: V1.0 } { } { 日期: 2006-7-9 } { } { 用途与描述:自动创建Accsee、Sql Server、DB2、Oracle的数据源 } { } {--------------------------------------------------------------------}
unit CreateODBC;
interface uses Windows, SysUtils, Registry, Classes;
function CreateSQLServerDSN(const FDSN, FServer, FUser: string): boolean; function CreateAccessDSN(const myDSN, strFileName: string): boolean; function CreateDB2DSN(const FDSN: string): Boolean; function CreateOracleDSN(const FDSN,FServer,Fuser:string):boolean;
imple****tion
function CreateSQLServerDSN(const FDSN, FServer, FUser: string): boolean; var RegisterTemp: TRegistry; s: string; begin RegisterTemp := TRegistry.Create; with RegisterTemp do begin RootKey := HKEY_LOCAL_MACHINE; //首先判断此DSN是否已经存在,如在,则不用继续下去 if OpenKey('Software/ODBC/ODBC.INI/' + FDSN, False) then begin CloseKey; Result := True; Free; exit; end; CloseKey; //判断SQL Server的驱动程序是否已经安装 if OpenKey('Software/ODBC/ODBCINST.INI/ODBC Drivers', False) then begin s := ReadString('SQL Server'); if UpperCase(S) <> 'INSTALLED' then begin CloseKey; Result := False; Free; exit; end; end else begin CloseKey; Result := True; Free; exit; end; CloseKey; //寻找SQL Server的驱动程序路径 if OpenKey('Software/ODBC/ODBCINST.INI/SQL Server', False) then begin s := ReadString('Driver'); if S = '' then begin CloseKey; Result := False; Free; exit; end; end else begin CloseKey; Result := True; Free; exit; end; CloseKey; //注册一个DSN名称 if OpenKey('Software/ODBC/ODBC.INI/ODBC Data Sources', True) then WriteString(FDSN, 'SQL Server') else begin CloseKey; Result := True; Free; exit; end; CloseKey; if OpenKey('Software/ODBC/ODBC.INI/' + FDSN, True) then begin WriteString('Driver', S); WriteString('LastUser', FUser); WriteString('Server', FServer); Result := True; end else begin CloseKey; Result := False; Free; exit; end; CloseKey; Free; end; end;
function CreateAccessDSN(const myDSN, strFileName: string): boolean; var registerTemp: TRegistry; bData: array[0..0] of byte; begin registerTemp := TRegistry.Create; //建立一个Registry实例 with registerTemp do begin RootKey := HKEY_LOCAL_MACHINE; //设置根键值为HKEY_LOCAL_MACHINE
//找到Software/ODBC/ODBC.INI/ODBC Data Sources if OpenKey('Software/ODBC/ODBC.INI/ODBC Data Sources', True) then begin //注册一个DSN名称 WriteString(myDSN, 'Microsoft Access Driver (*.mdb)'); end else begin //创建键值失败 Result := False; exit; end; CloseKey;
//找到或创建Software/ODBC/ODBC.INI/MyAccess,写入DSN配置信息 if OpenKey('Software/ODBC/ODBC.INI/' + MyDSN, True) then begin WriteString('DBQ', strFileName); //数据库目录 WriteString('Description', '我的新数据源'); //数据源描述 WriteString('Driver', 'C:/WINNT/system32/odbcjt32.dll'); //驱动程序DLL文件 WriteInteger('DriverId', 25); //驱动程序标识 WriteString('FIL', 'Ms Access;'); //Filter依据 WriteInteger('SafeTransaction', 0); //支持的事务操作数目 WriteString('UID', ''); //用户名称 bData[0] := 0; WriteBinaryData('Exclusive', bData, 1); //非独占方式 WriteBinaryData('ReadOnly', bData, 1); //非只读方式 end else //创建键值失败 begin Result := False; exit; end; CloseKey; //找到或创建Software/ODBC/ODBC.INI/MyAccess/Engines/Jet //写入DSN数据库引擎配置信息 if OpenKey('Software/ODBC/ODBC.INI/' + MyDSN + '/Engines/Jet', True) then begin WriteString('ImplicitCommitSync', 'Yes'); WriteInteger('MaxBufferSize', 512); //缓冲区大小 WriteInteger('PageTimeout', 10); //页超时 WriteInteger('Threads', 8); //支持的线程数目 WriteString('UserCommitSync', 'Yes'); end else //创建键值失败 begin Result := False; exit; end; CloseKey; Result := True; Free; end; end;
function CreateDB2DSN(const FDSN: string): Boolean; var RegisterTemp: TRegistry; s: string; begin RegisterTemp := TRegistry.Create; with RegisterTemp do begin RootKey := HKEY_LOCAL_MACHINE; //首先判断此DSN是否已经存在,如在,则不用继续下去 if OpenKey('Software/ODBC/ODBC.INI/' + FDSN, False) then begin CloseKey; Result := True; Free; exit; end; CloseKey; //判断DB2的驱动程序是否已经安装 if OpenKey('Software/ODBC/ODBCINST.INI/ODBC Drivers', False) then begin s := ReadString('IBM DB2 ODBC DRIVER'); if UpperCase(S) <> 'INSTALLED' then begin CloseKey; Result := False; Free; exit; end; end else begin CloseKey; Result := True; Free; exit; end; CloseKey; //寻找DB2的驱动程序路径 if OpenKey('Software/ODBC/ODBCINST.INI/IBM DB2 ODBC DRIVER', False) then begin s := ReadString('Driver'); if S = '' then begin CloseKey; Result := False; Free; exit; end; end else begin CloseKey; Result := True; Free; exit; end; CloseKey; //注册一个DSN名称 if OpenKey('Software/ODBC/ODBC.INI/ODBC Data Sources', True) then WriteString(FDSN, 'IBM DB2 ODBC DRIVER') else begin CloseKey; Result := True; Free; exit; end; CloseKey; if OpenKey('Software/ODBC/ODBC.INI/' + FDSN, True) then begin WriteString('Driver', S); Result := True; end else begin CloseKey; Result := False; Free; exit; end; CloseKey; Free; end; end;
function createOracleDSN(const FDSN,FServer,Fuser:string):boolean; var RegisterTemp:TRegistry; s:string; ODBCDriverNameList:TStringList; OraDriverName:string; i:Integer; begin RegisterTemp:=Tregistry.Create;
RegisterTemp.RootKey:=HKEY_LOCAL_MACHINE;
//首先判断此DSN是否已经存在,如在,则不用继续下去 if registertemp.OpenKey('Software/ODBC/ODBC.INI/' + FDSN, False) then begin RegisterTemp.CloseKey; Result := True; RegisterTemp.Free; exit; end; RegisterTemp.CloseKey; //判断Oracle的驱动程序是否已经安装 if RegisterTemp.OpenKey('Software/ODBC/ODBCINST.INI/ODBC Drivers', False) then begin ODBCDriverNameList:=TStringList.Create; RegisterTemp.GetValueNames(ODBCDriverNameList); for i:=1 to ODBCDriverNameList.Count-1 do begin if AnsiPos('Oracle in OraHome',ODBCDriverNameList.Strings[i])<>0 then begin OraDriverName:=ODBCDriverNameList.Strings[i]; Break; end; end; s := RegisterTemp.ReadString(OraDriverName); if UpperCase(S) <> 'INSTALLED' then begin RegisterTemp.CloseKey; Result := False; RegisterTemp.Free; exit; end; end else begin RegisterTemp.CloseKey; Result := True; RegisterTemp.Free; exit; end; RegisterTemp.CloseKey; //寻找oracle的驱动程序路径 if RegisterTemp.OpenKey('Software/ODBC/ODBCINST.INI/'+OraDriverName, False) then begin s := RegisterTemp.ReadString('Driver'); if S = '' then begin RegisterTemp.CloseKey; Result := False; RegisterTemp.Free; exit; end; end else begin RegisterTemp.CloseKey; Result := True; RegisterTemp.Free; exit; end; RegisterTemp.CloseKey; //注册一个DSN名称 if RegisterTemp.OpenKey('Software/ODBC/ODBC.INI/ODBC Data Sources', True) then RegisterTemp.WriteString(FDSN, OraDriverName) else begin RegisterTemp.CloseKey; Result := True; RegisterTemp.Free; exit; end; RegisterTemp.CloseKey; if RegisterTemp.OpenKey('Software/ODBC/ODBC.INI/' + FDSN, True) then begin RegisterTemp.WriteString('Driver', S); RegisterTemp.WriteString('UserID', FUser); RegisterTemp.WriteString('ServerName', FServer); RegisterTemp.WriteString('DNS', FDSN); RegisterTemp.WriteString('Application Attributes','T'); RegisterTemp.WriteString('Attributes','W'); RegisterTemp.WriteString('BatchAutocommitMode','IfAllSuccessful'); RegisterTemp.WriteString('CloseCursor','F'); RegisterTemp.WriteString('Description',''); RegisterTemp.WriteString('DisableMTS','F'); RegisterTemp.WriteString('EXECSchemaOpt',''); RegisterTemp.WriteString('EXECSyntax','F'); RegisterTemp.WriteString('Failover','T'); RegisterTemp.WriteString('FailoverDelay','10'); RegisterTemp.WriteString('FailoverRetryCount','10'); RegisterTemp.WriteString('ForceWCHAR','F'); RegisterTemp.WriteString('Lobs','T'); RegisterTemp.WriteString('Longs','F'); RegisterTemp.WriteString('****dataIdDefault','T'); RegisterTemp.WriteString('Password',''); RegisterTemp.WriteString('PrefetchCount','10'); RegisterTemp.WriteString('QueryTimeout','T'); RegisterTemp.WriteString('ResultSets','T'); RegisterTemp.WriteString('Translation DLL',''); RegisterTemp.WriteString('Translation Option','0');
Result := True; end else begin RegisterTemp.CloseKey; Result := False; RegisterTemp.Free; exit; end; RegisterTemp.CloseKey; RegisterTemp.Free;
end;
end.
|
相关推荐
b.15 配置odbc数据源 附录c sql语句的语法 c.1 alter table c.2 commit c.3 create index c.4 create procedure c.5 create table c.6 create view c.7 delete c.8 ...
你可以通过它查询ODBC数据源(包括世面上所有的数据库、TXT/CSV文件、EXCEL文件)的数据。你可以同时执行多条DML语句乃至存贮过程,结果会以你设定的表格、文本框、文件来返回。从数据库导出千万条数据时,效率与...
B.15 配置ODBC数据源 165 附录C SQL语句的语法 167 C.1 ALTER TABLE 167 C.2 COMMIT 167 C.3 CREATE INDEX 168 C.4 CREATE PROCEDURE 168 C.5 CREATE TABLE 168 C.6 CREATE VIEW 168 C.7 DELETE 169 C.8 ...
B.15 配置ODBC数据源..... 165 附录C SQL语句的语法...... 167 C.1 ALTER TABLE... 167 C.2 COMMIT... 167 C.3 CREATE INDEX... 168 C.4 CREATE PROCEDURE... 168 C.5 CREATE TABLE... 168 C.6 CREATE VIEW... 168 ...
各种数据库JDBC连接方法总结-包括: SQL Server2000 、 SQL Server2005、Oracle、Access直连方法:(不写数据源名的桥连方法)、MySql、IBM DB2、Sybase、Informix、PostgreSQL、MaxDB、FrontBase、JavaDB/Derby等
Sybase提供了一套应用程序编程接口和库,可以与非Sybase数据源及服务器集成,允许在多个数据库之间复制数据,适于创建多层应用。系统具有完备的触发器、存储过程、规则以及完整性定义,支持优化查询,具有较好的...
目前直接支持Oracle、SqlServer、Access、MySQL、Sybase、SQLite、DB2、PostgreSQL、DM(达梦)及支持OleDb连接的数据库和自定义类型的数据库,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库。...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...
目前直接支持oracle、sqlserver、sybase、db2、access、mysql、sqlite、postgresql、dm(达梦)、oledb和custom(自定义)类型的数据库、powerdesigner文件,同时也支持informix、firebird、maxdb、odbc等,可用于各种...
工具目前直接支持Oracle、SqlServer、Access、MySQL、Sybase、SQLite、DB2、PostgreSQL及支持OleDb连接的数据库,并对Informix、Firebird、MaxDB、Odbc等提供相应的支持。从数据库中生成表对应的VB/C#实体代码,并...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于...
目前直接支持Oracle、SqlServer、Access、MySQL、Sybase、SQLite、DB2、PostgreSQL、DM(达梦)及支持OleDb连接的数据库,并对Informix、Firebird、MaxDB、Odbc等提供相应的支持。从数据库中生成表对应的VB/C#实体代码...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...
目前直接支持Oracle、SqlServer、Access、MySQL、Sybase、SQLite、DB2、PostgreSQL、DM(达梦)及支持OleDb连接的数据库和Custom(自定义)类型的数据库,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种数据库...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于...
目前直接支持Oracle、SqlServer、Sybase、DB2、Access、MySQL、SQLite、PostgreSQL、DM(达梦)、OleDb和Custom(自定义)类型的数据库、PowerDesigner文件,同时也支持Informix、Firebird、MaxDB、Odbc等,可用于各种...