線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2153
推到 Plurk!
推到 Facebook!

如何修改ODBC的DSN

尚未結案
a120803
初階會員


發表:61
回覆:66
積分:25
註冊:2003-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-22 15:18:55 IP:163.25.xxx.xxx 未訂閱
請問各位大大: 如何利用程式修改ODBC的DSN,驅動程式是Microsoft Access 2000,Database=test.mdb SQLConfigDataSource如何寫啊
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-22 15:38:01 IP:202.39.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=21498 --- 每個人都是一本書
a120803
初階會員


發表:61
回覆:66
積分:25
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-22 20:52:43 IP:163.25.xxx.xxx 未訂閱
謝謝大大: 但是我的程式不能執行ㄝ,出現[Linker Error] Unresolved external 'SQLConfigDataSource' referenced from D:\BORLAND\CBUILDER5\PROJECTS\VCLTEST\UNIT1.OBJ 錯誤ㄝ 我是要改變ODBC的Access database名稱,由test2.mdb改為test1.mdb SQLConfigDataSource(0, 2,"Microsoft Access Driver (*.mdb)","DSN=MS Access Database;Driver=ODBCJT32.DLL;DBQ=C:\\windows\\desktop\\TEST.mdb;DefaultDir=C:\;Description=;FIL=MS Access;UID=;");
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-22 23:52:05 IP:61.221.xxx.xxx 未訂閱
若是你的 odbc 已存在的話, 建議你可以使用修改 registry 的方式, 程式如下:
uses Registry;
//...
procedure TForm1.Button1Click(Sender: TObject);
var
  Reg: TRegistry;
  sODBC_NAME : string;
begin
  Reg := TRegistry.Create;
  sODBC_NAME := 'myodbc'; //你的 odbc name
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('\Software\ODBC\ODBC.INI\' sODBC_NAME, True) then
  begin
      //showmessage(Reg.ReadString('DBQ'));
      Reg.WriteString('DBQ', StringReplace(Reg.ReadString('DBQ'), 'test2.mdb', 'test1.mdb', [rfReplaceAll, rfIgnoreCase]));
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
end;
a120803
初階會員


發表:61
回覆:66
積分:25
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-26 00:46:07 IP:163.25.xxx.xxx 未訂閱
謝謝大大: 修改了Registry 但是在odbc的資料管理員還沒有更正衣料來源 哪裡錯了ㄋ
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-26 07:28:12 IP:202.39.xxx.xxx 未訂閱
引言: 謝謝大大: 但是我的程式不能執行ㄝ,出現[Linker Error] Unresolved external 'SQLConfigDataSource' referenced from D:\BORLAND\CBUILDER5\PROJECTS\VCLTEST\UNIT1.OBJ 錯誤ㄝ 我是要改變ODBC的Access database名稱,由test2.mdb改為test1.mdb SQLConfigDataSource(0, 2,"Microsoft Access Driver (*.mdb)","DSN=MS Access Database;Driver=ODBCJT32.DLL;DBQ=C:\\windows\\desktop\\TEST.mdb;DefaultDir=C:\;Description=;FIL=MS Access;UID=;");
在 Delphi 內得自己宣告 SQLConfigDataSource 我想您那個錯誤應該是在 C 兄也得自己宣告吧! 至於怎麼宣告嘛! 小弟不會 C . --- 每個人都是一本書
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-26 17:09:30 IP:61.221.xxx.xxx 未訂閱
引言: 修改了Registry 但是在odbc的資料管理員還沒有更正衣料來源
弟試過沒有問題啊.. 更新 registry 後確實是會更新進odbc中沒有問題, 會不會是你先連入資料庫後才修改 registry , 這樣不會馬上變成新的資料庫, 必須將 TADOConnection 或 TDatabase 斷線後重連才會用新的設定連接哦
系統時間:2024-05-06 1:46:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!