Win 32平台上的DBMaker Client安裝

許多人在安裝DBMaker 伺服器,開發軟體完畢後,接下來面臨的問題,就是如何將應用程式及DBMaker驅動程式佈署(Deploy)到各個Client的機械,最簡單的方法,便是用DBMaker的光碟片,一一至各Client端去安裝驅動程式,但這種方法有些麻煩,許多程式設計師現都已用Install Shield之類的軟體來協助部署應用程式,難道不能將DBMaker客戶端驅動程式一併打包完成,再一次佈署至客戶端機械嗎??

本文便是在探討,在安裝驅動程式時,需要安裝哪些DLL,和註冊(Register)哪些東西,希望藉由本文,開發者皆能利用簡單的安裝工具,一次將所有元件佈署完畢,而省去許多的麻煩。

1.      複製檔案以便佈署之用

假設開發者已在本機完裝了DBMaker,請到以下的目錄,去尋找相對的檔案

[WINNT]\SYSTEM32\DMAPI37.DLL

[WINNT]\SYSTEM32\DMSET32.DLL

[WINNT]\dmconfig.ini

Note: WINNT指的是作業系統安裝目錄,在Win2000中,多以WinNT命名,在98中,多以Win98命名,視當初安裝時指定的目錄

建議在找到這些檔案後,請複製一份至特定目錄,方便之後的操作,同時也較能維護系統完整;你可以發現,實際上這三個檔案僅佔不到1M的大小,所以DBMaker的ODBC Driver,相當輕量。

以下介紹在安裝驅動程式時,實際執行的動作;強烈建議讀者先用手動操作一遍,確定所有動作都了解後,再使用安裝軟體(如:Install Shield)來包裝;假設現在開發者已開發完畢,準備開始包裝。

2.      修改dmconfig.ini以符合實際環境

在開發時,dmconfig.ini的設定通常都是以Server的方式記錄,例如:

[DBSAMPLE]

DB_DBDIR=C:\APP\DB

….

DB_SVADR=127.0.0.1           ;本機使用的IP位址

DB_PTNUM=6665                 ;Port Number

前面一段的設定,是指定檔案需放至Server的那個目錄下;最後兩行則是指定Server執行使用的IP及Port Number;對客戶端而言,是不需要設定檔案所放目錄,只要知道Server的IP及Port Number即可。所以可改成:

[DBSAMPLE]

DB_SVADR=192.168.0.1       ;實際的IP位址

DB_PTNUM=6665                 ;需與Server的PortNumber相同

現在你已有了一個適合客戶端的dmconfig.ini,接下來看看我們需要作其他什麼動作。

3.      將檔案複製到客戶端相對的目錄

接下來,就是將步驟1的檔案,放到客戶端相對應的目錄,要注意的是,在Win2000中,這些DLL檔是放在SYSTEM32目錄下,但在Win98中,則是放在SYSTEM底下

4.      設定 ODBC Driver Manager 之驅動程式

現在要作ODBC的註冊手續(Register),讓系統知道有這個新的Driver,請使用「regedit」命令,開啟Register Editor。

  •        ODBCINST.INI機碼會列出本機可用的ODBC驅動程式資料描述,Windows 95/NT之Registry Database之機碼結構如下:

HKEY_LOCAL_MACHINE
 Software
  ODBC
   ODBCINST.INI      // ODBC Driver

  • 如何為產品新增ODBC Driver

    新增(機碼=字串值)如下:

HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI
 ODBC Drivers
  DBMaker x.x Driver ='Installed'

DBMaker x.x Driver
  Driver=<SYSTEM_DLL_PATH>\dmapi37.dll
  Setup=<SYSTEM_DLL_PATH>\dmset32.dll
  APILevel=1
  ConnectFunction=YYN
  DriverODBCVer=03.00
  FileUsage=0
  SQLLevel=1

 

若一切順利的話,當作完此項步驟時,在控制台的ODBC設定有關Driver部份,將可看到新產生的DBMaker x.x Driver

