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

資料庫的名稱可否不要重複?

尚未結案
enu
中階會員


發表:36
回覆:93
積分:55
註冊:2003-10-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-11 06:20:50 IP:220.142.xxx.xxx 未訂閱
各位先進,請教一個問題: 將設計好的資料庫程式安裝在幾台機器上,但每一台機器的資料庫名稱都會一樣,現在小弟想要每台機器在安裝時可以將資料庫名稱設成不一樣,例如data1、data2……,以方便事後收回統計;不知道有沒有方法可以先寫在程式裡呢?(或什麼方法可以做到?)懇請賜教!感激不儘!
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-11 08:56:37 IP:211.20.xxx.xxx 未訂閱
你的資料庫是FILE型的嗎 若是,在程式執行前,將資料庫的檔名改成電腦名稱 再去OPEN、CONNECT資料庫 這只是我的想法還沒有去實做過 你可以試試看
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-11 09:02:17 IP:221.169.xxx.xxx 未訂閱
enu:我不覺得符合你的要求會方便些,何不將這些Table置於一
目錄下,而這些目錄你可以考慮以電腦名稱或使用者名稱命名。
如此你程式好處理,事後收回統計也會很方便。當然目錄命名方式一堆!
你也可以自行想像,而Table開啟前面只要加上指定目錄路徑即可。
// 電腦名稱
AnsiString __fastcall TForm1::Get_PC_Name(void)
{
  AnsiString temp;
  temp="";
  char *Buffer=new char[64];
  DWORD NameSize;
  NameSize = MAX_COMPUTERNAME_LENGTH   1;
  if( GetComputerName(Buffer, &NameSize))
  {
    temp=Buffer;
  }
  delete Buffer;
  return (temp);
}
// 電腦使用者名稱
AnsiString __fastcall TForm1::Get_USER_Name(void)
{
  AnsiString temp;
  temp="";
  char *Buffer=new char[64];
  DWORD NameSize;
  NameSize = 50;
  if( GetUserName(Buffer, &NameSize))
  {
    temp=Buffer;
  }
  delete Buffer;
  return (temp);
}
請參考!
Andy Chang
------
Andy Chang
enu
中階會員


發表:36
回覆:93
積分:55
註冊:2003-10-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-11 09:38:59 IP:163.27.xxx.xxx 未訂閱
先謝過各位先進,小弟是使用ADO來抓ACCESS資料庫,如果是這樣,應該如何設計會較適當呢?謝謝!
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-11 09:49:41 IP:211.20.xxx.xxx 未訂閱
若你的電腦都在區域網路內,都可以看到同一台電腦 用andychang1690的方式比較好 若都是單機不相連,就要在單機上用我的方式 檔案命名可以用andychang1690大大的方式 Connect的字串依上述方式產生 你要做的就是Connect不要寫在物件內 在FormCreate時再填入物件屬性中 就可以 P.S:路徑字串要用2個"/"代表1個"/" 例如: ConnectString = "////Server1//PC1//ABC_DB.MDB"
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-11 13:22:36 IP:221.169.xxx.xxx 未訂閱
enu:不知下面例子夠不夠清楚:    AnsiString SPath;
SPath=ExtractFilePath(ParamStr(0)) "DataBase\\" Get_PC_Name "\\";
ADOConnection1->Connected = false;
ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="   SPath   "DataBase.mdb;Persist Security Info=False";
ADOConnection1->Connected = true;
// ExtractFilePath(ParamStr(0)) 執行檔當前目錄,隨你改變!
// DataBase 假設你的Access 統一放置此目錄方便管理。
// Get_PC_Name() 假設你以電腦名稱為主。    請參考!
Andy Chang
------
Andy Chang
系統時間:2024-05-05 17:26:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!