18.2.2.1 配置SQL Link驅動程序缺省設置的方法
SQL Link驅動程序缺省設置是指在BDE配置工具的Drivers頁中的參數設置,這些參數在建立新的Alias中使用。Alias是描述網絡資源的一組參數的集合。BDE應用使用Alias 聯接共享數據庫。Alias對於訪問局部數據庫並不是必要的,但要訪問SQL數據庫,卻是必不可少。
SQL Links驅動程序的缺省設置,是你建立新的Alias 的原型。盡管你在建立Alias後能定制它,但在建立新的Alias前設置相應的缺省設置要來的容易。因為這樣建立的每一個Alias將繼承這些設置。
要描述驅動程序的缺省設置,要完成以下幾項:
● 將亮條移到驅動程序的入口,驅動程序管理程序顯示所有的該驅動程序的配置參數,在參數列表表端可用滾行槓檢察各配置參數
● 如果需要編輯驅動程序的缺省配置參數,如果光標停在這格, 配置工作將自動套用缺省參數
● 當完成這些工作,選擇File|Save,修改將在應用程序下一次啟動時生效
18.2.2.2 SQL Links驅動程序的缺省設置項目的含義
1. VERSION
SQL Links驅動程序的版本號。
2. TYPE
描述當前驅動程序類型。SERVER就表示該驅動程序用於連接一個SQL服務器,FILE就表示驅動程序用於連接一個標准的基於文件服務器。
3. DLL選項
所選SQL Links的16位驅動程序的動態鏈接庫名。
4. DLL32
所選SQL Links的32位驅動程序的動態鏈接庫名。
5. DRIVER FIAGS
內部的產品描述標志。
6. TRACE MODE
描述記錄跟蹤信息的類型
7. SERVER NAME
指定目標SQL服務器名。如果指定為InterBase服務器,將包含數據庫文件的全部路徑,Servername:/Usr/gds/directoryname/databasenam.gdb
8. USER NAME
訪問SQL服務器的缺省用戶名。
9. OPENMODE
OPENMODE是SQL Links打開SQL數據庫時的讀寫模式。取值可以是READ/WRITE或READ ONLY,缺省值是READ/WRITE。把OPEN MODE設為READ ONLY,將影響用戶端的操作,但對SQL服務器沒有影響。
10. SCHEMA CACHE SIZE
描述被貯存視圖信息的SQL表個數。取值范圍是0-32, 缺省值為8。
11. LANGDRIVER
用來操作來自SQL 服務器的數據的語言驅動程序。當光標停止LANGDRIVER域時,一個滾行框出現在正文域的左側,用滾行槓可以用於你的驅動程序的可選的語言列表。如使用美國英語,該缺省值是空格。
當描述的語言驅動程序與一個服務器別名相適應,那麼你的應用程序將使用該驅動程序處理從服務器發來的數據。這包括你察看的所有表和所有查詢返回的結果表。運行在不同系統上的服務器利用字符集的轉換來決定怎樣對數據編碼。如果你操作在非英語環境,你的BDE應用程序可以使用不同於SQL服務器的字符集。如果你的平台上的字符集同SQL服務器上的不匹配,那麼在兩種不同平台間傳遞數據將引起下列問題:
● 數據在你的平台上不正確的顯示
● SQL數據庫上將記錄錯誤的字符
為防止這種情況的出現,SQL Links提供語言驅動程序,實現你的應用程序的字符集與SQL數據庫的字符集的數據轉換。這將使從SQL服務器傳來的數據在你的平台上正確顯示,或將你輸入的數據可靠地傳送到服務器上。
語言驅動程序包含有關排序和大小寫轉換的信息。無論何時,對SQL數據庫的查詢按本地數據庫的規則處理應用程序的語言驅動程序用於評測排序的字符范圍。 如果平台上的排序和大小寫轉換與SQL服務器上的不同,你的應用程序就會顯示不一致的結果。
如果SQL數據庫使用擴展字符集,請確信用於訪問SQL 服務的別名中描述正確的,SQL Links語言版本選擇的驅動程序的字符集應當與SQL服務器的相同。如果你沒有找到合適的SQL Links語言驅動,你可修改別名中的SQLQRYMODE入口,防止按局部數據庫規則處理查詢。
12. SQLPASSTHRU MODE
描述應用程序訪問SQL服務器時是否借助平台命令和傳遞式SQL。取值范圍和它們的含義列於下表:
表18.3 SQLPASSTHRU MODE設置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
設置 含 義
──────────────────────────────────────
NOT SHARED 傳遞SQL和非傳遞性SQL不共享相同的連接
SHARED AUTOCOMMIT 缺省值。傳遞SQL和非傳遞SQL將共享相同連接,傳
遞式SQL將以與非傳遞SQL相似的方式動作。 也就說
用戶的傳遞式SQL表達式將被自動提交。
SHARED NOAUTOCOMMIT 傳遞式SQL和非傳遞式SQL將共享同一個連接,但SQL
驅動程序並不自動提交SQL表達式。在這種模式下,傳
遞行為是服務器獨立的。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SHARED AUTOCOMMIT和SHARED NOAUTOCOMMIT 模式並不支持所有的傳遞式表達式。當SHARED AUTOCOMMIT或SHARED NOAUTOCOMMIT模式被設置,在傳遞式SQL中不需執行事務控制語言。使用你的BDE應用編程語言來開始,提交回送事務。當傳遞式SQL和非傳遞式SQL共享一個連接,記錄快存並不立即反映傳遞SQL操作的更新。
13. SQLQRYMODE
描述處理查詢SQL數據的方法。取值范圍含義列於下表,缺省值NULL:
表18.4 SQLQRYMODE設置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
設置 模 式 含 義
──────────────────────────────────────
NULL Server-Local 在Server-local中,查詢模式查詢首先傳遞給SQL服
務器,如果服務器不能執行查詢,查詢就在本地執
行。
SERVER Server-Only 在Server-Only查詢模式,查詢被發送給SQL 服務
器。如果服務器不能執行查詢,不執行本地查詢。
LOCAL Local-Only 在local-only模式,查詢總是本地執行。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
正常情況下,查詢SQL數據庫將在數據庫服務器端被處理。然而,在某些情況下,完全在SQL服務器端執行的查詢的結果不同於在本地執行的查詢的結果。例如,你的BDE 應用程序查詢函數執行在字符域的大小寫敏感搜索。如果,服務器不支持大小寫敏感搜索,那麼Select語句的條件如“>A”在不同地方查詢將產生不同的結果。 如果你想確信所有來自BDE應用的查詢都按照SQL服務器上的規則來執行,那麼你就應合理配置SQL Links驅動程序,阻止查詢的本地處理。使用BDE配置工具修改SQL數據庫別名,將SQL QRYMODE設置成SERVER就可做到這一點。新的SQLQRYMODE值將在應用程序下一次啟動時生效。