全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1354
推到 Plurk!
推到 Facebook!

由程式設定ODBC

答題得分者是:flyup
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-22 23:14:56 IP:61.56.xxx.xxx 未訂閱
請問如何用程式來設定ODBC,新增或移除一個System DSN?
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-22 23:24:29 IP:61.216.xxx.xxx 未訂閱
對資料源在註冊表中的信息: 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,再動態創建。    
系統時間:2024-05-20 12:21:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!