5.      註冊ODBC Data Source Name(DSN)

開發出來的軟體需透過ODBC DSN方能存取DBMaker資料庫,本節說明如何設定資料庫所對應的ODBC資料來源名稱。

  • ODBC.INI列出資料來源名稱(DSN)和所使用之ODBC驅動程式,放置於Windows 95/NT之Registry Database之機碼結構如下:

HKEY_LOCAL_MACHINE
 Software
  ODBC
   ODBC.INI       // System Data Source
  Name

HKEY_CURRENT_USER
 Software
  ODBC
   ODBC.INI      // User Data Source Name

  • 如何為產品新增System Data Source Name(DSN)

    新增(機碼=字串值)如下:

    HKEY_LOCAL_MACHINE \Software\ODBC\ODBC.INI
     ODBC Data Sources
      <DSN>= DBMaker x.x Driver
    <DSN>
     Database=<DBName>
     Driver=< SYSTEM_DLL_PATH >/dmapi37.dll

  • 如何為產品新增User Data Source Name(DSN)
新增(機碼=字串值)如下:

    HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
     ODBC Data Sources
      <DSN>= DBMaker x.x Driver
    <DSN>
     Database=<DBName>
     Driver=< SYSTEM_DLL_PATH >/dmapi37.dll

    User DSN及System DSN的差別,在於若是註冊為User DSN的話,那麼這個DSN就只有目前登錄的User可用,下次用別的User Name登錄的話,就看不到相關設定,

    當完成上述動作後,應該可在控制台的ODBC設定中,找到<DBNAME>的設定

6.      dmconfig.ini、dmapi37.dll、dmset32.dll之關係

ODBC Driver Manager實際上只負責「資料庫名稱」(DSN)及Driver,在上述過程中,我們已經正確設定好<DBNAME>的名稱及DBMaker ODBC Driver,而這個Driver將會去找尋系統中<WINSYS>目錄(例:WinNT或Win98)下的dmconfig.ini,根據dmconfig.ini的內容,設定資料庫相關設定;注意,若用ODBC Driver Manager去作設定時,事實上是由dmset32.dll完成組態設定(上圖中,看到的ODBC DBMaker設定,便是dmset32.dll程式),你在ODBC Driver Manager所作的動作,將會同步去改寫系統下的dmconfig.ini檔案。組態檔在第2個步驟已提及,詳細的組態設定關鍵字說明可參考DBMaker 資料庫管理員參考手冊

7.      測試

利用DBMaker光碟內附的dmsql32.exe來執行連接動作,試驗看看是不是能正確連接到資料庫,但是這個程式只能測試ODBC Driver是否安裝正確,但無法測試DSN註冊是否正確,因為dmsql32.exe這個程式在未註冊DSN的情形下,仍然能找到dmconfig.ini而連接到資料庫;所以測試DSN是否正確,還是需要直接執行應用程式看看,若照上述步驟正常操作,應該能正確啟動應用程式,並連接到資料庫。

8.      後記

程式設計師應將Driver的安裝,與應用程式一併打包,再佈署到各客戶端,以節省包裝的複雜度及時間。

上述步驟,若為第一次實作包裝的使用者,建議您先手動在系統上,按照上述步驟一步一步試驗,而每段步驟,也都有一些提示,讓您可確認該步驟已設定正確無誤。若上述步驟都可正確設定完畢後,便可利用市面上的包裝軟體進行包裝,如:Install-Shield、Install-Any-Where…等;而每一種開發工具,例如:Delphi或是VB…等,有時也要一併將其他物件包裝進去(如:BDE、ADO等相關DLL),此點不可不慎;而各個包裝軟體的操作方式也不盡相同,請參照該包裝軟體的使用說明,也希望這份文件,能讓使用者更方便地使用DBMaker。

Copyright 2000 SYSCOM Computer Engineering Co. All rights reserved.