由程式設定ODBC |
答題得分者是:flyup
|
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
對資料源在註冊表中的信息:
HKEY_LOCAL_MACHINE\Software\ODBC\ ODBCInst.INI中,
存放著已經安裝了的ODBC資料庫驅動程序的信息,
\在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI中,
存放著系統 DSN的註冊信息,我們在ODBC控制面板設置的DSN參數就放在這裡. *******************************************************
下面的程式碼將創建一個ODBC系統資料源(DSN),
資料源名稱:myaccess97
資料源描述:我的資料源
資料庫類型: ACCESS97
對應資料庫:C:\test.mdb
*******************************************************} USES Registry; procedure TForm1.Button1Click(Sender: TObject);
var
Temp : TRegistry;
bData : array[ 0..0 ] of byte;
begin
Temp := TRegistry.Create; //建立一個Registry實例
with Temp 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( 'myaccess97', 'Microsoft Access Driver (*.mdb)' ); end
else
begin//創建鍵值失敗
SHOWMESSAGE('增加ODBC資料源失敗');
exit;
end;
CloseKey; //找到或創建Software\ODBC\ODBC.INI\myaccess97,寫入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\myaccess97',True) then
begin
WriteString( 'DBQ', 'C:\test.mdb' );//資料庫目錄
WriteString( 'Description','我的新資料源' );//資料源描述
WriteString( 'Driver', 'C:\WINDOWS\SYSTEM\odbcjt32.dll' );//驅
動程序DLL文件 ODBCJT32.DLL文件依據你的存放路徑
WriteInteger( 'DriverId', 25 ); //驅動程序標識
WriteString( 'FIL', 'Ms Access;' );
//Filter依據
WriteInteger( 'SafeTransaction', 0 ); //支持的事務操作數目 //若不存在用戶,則為下面一句:
WriteString( 'UID', '' );//用戶名稱,若存在用戶,則寫入用戶名
//若存在用戶和密碼,則為下面二句:
WriteString( 'UID', 'hns' ); //用戶名
WriteString( 'PWD', '199911' );//口令 bData[0] := 0;
WriteBinaryData( 'Exclusive', bData, 1 ); //是否以獨佔方式打
開,1為是,默認為0 WriteBinaryData( 'ReadOnly', bData, 1 ); //是否以只讀方式打
開,1為是,默認為0
end
else//創建鍵值失敗
begin
showmessage('增加ODBC資料源失敗');
exit;
end;
CloseKey; // 找到或創建Software\ODBC\ODBC.INI\myaccess97\Engines\Jet 寫入D
SN資料庫引擎配置信息
if OpenKey('Software\ODBC\ODBC.INI\myaccess97\Engines\Jet',True)
then
begin
WriteString( 'ImplicitCommitSync', 'Yes' ); //表示是否立即反映數
據修改
WriteInteger( 'MaxBufferSize', 512 );//緩衝區大小
WriteInteger( 'PageTimeout', 10 );//頁超時
WriteInteger( 'Threads', 3 );//支持的線程數目
WriteString( 'UserCommitSync', 'Yes' ); //表示是否立即將資料修改
反映到用戶
end
else//創建鍵值失敗
begin
showmessage('增加ODBC資料源失敗');
exit;
end;
CloseKey; showmessage('增加新ODBC資料源成功'); Free;
end;
end; 對於EXCEL97,FOXPRO,DBASE,方法差不多,可先手工建立DSN,再動態創建。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |