?? 全自動創立odbc,以sybase,dbf為例 (2001年3月6.txt
字號:
全自動創立ODBC,以sybase,dbf為例 (2001年3月6日)
網友更新 分類:數據庫 作者:閻磊 推薦:yanlei 閱讀次數:439
(http://www.codesky.net)
--------------------------------------------------------------------------------
uses Registry;
function get_driver_pathname(driver_mainkey:string):string;//獲得一個驅動器的路徑
var
reg:TRegistry;
begin
reg:= TRegistry.Create; //建立一個Registry實例
with reg do
begin
RootKey:=HKEY_LOCAL_MACHINE;//設置根鍵值為HKEY_LOCAL_MACHINE
if OpenKey('SOFTWARE\ODBC\ODBCINST.INI\'+driver_mainkey,True) then
begin
result:=readstring('Driver')
end;
free;
end;
end;
function create_syodbc(allias:string;Description:string;server_name:string;database_name:string;pwd:string;dbf_type:string):boolean;//sybase
var
registerTemp : TRegistry;
bData : array[ 0..0 ] of byte;
begin
registerTemp := TRegistry.Create; //建立一個Registry實例
with registerTemp do
begin
RootKey:=HKEY_LOCAL_MACHINE;//設置根鍵值為HKEY_CURRENT_USER在用戶區
//找到Software\ODBC\ODBC.INI\ODBC Data Sources
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
begin //注冊一個DSN名稱
WriteString( allias, dbf_type);
end
else
begin
//創建鍵值失敗
result:=false;
exit;
end;
CloseKey;
//找到或創建Software\ODBC\ODBC.INI\MyAccess,寫入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\'+allias,True) then
begin
WriteString( 'Description', Description );//數據源描述
WriteString( 'Driver', get_driver_pathname(dbf_type));//驅動程序DLL文件
// WriteInteger( 'DriverId', 25 );//驅動程序標識
// WriteString( 'FIL', 'Ms Access;' );//Filter依據
//WriteInteger( 'SafeTransaction', 0 );//支持的事務操作數目
//WriteString( 'UID', uid );//用戶名稱
WriteString( 'LogonID', pwd);//用戶密碼
bData[0] := 0;
WriteString('ServerName',server_name);
WriteString('Servers',server_name);
WriteString('Databases',database_name);
WriteString('Database',database_name);
end
else
//創建鍵值失敗
begin
result:=false;
exit;
end;
CloseKey;
//找到或創建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet
//寫入DSN數據庫引擎配置信息
result:=true;
Free;
end;
end;
function create_dbfodbc(allias:string;dbf_type:string;data_path:string):boolean;//dbf
var
registerTemp : TRegistry;
begin
registerTemp := TRegistry.Create; //建立一個Registry實例
with registerTemp do
begin
RootKey:=HKEY_CURRENT_USER;//設置根鍵值為HKEY_LOCAL_MACHINE
//找到Software\ODBC\ODBC.INI\ODBC Data Sources
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
begin //注冊一個DSN名稱
WriteString( allias, dbf_type);
end
else
begin
//創建鍵值失敗
result:=false;
exit;
end;
CloseKey;
//找到或創建Software\ODBC\ODBC.INI\MyAccess,寫入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\'+allias,True) then
begin
WriteString('DefaultDir',data_path);
WriteString('Driver', get_driver_pathname(dbf_type));//驅動程序DLL文件
writeinteger('DriverId',533);
WriteString('FIL', 'dBase 5.0');//驅動程序DLL文件
writeinteger('SafeTransactions',0);
WriteString('UID', '');//驅動程序DLL文件
end
else
//創建鍵值失敗
begin
result:=false;
exit;
end;
CloseKey;
if OpenKey('Software\ODBC\ODBC.INI\'+allias+'\Engines\xbase',True) then
begin
WriteString( 'CollatingSequence', 'ASCII' );
WriteInteger( 'Deleted', 01 );//緩沖區大小
Writestring( 'ImplicitCommitSync', ' ');//頁超時
WriteInteger( 'PageTimeout', 600 );//支持的線程數目
Writeinteger('Statistics', 0 );
Writeinteger('Threads',3);
WriteString('UserCommitSync','YES');
end
else//創建鍵值失敗
begin
result:=false;
exit;
end;
CloseKey;
result:=true;
Free;
end;
end;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -