<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 第26章:連接器 在本章中,介紹了MySQL連接器,所謂連接器,是為客戶端程序提供與MySQL服務器連接性的驅動程序。 ### 26.1.?MySQL Connector/ODBC [26.1.1. MyODBC介紹](#)[ 26.1.2. 關于ODBC和MyODBC的一般信息](#)[ 26.1.3. 如何安裝MyODBC](#)[ 26.1.4. 在Windows平臺上從二進制版本安裝MyODBC](#)[ 26.1.5. I在Unix平臺上從二進制版本安裝MyODBC ](#)[ 26.1.6. 在Windows平臺上從源碼版本安裝MyODBC](#)[ 26.1.7. 在Unix平臺上從源碼版本安裝MyODBC ](#)[ 26.1.8. 從BitKeeper開發源碼樹安裝MyODBC](#)[ 26.1.9. MyODBC配置](#)[ 26.1.10. 與MyODBC連接相關的事宜](#)[ 26.1.11. MyODBC和Microsoft Access](#)[ 26.1.12. MyODBC和Microsoft VBA及ASP](#)[ 26.1.13. MyODBC和第三方ODBC工具](#)[ 26.1.14. MyODBC通用功能](#)[ 26.1.15. 基本的MyODBC應用步驟](#)[ 26.1.16. MyODBC API引用](#)[ 26.1.17. MyODBC數據類型](#)[ 26.1.18. MyODBC錯誤代碼](#)[ 26.1.19. MyODBC與VB:ADO、DAO和RDO](#)[ 26.1.20. MyODBC與Microsoft.NET](#)[ 26.1.21. 感謝](#) 通過MySQL Connector/ODBC(MyODBC驅動程序系列),MySQL為ODBC提供了支持。這是針對MyODBC驅動程序中Connector/ODBC產品系列的參考,它提供了對MySQL數據庫系統的ODBC 3.5x兼容訪問。介紹了安裝MyODBC和使用MyODBC的方式。此外,在本章中還介紹了能夠與MyODBC一起工作的公用程序信息,并回答了一些關于MyODBC的常見問題。 本參考適用于MyODBC 3.51。對于相應的版本,你可以找到舊的二進制版或源碼版MyODBC手冊。 這是關于MySQL ODBC驅動程序的參考手冊,而不是通用ODBC參考。關于ODBC的更多信息,請參閱[http://www.microsoft.com/data/](http://www.microsoft.com/data/)。 對于本參考的應用程序開發部分,假定用戶在C語言方面有著良好的實踐知識,對DBMS有一般了解,最后,還應熟悉MySQL。關于MySQL功能及其語法的更多信息,請參閱[http://dev.mysql.com/doc/](http://dev.mysql.com/doc/)。 如果你的問題未能在本文檔中得到解答,請發送電子郵件至[myodbc@lists.mysql.com](#)。 ### 26.1.1.?MyODBC介紹 [ 26.1.1.1. 什么是ODBC?](#)[ 26.1.1.2. 什么是Connector/ODBC?](#)[ 26.1.1.3. 什么是MyODBC 2.50?](#)[ 26.1.1.4. 什么是MyODBC 2.50?](#)[ 26.1.1.5. 從哪獲取MyODBC](#)[ 26.1.1.6. 支持的平臺](#)[26.1.1.7. MyODBC郵件列表](#)[26.1.1.8. MyODBC論壇](#)[ 26.1.1.9. 如何通報MyODBC問題或缺陷](#)[ 26.1.1.10. 如何提交MyODBC補丁](#) #### 26.1.1.1.?什么是ODBC? ODBC(開放式數據庫連接性)為客戶端程序提供了訪問眾多數據庫或數據源的一種方式。ODBC是標準化的API,允許與SQL數據庫服務器進行連接。它是根據SQL Access Group的規范開發的,它定義了一套函數調用、錯誤代碼和數據類型,可將其用于開發獨立于數據庫的應用程序。通常情況下,當需要數據庫獨立或需要同時訪問不同的數據源時,將用到ODBC。 關于ODBC的更多信息,請參閱[http://www.microsoft.com/data/](http://www.microsoft.com/data/)。 #### 26.1.1.2.?什么是Connector/ODBC? Connector/ODBC是描述MySQL ODBC驅動程序MySQL AB產品系列的名稱。它們也稱為MyODBC驅動程序。 #### 26.1.1.3.?什么是MyODBC 2.50? MyODBC 2.50是MySQL AB的32位ODBC驅動程序,它基于ODBC 2.50規范層次0(具有層次1和層次2的特性)。這是開放源碼市場最流行的ODBC驅動程序之一,很多用戶都使用它來訪問MySQL提供的功能。 #### 26.1.1.4.?什么是MyODBC 2.50? MyODBC 3.51是一種32位ODBC驅動程序,也稱為MySQL ODBC 3.51驅動程序。與已有的MyODBC 2.50驅動程序相比,該版本有所增強。它支持ODBC 3.5x規范層次1(全部核心API +層次2特性),以便能夠為訪問MySQL提供所有的ODBC功能。 #### 26.1.1.5.?從哪獲取MyODBC MySQL AB依GPL(通用公共許可)發布其所有產品。你可以從MySQL AB的網站獲取最新的MyODBC二進制版和源碼版:[http://dev.mysql.com/downloads/](http://dev.mysql.com/downloads/)。 關于MyODBC的更多信息,請訪問[http://www.mysql.com/products/myodbc/](http://www.mysql.com/products/myodbc/)。 關于許可的更多信息,請訪問[http://www.mysql.com/company/legal/licensing/](http://www.mysql.com/company/legal/licensing/)。 #### 26.1.1.6.?支持的平臺 MyODBC可用于MySQL支持的所有主要平臺,如: ·???????? Windows 95, 98, Me, NT, 2000, XP和2003 ·???????? 所有Unix操作系統 o??????? AIX o??????? Amiga o??????? BSDI o??????? DEC o??????? FreeBSD o??????? HP-UX 10, 11 o??????? Linux o??????? Mac OS X Server o??????? Mac OS X o??????? NetBSD o??????? OpenBSD o??????? OS/2 o??????? SGI Irix o??????? Solaris o??????? SunOS o??????? SCO OpenServer o??????? SCO UnixWare o??????? Tru64 Unix 對于特定平臺,如果無法下載二進制版本,可通過下載驅動程序源碼自行創建驅動程序。你也可以為MySQL貢獻二進制代碼,方式是發送郵件至[myodbc@lists.mysql.com](#),這樣其他用戶就能使用你貢獻的內容。 #### 26.1.1.7.?MyODBC郵件列表 MySQL AB通過其郵件列表為用戶社區提供幫助。對于與MyODBC有關的事宜,可使用[myodbc@lists.mysql.com](#)郵件列表,從有經驗的用戶處獲得幫助。 關于訂閱MySQL郵件列表或瀏覽列表檔案的更多信息,請訪問[http://lists.mysql.com/](http://lists.mysql.com/)。 其中,關注程度最高的是論壇MySQL連接器部分的ODBC論壇。 #### 26.1.1.8.?MyODBC論壇 通過MySQL論壇(位于[http://forums.mysql.com](http://forums.mysql.com)),可獲得有經驗用戶的支持和幫助。 #### 26.1.1.9.?如何通報MyODBC問題或缺陷 如果遇到與MyODBC有關的困難或問題,首先應使用ODBC管理器和MyODBC生成一份日志文件(請求來自ODBC ADMIN的日志時獲得的日志文件)。關于完成該步驟的方式,請參見[26.1.9.7節,“獲取ODBC跟蹤文件”](# "26.1.9.7.?Getting an ODBC Trace File")。 檢查MyODBC跟蹤文件,找出可能出錯的地方。通過在myodbc.log文件中搜索字符串“>mysql_real_query”,可確定已執行的語句。 此外,你還應嘗試從**mysql**客戶端程序或admndemo執行語句。這樣,就能幫助你確定錯誤的出處,MyODBC或MySQL。 如果你發現了不正確的事項,請將相關行(最多40行)發送給MyODBC郵件列表。請參見[1.7.1.1節,“MySQL郵件列表”](# "1.7.1.1.?The MySQL Mailing Lists")。請勿發送整個MyODBC或ODBC日志文件! 如果你無法找出錯誤之所在,最后的選擇是,以tar或zip格式創建包含MyODBC跟蹤文件、ODBC日志文件和README文件(闡明問題)的檔案。你可以將該檔案文件發送至[ftp://ftp.mysql.com/pub/mysql/upload/](#)。只有位于MySQL AB的我們才能訪問你上傳的文件,而且我們會十分謹慎地對待這類數據。 如果你創建了仍出現問題的程序,請將該程序也包含在檔案文件中。 如果程序能夠與某些其他SQL服務器一起工作,檔案中還應包含在這類其他SQL服務器下工作的ODBC日志文件。 請記住,你提供給我們的信息越多,我們更正問題的機會就越大。 #### 26.1.1.10.?如何提交MyODBC補丁 你可以通過電子郵件,就已有代碼或問題發送補丁或提出更好的解決方案:[myodbc@lists.mysql.com](#)。 ### 26.1.2.?關于ODBC和MyODBC的一般信息 [ 26.1.2.1. ODBC介紹](#)[26.1.2.2. MyODBC體系結構](#)[ 26.1.2.3. ODBC驅動管理器](#)[ 26.1.2.4. MySQL ODBC驅動程序的類型](#) #### 26.1.2.1.?ODBC介紹 開放式數據庫連接性(ODBC)是廣泛接受的用于數據庫訪問的應用程序編程接口(API)。它基于針對數據庫API的CLI(調用層接口)規范(來自X/Open和ISO/IEC),并采用了結構化查詢語言(SQL)作為其數據庫訪問語言。 在[26.1.16節,“MyODBC API引用”](# "26.1.16.?MyODBC API Reference")中,概要介紹了MyODBC支持的ODBC功能。關于ODBC的更多信息,請參閱[http://www.microsoft.com/data/](http://www.microsoft.com/data/)。 #### 26.1.2.2.?MyODBC體系結構 MyODBC體系結構建立在5個組件上,如下圖所示: ![MyODBC Architecture](https://box.kancloud.cn/2015-07-10_559fc76c9b7b3.png) ·???????? **應用程序:** 應用程序指的是通過調用ODBC API來訪問MySQL服務器上數據的程序。應用程序使用標準的ODBC調用與驅動管理器進行通信。應用程序不關心數據的存儲位置,存儲方式,甚至不關心為訪問數據而進行的系統配置方式。它僅需要知道數據源名(DSN)。 對于所有的應用程序,無論它們使用OBDC的方式是什么,很多任務是共同的。這些任務包括: o??????? 選擇MySQL服務器,并與之連接。 o??????? 提交將要執行的SQL語句。 o??????? 檢索結果(如果有的話)。 o??????? 處理錯誤。 o??????? 提交或回滾包含SQL語句的事務。 o??????? 斷開與MySQL服務器的連接。 由于大多數數據訪問工作是使用SQL完成,對于使用OBDC的應用程序來說,其主要任務是提交SQL語句,并檢索由這些語句生成的結果。 ·???????? **驅動管理器:** 驅動管理器是用于管理應用程序和驅動程序間通信的庫。它負責執行下述任務: o??????? 解析數據源名(DSN)。 o??????? 加載和卸載驅動程序。 o??????? 處理ODBC調用,或將其傳遞給驅動程序。 ·???????? **MyODBC驅動程序:** MyODBC驅動程序是用于實施ODBC API所提供功能的庫。它負責處理ODBC函數調用,將SQL請求提交給MySQL服務器,并將結果返回給應用程序。如有必要,驅動程序會更改應用程序的請求,以便該請求符合MySQL支持的語法。 ·???????? **ODBC.INI:** ODBC.INI是ODBC配置文件,其中保存了連接到服務器所需的驅動信息和數據庫信息。驅動管理器將使用它來確定加載哪個驅動程序(使用數據源名)。驅動程序將根據指定的DSN使用它來讀取連接參數。更多信息,請參見[26.1.9節,“MyODBC配置”](# "26.1.9.?MyODBC Configuration")。 ·???????? **MySQL服務器:** MySQL服務器是數據源。MySQL是: o??????? 一種數據庫管理系統(DBMS) o??????? 一種關聯數據庫管理系統(RDBMS) o??????? 開放源碼軟件 #### 26.1.2.3.?ODBC驅動管理器 ODBC驅動管理器是用于管理ODBC應用程序和驅動程序間通信的庫。其主要功能包括: ·???????? 解析數據源名(DSN)。 ·???????? 加載和卸載驅動程序。 ·???????? 處理ODBC函數調用,或將其傳遞給驅動程序。 下面給出了一些常用的驅動程序: ·???????? Microsoft Windows ODBC驅動管理器(odbc32.dll),[http://www.microsoft.com/data/](http://www.microsoft.com/data/) ·???????? unixODBC Unix驅動管理器(libodbc.so),[http://www.unixodbc.org](http://www.unixodbc.org)。 ·???????? iODBC ODBC Unix驅動管理器(libiodbc.so),[http://www.iodbc.org](http://www.iodbc.org)。 從2.1.2版開始,UnixODBC也提供MyODBC 3.51。 #### 26.1.2.4.?MySQL ODBC驅動程序的類型 MySQL AB支持兩種通過ODBC API訪問MySQL功能的開放源碼ODBC驅動程序: MyODBC (MyODBC 2.50)和MySQL ODBC 3.51驅動(MyODBC 3.51)。 注釋: 從本節起,我們將這兩類驅動程序統稱為MyODBC。但當存在差異時,我們將使用它們的本名。 ### 26.1.3.?如何安裝MyODBC MyODBC能夠工作在Windows 9x, Me, NT, 2000, XP和2003,以及大多數Unix平臺上。 MyODBC是開放源碼軟件。你可以在網站[http://dev.mysql.com/downloads/connector/odbc/](http://dev.mysql.com/downloads/connector/odbc/)上找到它的最新版本。請注意,2.50.x版采用的是LGPL許可,而3.51.x版采用的是GPL許可。 如果使用MyODBC時出現了問題,而且你的程序還能與OLEDB一起工作,應嘗試使用OLEDB驅動程序。 正常情況下,在Windows機器上僅需安裝MyODBC。僅當你擁有運行在Unix機器上的程序(如ColdFusion),而且該程序將使用ODBC來訪問數據庫時,才需安裝用于Unix的MyODBC。 如果你打算在Unix機器上安裝MyODBC,還需要1個ODBC管理器。MyODBC能夠與大多數Unix ODBC管理器一起工作。 ·???????? 要想使用ODBC應用程序(不支持MySQL的應用程序),建立從Windows平臺到Unix平臺的連接,首先必須在Windows機器上安裝MyODBC。 ·???????? 用戶和Windows機器必須具有訪問位于Unix機器上的MySQL服務器的權限。這可通過GRANT命令設置。請參見[13.5.1.3節,“GRANT和REVOKE語法”](# "13.5.1.3.?GRANT and REVOKE Syntax")。 ·???????? 必須創建ODBC DSN條目,方式如下: 1.??? 打開Windows機器上的控制面板。 2.??? 雙擊ODBC數據源32位圖標。 3.??? 點擊選項卡“用戶DSN”。 4.??? 點擊“添加”按鈕。 5.??? 在“創建新數據源”屏幕上選擇MySQL,并點擊“完成”按鈕。 6.??? 顯示MySQL驅動程序的默認配置屏幕。請參見[26.1.9.2節,“在Windows上配置MyODBC DSN”](# "26.1.9.2.?Configuring a MyODBC DSN on Windows")。 ·???????? 啟動應用程序,并使用在ODBC管理器中指定的DSN選擇ODBC驅動程序。 注意,在MySQL屏幕上還顯示了其他選項,如果遇到問題,可嘗試這些選項(如跟蹤、連接時不提示等)。 ### 26.1.4.?在Windows平臺上從二進制版本安裝MyODBC 要想在Windows平臺上安裝MyODBC,應從下述站點下載恰當的分發文件,[http://dev.mysql.com/downloads/connector/odbc/](http://dev.mysql.com/downloads/connector/odbc/),解壓該文件,并執行**MyODBC-****_VERSION_****.exe**文件。 在Windows平臺上,安裝較舊的MyODBC 2.50驅動時,可能會遇到下述錯誤: 拷貝C:\WINDOWS\SYSTEM\MFC30.DLL時出現錯誤。 ? 重啟Windows,并再次安裝(在運行任何使用ODBC的應用程序之前)。 問題在于其他程序正使用ODBC。由于Windows的設計方式,在這種情況下,你可能無法使用Microsoft的ODBC設置程序安裝新的ODBC驅動。在大多數情況下,可以通過連續按“忽略”鍵拷貝剩余的MyODBC文件,最終安裝應仍能工作。如不然,解決方案是在“安全模式”下重新啟動計算機。在重啟的過程中,在機器啟動Windows前按F8,選擇“安全模式”,安裝MyODBC,然后在正常模式下重新啟動計算機。 26.1.5.?I在Unix平臺上從二進制版本安裝MyODBC 26.1.5.1. 從RPM分發版安裝MyODBC 26.1.5.2. 從二進制Tarball分發版安裝MyODBC 26.1.5.1.?從RPM分發版安裝MyODBC 要想使用RPM分發版在Linux平臺上安裝或升級MyODBC,可簡單地下載最新MyODBC的RPM分發版,并按照下面介紹的方式操作。使用su root成為根用戶,然后安裝RPM文件。 如果是首次安裝: shell> su root shell> rpm -ivh MyODBC-3.51.01.i386-1.rpm 如果驅動程序已存在,可按照下述方式升級它: shell> su root shell> rpm -Uvh MyODBC-3.51.01.i386-1.rpm 如果存在關于MySQL客戶端庫libmysqlclient的任何依存錯誤,可使用“-nodeps”選項簡單地忽略它,然后確保MySQL客戶端共享庫位于路徑中或通過LD_LIBRARY_PATH進行了設置。 這樣,就會將驅動程序庫和相關文件分別安裝到/usr/local/lib和/usr/share/doc/MyODBC目錄下。請轉至[26.1.9.3節,“在Unix平臺上配置MyODBC DSN”](# "26.1.9.3.?Configuring a MyODBC DSN on Unix")。 要想卸載驅動程序,請首先成為根用戶,然后執行**rpm**命令: shell> su root shell> rpm -e MyODBC #### 26.1.5.2.?從二進制Tarball分發版安裝MyODBC 要想從tarball分發版(.tar.gz文件)安裝驅動程序,請下載針對你所使用操作系統的最新版驅動程序,然后按照下述步驟操作: shell> su root shell> gunzip MyODBC-3.51.01-i686-pc-linux.tar.gz shell> tar xvf MyODBC-3.51.01-i686-pc-linux.tar shell> cd MyODBC-3.51.01-i686-pc-linux 請閱讀INSTALL-BINARY文件中的安裝說明,并執行下述命令: shell> cp libmyodbc* /usr/local/lib shell> cp odbc.ini /usr/local/etc shell> export ODBCINI=/usr/local/etc/odbc.ini 然后,請跳至[26.1.9.3節,“在Unix平臺上配置MyODBC DSN”](# "26.1.9.3.?Configuring a MyODBC DSN on Unix")為MyODBC配置DSN。更多信息,請參見與發布版一起提供的INSTALL-BINARY文件。 ### 26.1.6.?在Windows平臺上從源碼版本安裝MyODBC [ 26.1.6.1. 要求](#)[ 26.1.6.2. 構建MyODBC 3.51](#)[ 26.1.6.3. 測試](#)[ 26.1.6.4. 構建MyODBC 2.50](#) #### 26.1.6.1.?要求 ·???????? MDAC, Microsoft Data Access SDK:[http://www.microsoft.com/data/](http://www.microsoft.com/data/)。 ·???????? MySQL客戶端庫以及MySQL 4.0.0或更高版本的包含文件。(最好是MySQL 4.0.16或更高版本)。應滿足上述要求,這是因為MyODBC需要用到該版本以上的庫才提供的新調用和結構。要想獲得客戶端庫和包含文件,請訪問[http://dev.mysql.com/downloads/](http://dev.mysql.com/downloads/)。 #### 26.1.6.2.?構建MyODBC 3.51 MyODBC 3.51源碼分發版包括使用**nmake**的Makefiles。在分發版中,你可以找到用于創建發布版的Makefile,以及用于創建驅動庫和DLL調試版的Makefile_debug。 要想創建驅動程序,請采取下述步驟: 1.??? 下載并將源碼展開到文件夾,然后將位置切換到該文件夾。在下述命令中,假定文件夾為myodbc3-src: 2.?????????? C:\> cd myodbc3-src 3.??? 編輯Makefile,為MySQL客戶端庫和頭文件指定正確的路徑。然后使用下述命令創建并安裝發布版。 4.?????????? C:\> nmake -f Makefile 5.?????????? C:\> nmake -f Makefile install **nmake -f Makefile**用于創建驅動程序的發布版并將二進制碼放入名為Release的子目錄下。 **nmake -f Makefile install**用于將驅動程序DLL和庫(myodbc3.dll, myodbc3.lib)安裝(拷貝)到系統目錄下。 6.??? 要想創建調試版,請使用Makefile_Debug而不是Makefile,如下所示: 7.?????????? C:\> nmake -f Makefile_debug 8.?????????? C:\> nmake -f Makefile_debug install 9.??? 使用下述命令,可清除并重新創建驅動程序: 10.?????? C:\> nmake -f Makefile clean 11.?????? C:\> nmake -f Makefile install 注釋: ·???????? 確保在Makefiles中指定了正確的MySQL客戶端庫和頭文件路徑(設置MYSQL_LIB_PATH和MYSQL_INCLUDE_PATH變量)。默認的頭文件路徑是C:\mysql\include。對于發布版DLL,默認的庫路徑是C:\mysql\lib\opt,對于調試版,默認路徑是C:\mysql\lib\debug。 ·???????? 關于**nmake**的完整用法,請參見[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vcce4/html/evgrfRunningNMAKE.asp](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vcce4/html/evgrfRunningNMAKE.asp)。 ·???????? 如果你正在使用BitKeeper樹來進行編譯,所有的針對Windows的Makefiles均將被命名為Win_Makefile*。 #### 26.1.6.3.?測試 將驅動程序庫拷貝/安裝到系統目錄后,可使用示例子目錄下提供的示例測試這些庫是否已正確創建: C:\> cd samples C:\> nmake -f Makefile all #### 26.1.6.4.?構建MyODBC 2.50 MyODBC 2.50源碼分發版包含VC工作空間文件。通過在Microsoft Visual Studio 6.0中加載這些文件(.dsp和.dsw),可使用它們直接創建驅動程序。 ### 26.1.7.?在Unix平臺上從源碼版本安裝MyODBC [ 26.1.7.1. 要求](#)[ 26.1.7.2. 典型配置選項****](#)[ 26.1.7.3. 線程安全客戶端](#)[ 26.1.7.4. 共享或靜態選項](#)[ 26.1.7.5. 啟用調試信息](#)[ 26.1.7.6. 允許文檔功能](#)[ 26.1.7.7. 創建和編譯](#)[ 26.1.7.8. 創建共享庫](#)[ 26.1.7.9. 安裝驅動庫](#)[26.1.7.10. 在Unix平臺上測試MyODBC](#)[ 26.1.7.11. Mac OS X注意事項](#)[ 26.1.7.12. HP-UX注意事項](#)[ 26.1.7.13. AIX注意事項](#) #### 26.1.7.1.?要求 ·???????? MySQL客戶端庫以及MySQL 4.0.0或更高版本的包含文件。(最好是MySQL 4.0.16或更高版本)。應滿足上述要求,這是因為MyODBC需要用到該版本以上的庫才提供的新調用和結構。要想獲得客戶端庫和包含文件,請訪問[http://dev.mysql.com/downloads/](http://dev.mysql.com/downloads/)。 ·???????? 必須使用“--enable-thread-safe-client”選項配置MySQL庫。Libmysqlclient是作為共享庫安裝的。 ·???????? 必須安裝下述Unix ODBC驅動管理器之一: o??????? iodbc 3.0或更高版本([http://www.iodbc.org](http://www.iodbc.org)) o??????? unixodbc Alpha 3或更高版本([http://www.unixodbc.org](http://www.unixodbc.org)) ·???????? 如果使用了未編譯在MySQL客戶端庫中的字符集(默認字符集為: latin1 big5 czech euc_kr gb2312 gbk sjis tis620 ujis),就需要從字符集目錄下將mysql字符定義安裝到_SHAREDIR_中(默認情況下位于/usr/local/mysql/share/mysql/charsets)。如果在相同機器上安裝了MySQL,它們應位于恰當位置。 一旦完成了所有所需文件的安裝,將源碼文件解包到單獨目錄下,并按照下面給出的說明進行操作。 #### 26.1.7.2.?典型配置選項**** 使用**configure**腳本,能夠對你所創建MyODBC的配置方式進行多種控制。典型情況下,可在“**configure**”命令行使用選項完成該配置操作。也可以使用環境變量來影響配置。要想了解“**configure**”命令支持的選項列表和環境變量,可運行下述命令: shell> ./configure --help 下面介紹了一些常用的“**configure**”選項。 1.??? 要想編譯MyODBC,須使用“--with-mysql-path=_DIR_”選項來提供MySQL客戶端庫文件和包含文件路徑,其中,“_DIR_”是MySQL的安裝目錄。 可通過運行“_DIR_/bin/mysql_config”來確定MySQL編譯選項。 2.??? 為ODBC驅動管理器(iodbc或unixobc)提供標準的頭文件和庫文件路徑。 ·???????? 如果你正在使用iodbc,而且iodbc未安裝在其默認位置(/usr/local),可能需要使用“--with-iodbc=_DIR_”選項,其中,“_DIR_”是iodbc的安裝目錄。 如果iodbc頭文件未位于_DIR_/include目錄下,可使用“--with-iodbc-includes=_INCDIR_”選項指定它們的位置。 上面所述也適用于庫文件。如果庫文件未位于_DIR_/lib目錄下,可使用“--with-iodbc-libs=_LIBDIR_”選項。 ·???????? 如果你正在使用unixODBC,可使用“--with-unixODBC=_DIR_”選項(區分大小寫),讓**configure**尋找unixODBC而不是默認的iodbc,其中,“_DIR_”是unixODBC的安裝目錄。 如果unixODBC頭文件和庫文件未位于目錄_DIR_/include和_DIR_/lib下,可使用“--with-unixODBC-includes=_INCDIR_”和“--with-unixODBC-libs=_LIBDIR_”選項。 3.??? 或許你也希望指定不同于“/usr/local”的安裝前綴。例如,要想將MyODBC驅動安裝到“/usr/local/odbc/lib”目錄下,可使用“--prefix=/usr/local/odbc”選項。 最終的配置命令應與下面給出的相似: shell> ./configure --prefix=/usr/local \ ?????? ??--with-iodbc=/usr/local \ ???????? --with-mysql-path=/usr/local/mysql #### 26.1.7.3.?線程安全客戶端 為了將驅動程序與MySQL線程安全客戶端庫libmysqlclient_r.so或libmysqlclient_r.a鏈接起來,必須指定下述**configure**選項: --enable-thread-safe 也可以使用下述選項禁止它: --disable-thread-safe 使用該選項,能夠通過mysql線程安全客戶端庫libmysqlclient_r.so(擴展名與操作系統有關)的鏈接,創建驅動程序線程安全庫libmyodbc3_r.so。 在配置線程安全選項時,如果出現了配置錯誤,應檢查config.log,檢查錯誤是否是因系統中缺少線程庫而導致的,如果是,使用LIBS選項提供一個,即 LIBS="-lpthread" ./configure .. #### 26.1.7.4.?共享或靜態選項 可以使用下述選項啟用或禁止共享和靜態選項: --enable-shared[=yes/no] --disable-shared --enable-static[=yes/no] --disable-static #### 26.1.7.5.?啟用調試信息 默認情況下,所有的二進制分發版均會被創建為非調試版(采用“--without-debug”進行配置)。 要想啟用調試信息,請使用源碼分發版創建驅動程序,并在運行“**configure**”時使用“--with-debug”選項。 #### 26.1.7.6.?允許文檔功能 該選項僅能用于BK克隆樹,而不是一般的源碼分發版。 默認情況下,驅動程序是使用“--without-docs”創建的。如果希望在正常創建過程中觀察文檔信息,可使用下述選項進行配置: --with-docs #### 26.1.7.7.?創建和編譯 要想創建驅動程序庫,僅需執行“**make**”,該命令能完成所有事項。 shell> make 如果出現錯誤,更正后,繼續執行創建進程。如果無法創建,請發送詳細的電子郵件至[myodbc@lists.mysql.com](#),以獲取進一步幫助。 #### 26.1.7.8.?創建共享庫 在大多數平臺上,默認情況下,MySQL不會創建或支持“.so”(共享)客戶端庫,這是因為,創建共享庫在過去造成過很多問題。 在這種情況下,你可以下載MySQL分發版,并使用以下選項進行配置: --without-server --enable-shared 要想創建共享驅動程序庫,必須為“**configure**”指定“--enable-shared”選項。默認情況下,“**configure**”不啟用該選項。 如果使用“--disable-shared”選項進行了配置操作,可使用下述命令,從靜態庫創建“.so”文件。 shell> cd MyODBC-3.51.01 shell> make shell> cd driver shell> CC=/usr/bin/gcc \ $CC -bundle -flat_namespace -undefined error \ -o .libs/libmyodbc3-3.51.01.so \ catalog.o connect.o cursor.o dll.o error.o execute.o \ handle.o info.o misc.o myodbc3.o options.o prepare.o \ results.o transact.o utility.o \ -L/usr/local/mysql/lib/mysql/ \ -L/usr/local/iodbc/lib/ \ -lz -lc -lmysqlclient -liodbcinst 如果你正在使用unixODBC而不是iODBC,務必將“-liodbcinst”更改為“-lodbcinst”,并相應地配置庫路徑。 這樣,就創建了libmyodbc3-3.51.01.so文件,并將其放在“.libs”目錄下。將該文件拷貝到MyODBC庫目錄下(/usr/local/lib,或使用“--prefix”提供的安裝目錄下的“lib”目錄)。 shell> cd .libs shell> cp libmyodbc3-3.51.01.so /usr/local/lib shell> cd /usr/local/lib shell> ln -s libmyodbc3-3.51.01.so libmyodbc3.so 要想創建線程安全驅動程序庫: shell> CC=/usr/bin/gcc \ $CC -bundle -flat_namespace -undefined error -o .libs/libmyodbc3_r-3.51.01.so catalog.o connect.o cursor.o dll.o error.o execute.o handle.o info.o misc.o myodbc3.o options.o prepare.o results.o transact.o utility.o -L/usr/local/mysql/lib/mysql/ -L/usr/local/iodbc/lib/ -lz -lc -lmysqlclient_r -liodbcinst #### 26.1.7.9.?安裝驅動庫 要想安裝驅動程序庫,請執行下述命令: shell> make install 該命令將安裝下述庫集合之一: 對于MyODBC 3.51: ·???????? libmyodbc3.so ·???????? libmyodbc3-3.51.01.so,其中,3.51.01是驅動程序的版本 ·???????? libmyodbc3.a 對于線程安全MyODBC 3.51: ·???????? libmyodbc3_r.so ·???????? libmyodbc3-3_r.51.01.so ·???????? libmyodbc3_r.a 對于MyODBC 2.5.0: ·???????? libmyodbc.so ·???????? libmyodbc-2.50.39.so,其中,2.50.39是驅動程序的版本 ·???????? libmyodbc.a 關于創建進程的更多信息,請參閱與源碼分發版一起提供的INSTALL文件。注意,如果你試圖使用Sun的“make”,可能會以錯誤結束。從另一方面來說,GNU **gmake**在所有平臺上均能良好工作。 #### 26.1.7.10.?在Unix平臺上測試MyODBC 要想與你創建的庫一起運行分發版中提供的示例,可執行: shell> make test 首先,務必在odbc.ini中配置DSN 'myodbc3',并將環境變量ODBCINI指向正確的odbc.ini文件;同時MySQL服務器應處于運行狀態。在驅動分發版中,可找到一個示例用odbc.ini文件。 你甚至可以更改示例/運行示例腳本,以命令行參數的形式將所需的DSN、UID和PASSWORD值傳遞給示例。 #### 26.1.7.11.?Mac OS X注意事項 要想在Mac OS X (Darwin)環境下創建驅動程序,可使用下述**configure**示例: shell> ./configure --prefix=/usr/local ?????????? --with-unixODBC=/usr/local ?????????? --with-mysql-path=/usr/local/mysql ?????????? --disable-shared ?????????? --enable-gui=no ?????????? --host=powerpc-apple 該命令假定unixODBC和MySQL均安裝在默認位置。如不然,請進行相應配置。 在 Mac OS X環境下,“--enable-shared”選項將默認創建“.dylib”文件。你也可以采用下述方式創建“.so”文件: shell> make shell> cd driver shell> CC=/usr/bin/gcc \ ???? $CC -bundle -flat_namespace -undefined error ???????? -o .libs/libmyodbc3-3.51.01.so *.o ???????? -L/usr/local/mysql/lib/ ???????? -L/usr/local/iodbc/lib ???????? -liodbcinst -lmysqlclient -lz -lc 要想創建線程安全驅動程序庫: shell> CC=/usr/bin/gcc \ ???? $CC -bundle -flat_namespace -undefined error ???? -o .libs/libmyodbc3-3.51.01.so *.o ???? -L/usr/local/mysql/lib/ ???? -L/usr/local/iodbc/lib ???? -liodbcinst -lmysqlclienti_r -lz -lc -lpthread 如果你正在使用unixODBC而不是iODBC,務必將“-liodbcinst”更改為“-lodbcinst”,并相應地配置庫路徑。 在Apple的GCC版本中,**cc**和**gcc**實際上均是**gcc3**的符號鏈接。 將該庫拷貝到$prefix/lib目錄下,并將symlink拷貝到libmyodbc3.so。 可以使用下述命令交叉檢驗輸出的共享庫屬性: shell> otool -LD .libs/libmyodbc3-3.51.01.so #### 26.1.7.12.?HP-UX注意事項 要想在HP-UX 10.x或11.x環境下創建驅動程序,可使用下述**configure**示例: 如果使用**cc**: shell> CC="cc" \ ???? CFLAGS="+z" \ ???? LDFLAGS="-Wl,+b:-Wl,+s" \ ???? ./configure --prefix=/usr/local ?????????? --with-unixodbc=/usr/local ?????????? --with-mysql-path=/usr/local/mysql/lib/mysql ?????????? --enable-shared ?????????? --enable-thread-safe 如果使用**g**cc****: shell> CC="gcc" \ ???? LDFLAGS="-Wl,+b:-Wl,+s" \ ???? ./configure --prefix=/usr/local ?????????? --with-unixodbc=/usr/local ?????????? --with-mysql-path=/usr/local/mysql ?????????? --enable-shared ?????????? --enable-thread-safe 一旦創建了驅動程序,使用“**chatr .libs/libmyodbc3.sl**”交叉檢查其屬性,查看是否需要使用SHLIB_PATH環境變量的MySQL客戶端庫。對于靜態版,忽略所有的共享庫選項,并使用“--disable-shared”選項運行“**configure**”。 #### 26.1.7.13.?AIX注意事項 要想在AIX環境下創建驅動程序,可使用下述**configure**示例: shell> ./configure --prefix=/usr/local ?????????? --with-unixodbc=/usr/local ?????????? --with-mysql-path=/usr/local/mysql ?????????? --disable-shared ?????????? --enable-thread-safe **注釋:** 關于在不同平臺上創建和設置靜態和共享庫方式的更多信息,請參見[跨平臺使用靜態和共享庫](http://www.fortran-2000.com/ArnaudRecipes/sharedlib.html)。 ### 26.1.8.?從BitKeeper開發源碼樹安裝MyODBC 注釋: 如果你對協助我們測試新的代碼感興趣,應閱讀本節的內容。 要想獲得我方的最新開發源碼樹,請: 1.??? 參見[2.8.3節,“從開發源碼樹安裝”](# "2.8.3.?Installing from the Development Source Tree"),關于如何下載和安裝BitKeeper的說明。 2.??? 安裝完BitKeeper后,首先進入打算在其中工作的目錄,然后,如果打算克隆MyODBC 3.51分支,請使用該命令: 3.?????????? shell> bk clone bk://mysql.bkbits.net/myodbc3 myodbc-3.51 在前面的示例中,源碼樹是在myodbc-3.51/中設置的,或在當前目錄的myodbc3/子目錄下設置的(默認)。如果你位于防火墻后,而且僅能啟動HTTP連接,也可以通過HTTP使用BitKeeper。如果要求使用代理服務器,可簡單地設置環境變量http_proxy,使之指向代理服務器: shell> export http_proxy="http://your.proxy.server:8080/" 執行克隆操作時,用http://替換bk://。例如: shell> bk clone http://mysql.bkbits.net/myodbc3 myodbc-3.51 首次下載源碼樹時需要一段時間,具體情況取決于連接速度,請耐心等候。 4.??? 要想運行下一組命令,需要GNU autoconf 2.52(或更新版本),automake 1.4,libtool 1.4,以及m4。 5.?????????? shell> cd myodbc-3.51 6.?????????? shell> bk -r edit 7.?????????? shell> aclocal; autoheader; autoconf;? automake; 8.?????????? shell> ./configure? # Add your favorite options here 9.?????????? shell> make 關于如何創建的更多信息,請參閱位于相同目錄下的INSTALL文件。在Windows平臺下,創建驅動程序時,請使用Windows Makefiles WIN-Makefile和WIN-Makefile_debug,更多信息,請參見[26.1.6節,“在Windows平臺上從源碼版本安裝MyODBC”](# "26.1.6.?Installing MyODBC from a Source Distribution on Windows")。 10.完成創建后,運行**make install**,將MyODBC 3.51驅動程序安裝到你的系統上。 11.如果進入了**make**階段,但并未編譯分發版本,請將其通報給[myodbc@lists.mysql.com](#)。 12.啟動了**bk clone**操作獲得源碼樹后,應定期運行**bk pull**進行更新。 13.可以使用“**bk sccstool**”檢查樹的變更史。如果你發現了有趣的差異,并對代碼存在一問,請立刻發送電子郵件至[myodbc@lists.mysql.com](#)。 此外,如果你認為有更好的主意,請發送電子郵件至相同的地址并附上補丁。更改了源碼后,使用“**bk diffs**”可生成補丁。如果你沒有時間就你的觀點編寫代碼,可發送描述性信息。 14.BitKeeper具有一個可通過**bk helptool**訪問的幫助工具。 通過瀏覽[http://mysql.bkbits.net:8080/myodbc3](http://mysql.bkbits.net:8080/myodbc3),也能在線瀏覽變化集、注釋和源代碼。 ### 26.1.9.?MyODBC配置 [ 26.1.9.1. 什么是數據源名?](#)[ 26.1.9.2. 在Windows上配置MyODBC DSN](#)[ 26.1.9.3. 在Unix平臺上配置MyODBC DSN](#)[ 26.1.9.4. 連接參數](#)[ 26.1.9.5. 沒有預定義DSN下的連接](#)[ 26.1.9.6. 建立從系統A到系統B的遠程連接](#)[ 26.1.9.7. 獲取ODBC跟蹤文件](#)[ 26.1.9.8. 用MyODBC測試的應用程序](#)[ 26.1.9.9. 已知的能與MyODBC一起工作的程序](#) 本節介紹了配置MyODBC的方法,包括DSN創建,以及驅動程序在連接字符串中作為輸入參數的不同參數。此外,還介紹了創建ODBC跟蹤文件的方法。 #### 26.1.9.1.?什么是數據源名? “數據源”是提供數據的地點。數據源必須有穩定的標識符,即數據源名。使用數據源名,MySQL可訪問初始化信息。通過初始化信息,MySQL能夠了解去哪里訪問數據庫,以及在開始訪問時使用什么設置。 事實上,數據源就是數據的路徑。在不同的情況下,它可能有著不同的內容,但是在典型情況下,它指明了正在運行的MySQL服務器(例如,通過網絡地址或服務器名),連接時該服務器的默認數據庫,以及必要的連接信息(如端口)。MySQL驅動程序(以及Windows系統上的ODBC驅動管理器)將使用數據源進行連接。對于該目的,名為Microsoft ODBC數據源管理器的管理工具可能十分有用。 有兩處可能保存初始化信息的位置: Windows注冊表(Windows系統),或DSN文件(任何系統)。 如果信息位于Windows注冊表中,它稱為“機器數據源”。它可以是“用戶數據源”,在這種情況下,只有一位用戶能看到它。它也可以是“系統數據源”,在這種情況下,計算機上的所有用戶均能訪問它,如果用戶是通過Microsoft Windows NT服務連接在一起的話,與該計算機相連的所有用戶均能訪問它。運行ODBC數據管理程序時,可以選擇是否使用“用戶”或“系統”,它們位于不同的選項卡上。 如果信息位于DSN文件中,它稱為“文件數據源”。這是一種文本文件。其優點在于: (a)它適合于任何類型的計算機,而不僅僅是使用Windows操作系統的計算機;(b)其內容的拷貝或傳輸相對容易。 #### 26.1.9.2.?在Windows上配置MyODBC DSN 要想在Windows平臺上添加和配置新的MyODBC數據源,請使用ODBC數據源管理器。ODBC管理器能夠更新數據源連接信息。添加了數據源時,ODBC管理器能夠更新注冊信息。 要想從控制面板打開ODBC管理器: 1.??? 點擊“開始”,將指針指向“設置”,然后點擊“控制面板”。 2.??? 在運行Microsoft Windows 2000或更新版本的計算機上,雙擊“管理工具”,然后雙擊“數據源”(ODBC)。在運行舊版本Windows的計算機上,雙擊32位ODBC或ODBC。 ![ODBC Data Sources Icon](https://box.kancloud.cn/2015-07-10_559fc76cb68a3.png) 打開ODBC數據源管理器對話框,如下圖所示: ![ODBC Data Source Administrator Dialog](https://box.kancloud.cn/2015-07-10_559fc76cc3847.png) 點擊“幫助”以了解ODBC數據源管理器對話框各選項卡的詳細信息。 要想在Windows平臺上添加數據源: 1.??? 打開ODBC數據源管理器。 2.??? 在ODBC數據源管理器對話框中,點擊“添加”。打開“創建新數據源”對話框。 3.??? 選擇MySQL ODBC 3.51驅動程序,然后點擊“完成”。打開“MySQL ODBC 3.51驅動程序-DSN配置”對話框,如下圖所示: ![MySQL ODBC DSN Configuration Dialog](https://box.kancloud.cn/2015-07-10_559fc76cf1dab.png) 4.??? 在“數據源名”框中,輸入打算訪問的數據源的名稱。它可以是你選擇的任何有效名稱。 5.??? 在“描述”框中,輸入DSn所需的描述信息。 6.??? 在“主機”或“服務器名”(或IP)框中,輸入準備訪問的MySQL服務器主機的名稱。默認情況下為localhost(本地主機)。 7.??? 在“數據庫名”框中,輸入準備用作默認數據庫的MySQL數據庫名稱。 8.??? 在“用戶”框中,輸入你的MySQL用戶名(數據庫用戶ID)。 9.??? 在“密碼”框中輸入密碼。 10.在“端口”框中,如果端口不是默認端口,輸入端口號。 11.在“SQL命令”框中,可輸入建立連接后自動執行的SQL語句。 最后,對話框與下圖顯示的類似: ![Filled-In MySQL ODBC DSN Configuration Dialog](https://box.kancloud.cn/2015-07-10_559fc76d09360.png) 點擊“OK”添加該數據源。 **注釋: ** 點擊“OK”后,將打開“數據源”對話框,ODBC管理器將更新注冊信息。連接到該數據源時,你所輸入的用戶名和連接字符串將成為該數據源的默認連接值。 你也可以使用“測試數據源”按鈕,測試你的設置是否適合于連接到服務器。該特性僅對MyODBC 3.51驅動程序有效。成功完成測試后,將顯示下述窗口: ![MyODBC Successful Connection Message](https://box.kancloud.cn/2015-07-10_559fc76d1c575.png) 如果測試失敗,將顯示錯誤消息。 ![MyODBC Failed Connection Message](https://box.kancloud.cn/2015-07-10_559fc76d2b88d.png) DNS配置對話框也有一個“選項”按鈕。如果選擇了它,將打開下述選項對話框,顯示控制驅動程序的行為。關于這些選項的含義,請參見[26.1.9.4節,“連接參數”](# "26.1.9.4.?Connection Parameters")。 ![MyODBC Options Dialog](https://box.kancloud.cn/2015-07-10_559fc76d35fa8.png) 注釋: 在“驅動程序跟蹤”選項下列出的選項已被禁止(灰色),除非你使用的是驅動DLL的調試版本。 要想在Windows平臺上更改數據源: 1.??? 打開ODBC數據源管理器。點擊恰當的選項卡“DSN”。 2.??? 選擇打算更改的MySQL數據源,然后點擊“配置”。打開“MySQL ODBC 3.51驅動程序-DSN配置”對話框。 3.??? 更改適用的數據源字段,然后點擊“OK”。 更改完該對話框中的信息后,ODBC管理器將更新注冊信息。 #### 26.1.9.3.?在Unix平臺上配置MyODBC DSN 在Unix平臺上,可以直接在odbc.ini文件中配置DSN條目。這里給出了1個典型的odbc.ini文件,在該文件中,分別將myodbc和myodbc3配置為MyODBC 2.50和MyODBC 3.51的DSN名稱: ; ;? odbc.ini對MyODBC和MyODBC 3.51驅動程序的配置 ; [ODBC Data Sources] myodbc = MyODBC 2.50 Driver DSN myodbc3 = MyODBC 3.51 Driver DSN [myodbc] Driver = /usr/local/lib/libmyodbc.so Description = MyODBC 2.50 Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET = [myodbc3] Driver = /usr/local/lib/libmyodbc3.so Description = MyODBC 3.51 Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET = [Default] Driver = /usr/local/lib/libmyodbc3.so Description = MyODBC 3.51 Driver DSN SERVER = localhost PORT = USER = root Password = Database = test OPTION = 3 SOCKET = 關于可提供連接參數的清單,請參見[26.1.9.4節,“連接參數”](# "26.1.9.4.?Connection Parameters")。 注釋: 如果你正在使用unixODBC,可使用下述工具設置DSN: ·???????? ODBCConfig GUI tool([HOWTO: ODBCConfig](http://www.unixodbc.org/config.html)) ·???????? odbcinst 在某些情況下使用unixODBC,可能會出現下述錯誤: Data source name not found and no default driver specified(數據源名不存在,未指定默認驅動程序) 如果出現該情況,請確認ODBCINI和ODBCSYSINI環境變量指向正確的odbc.ini文件。例如,如果你的odbc.ini文件位于目錄“/usr/local/etc”下,可將環境變量設為: export ODBCINI=/usr/local/etc/odbc.ini export ODBCSYSINI=/usr/local/etc #### 26.1.9.4.?連接參數 你可以在ODBC.INI文件的[Data Source Name](數據源名)部分、或通過SQLDriverConnect() call的InConnectionString參量為MyODBC指定下述參數。 <table border="1" cellpadding="0" id="table1"><tr><td> <p><b>參數</b></p></td> <td> <p><b>默認值</b></p></td> <td> <p><b>注釋</b></p></td> </tr><tr><td> <p> <span>user</span></p></td> <td> <p><span>ODBC (on Windows)</span></p></td> <td> <p>用于鏈接至MySQL的用戶名。</p></td> </tr><tr><td> <p> <span>server</span></p></td> <td> <p> <span>localhost</span></p></td> <td> <p>MySQL服務器的主機名。</p></td> </tr><tr><td> <p> <span>database</span></p></td> <td> <p><span>?</span></p></td> <td> <p>默認數據庫。</p></td> </tr><tr><td> <p> <span>option</span></p></td> <td> <p><span>0</span></p></td> <td> <p>指定MyODBC工作方式的選項。參見下面。</p></td> </tr><tr><td> <p> <span>port</span></p></td> <td> <p><span>3306</span></p></td> <td> <p>如果服務器不是本地主機將要使用的TCP/IP端口。</p></td> </tr><tr><td> <p> <span>stmt</span></p></td> <td> <p><span>?</span></p></td> <td> <p>連接至MySQL時將要執行的語句。</p></td> </tr><tr><td> <p> <span>password</span></p></td> <td> <p><span>?</span></p></td> <td> <p>服務器上用戶賬戶的密碼。</p></td> </tr><tr><td> <p> <span>socket</span></p></td> <td> <p><span>?</span></p></td> <td> <p> 當服務器是本地主機是將要連接的Unix套接字文件或Windows命名管道。</p></td> </tr></table> 選項參量用于通知MyODBC:客戶端不是100% ODBC兼容的。在Windows平臺下,正常情況下,應通過切換連接屏幕上的復選框選擇選項,但也能在選項參量中選擇它們。下述選項是按照它們在MyODBC連接屏幕上顯示的順序排列的: <table border="1" cellpadding="0" id="table2"><tr><td> <p><b>值</b></p></td> <td> <p><b>描述</b></p></td> </tr><tr><td> <p><span>1</span></p></td> <td> <p>客戶端無法處理,MyODBC返回列的實際寬度。</p></td> </tr><tr><td> <p><span>2</span></p></td> <td> <p> 客戶端無法處理,MyODBC返回受影響行的真值。如果設置了該標志,MySQL將返回“發現的行”取而代之。MySQL的版本必須是3.21.14或更高版本,該功能才能生效。</p></td> </tr><tr><td> <p><span>4</span></p></td> <td> <p>在<span>c:\myodbc.log中生成調試日志。它與將MYSQL_DEBUG=d:t:O,c::\myodbc.log放到AUTOEXEC.BAT中的效果相同</span>(在Unix平臺下,該文件是<span>/tmp/myodbc.log</span>)。</p></td> </tr><tr><td> <p><span>8</span></p></td> <td> <p>不為結果和參數設置任何信息報限制。</p></td> </tr><tr><td> <p><span>16</span></p></td> <td> <p>即使驅動程序可能會給出提示,對出現的問題不予提示。</p></td> </tr><tr><td> <p><span>32</span></p></td> <td> <p>允許或禁止動態光標支持。(在MyODBC 2.50中不允許)。</p></td> </tr><tr><td> <p><span>64</span></p></td> <td> <p>在<span>db_name.tbl_name.col_name中忽略數據庫名的使用。</span></p></td> </tr><tr><td> <p><span>128</span></p></td> <td> <p>強制使用ODBC管理器光標(實驗性)。</p></td> </tr><tr><td> <p><span>256</span></p></td> <td> <p>禁止使用擴展取數據(實驗性)。</p></td> </tr><tr><td> <p><span>512</span></p></td> <td> <p>將<span>CHAR列填充為全列寬。</span></p></td> </tr><tr><td> <p><span>1024</span></p></td> <td> <p><span> SQLDescribeCol()</span>返回完全合格的列名。</p></td> </tr><tr><td> <p><span>2048</span></p></td> <td> <p>使用壓縮客戶端/服務器協議。</p></td> </tr><tr><td> <p><span>4096</span></p></td> <td> <p> 通知服務器忽略函數名之后和“(”之前的空格(PowerBuilder要求這樣)。這會使所有的函數名成為關鍵字。</p></td> </tr><tr><td> <p><span>8192</span></p></td> <td> <p>用命名管道鏈接至運行在NT環境下的<strong><span>mysqld</span></strong>服務器。</p></td> </tr><tr><td> <p><span>16384</span></p></td> <td> <p>將<span>LONGLONG列更改為INT列(某些應用程序不能處理LONGLONG列)</span>。</p></td> </tr><tr><td> <p><span>32768</span></p></td> <td> <p>從<span>SQLTables返回作為Table_qualifier</span>和<span>Table_owner的用戶</span>(實驗性)。</p></td> </tr><tr><td> <p><span>65536</span></p></td> <td> <p>從<span>my.cnf的[client]</span>和<span>[odbc]組讀取參數。</span></p></td> </tr><tr><td> <p><span>131072</span></p></td> <td> <p>增加一些額外檢查(不應需要之,但<span>…</span>)。</p></td> </tr><tr><td> <p><span>262144</span></p></td> <td> <p>禁止事務。</p></td> </tr><tr><td> <p><span>524288</span></p></td> <td> <p>允許將查詢記錄到<span>c:\myodbc.sql</span>(<span>/tmp/myodbc.sql</span>)文件。(僅在調試模式下才能啟用)。</p></td> </tr><tr><td> <p><span>1048576</span></p></td> <td> <p>不要驅動中的結果進行緩沖處理,而應從服務器讀取“<span>mysql_use_result()</span>”。僅對正向光標才能起作用。當你不希望緩沖處理整個結果集時,對于大表處理,該選項十分重要。</p></td> </tr><tr><td> <p><span>2097152</span></p></td> <td> <p> 強制使用正向光標類型。在應用程序設置了默認靜態/動態光標類型的情況下,如果希望驅動程序使用非緩沖結果集,那么該選項能夠保證正向光標的行為。</p></td> </tr></table> 要想選擇多個選項,可將它們的值加在一起。例如,將選項設置為12(4+8),就能獲得調試功能,但沒有信息包限制。 默認的myodbc3.dll是為優化性能而編譯的。如果希望調試MyODBC 3.51(例如,啟用跟蹤功能),應使用myodbc3d.dll。要想安裝該文件,請拷貝myodbc3d.dll,使之覆蓋已安裝的myodbc3.dll文件。一旦完成了調試操作,務必恢復至驅動DLL的發布版本,這是因為調試版本可能會導致性能問題。注意,在MyODBC 3.51.07至3.51.11中未包含myodbc3d.dll。如果你正在使用這些版本中的一個,應從之前的版本(例如3.51.06)拷貝該DLL文件。 對于MyODBC 2.50,采用了myodbc.dll和myodbcd.dll取而代之。 在下面的表各中,給出了針對各種配置的推薦選項值: <table border="1" cellpadding="0" id="table3"><tr><td> <p><b>配置</b></p></td> <td> <p><b>選項值</b></p></td> </tr><tr><td> <p>Microsoft Access</p></td> <td> <p><span>3</span></p></td> </tr><tr><td> <p>Microsoft Visual Basic</p></td> <td> <p><span>3</span></p></td> </tr><tr><td> <p>具有很多行的大表</p></td> <td> <p><span>2049</span></p></td> </tr><tr><td> <p>驅動跟蹤生成(調試模式)</p></td> <td> <p><span>4</span></p></td> </tr><tr><td> <p>查詢日志生成(調試模式)</p></td> <td> <p><span>524288</span></p></td> </tr><tr><td> <p>生成驅動跟蹤和查詢日志(調試模式)</p></td> <td> <p><span>524292</span></p></td> </tr><tr><td> <p>具有非緩沖結果的大表</p></td> <td> <p><span>3145731</span></p></td> </tr></table> #### 26.1.9.5.?沒有預定義DSN下的連接 是。通過指定DRIVER名稱字段,可使用SQLDriverConnect連接到MySQL服務器。下面給出了使用DSN-Less連接的MyODBC連接字符串: **對于MyODBC 2.50:** ConnectionString = "DRIVER={MySQL};\ ????????????????? SERVER=localhost;\ ????????????????? DATABASE=test;\ ????????????????? USER=venu;\ ????????????????? PASSWORD=venu;\ ????????????????? OPTION=3;" **對于MyODBC 3.51:** ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};\ ????????????????? SERVER=localhost;\ ????????????????? DATABASE=test;\ ????????????????? USER=venu;\ ????????????????? PASSWORD=venu;\ ??????????? ??????OPTION=3;" 如果你使用的編程語言會將后跟空格的反斜杠轉換為空格,最好將連接字符串指定為單個長字符串,或使用不會在其中添加空格的多個字符串串接。例如: ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" ????????????????? "SERVER=localhost;" ????????????????? "DATABASE=test;" ???????????? ?????"USER=venu;" ?????????? ???????"PASSWORD=venu;" ????????????????? "OPTION=3;" 關于可提供連接參數的清單,請參見[26.1.9.4節,“連接參數”](# "26.1.9.4.?Connection Parameters")。 #### 26.1.9.6.?建立從系統A到系統B的遠程連接 如果你打算使用myuser和mypassword作為用戶名和密碼從系統B連接到系統A,可參考下面給出的簡單步驟。 在系統A上,執行下述步驟: 1.??? 啟動MySQL服務器。 2.??? 使用GRANT建立用戶名為myuser的賬戶,該賬戶可使用密碼myuser從系統B建立連接。 3.???????????? GRANT ALL ON *.* to 'myuser'@'B' IDENTIFIED BY 'mypassword'; 4.??? GRANT語句為用戶myuser授予了使用密碼mypassword從系統B進行連接的所有權限。要想執行該語句,必須在系統A上擁有根用戶權限,或是具有恰當權限的另一用戶。關于MySQL權限的更多信息,請參見[5.8節,“MySQL用戶賬戶管理”](# "5.8.?MySQL User Account Management")。 在系統B上,執行下述步驟: 1.??? 使用下述連接參數配置MyODBC DSN: 2.?????????? DSN??????????? = remote_test 3.?????????? SERVER or HOST = A (or IP address of system A) 4.?????????? DATABASE?????? = test (The default database or an appropriate one) 5.?????????? USER?????????? = myuser 6.?????????? PASSWORD?????? = mypassword 關于建立DSN-less連接的更多信息,請參見[26.1.9.5節,“沒有預定義DSN下的連接”](# "26.1.9.5.?Connecting Without a Predefined DSN")。 7.??? 使用Ping命令或其它方式檢查是否能從系統B訪問系統A。如果無法訪問系統A,請檢查網絡或Internet連接,或與你的系統管理員聯系。 8.??? 嘗試使用DSN=remote_test進行連接。如果失敗,請跟蹤查詢MyODBC日志,并根據日志給出的錯誤信息采取進一步的步驟。如果需要進一步幫助,請發送詳細的電子郵件至[myodbc@lists.mysql.com](#)。 在下述站點,你可以找到關于如何完成該操作的簡單示例:[http://www.phphelp.com/tutorial/using-myodbc-to-connect-to-a-remote-database.html](http://www.phphelp.com/tutorial/using-myodbc-to-connect-to-a-remote-database.html). #### 26.1.9.7.?獲取ODBC跟蹤文件 如果遇到與MyODBC有關的困難或問題,首先應使用ODBC管理器和MyODBC生成一份日志文件(請求來自ODBC ADMIN的日志時獲得的日志文件)。 要想通過驅動管理器獲得ODBC跟蹤文件,可采取下述步驟: ·???????? 打開ODBC數據源管理器: 1.??? 點擊“開始”,將指針指向“設置”,然后點擊“控制面板”。 2.??? 在運行Microsoft Windows 2000、XP或2003的計算機上,雙擊“管理工具”,然后雙擊“數據源”(ODBC),如下圖所示。 ![ODBC Data Sources Icon](https://box.kancloud.cn/2015-07-10_559fc76d45940.png) 在運行早期Microsoft Windows版本的計算機上,雙擊“控制面板”中的32位ODBC或ODBC。 3.??? 打開ODBC數據源管理器對話框,如下圖所示: ![ODBC Data Source Administrator Dialog](https://box.kancloud.cn/2015-07-10_559fc76d4e624.png) 4.??? 點擊“幫助”以了解ODBC數據源管理器對話框各選項卡的詳細信息。 ·???????? 啟用跟蹤選項 對于Windows和Unix平臺,該步驟不同。 要想在Windows平臺上啟用跟蹤選項: 1.??? 通過“ODBC數據源管理器”對話框的“跟蹤”選項卡,可對跟蹤ODBC函數的方式進行配置。 2.??? 從“跟蹤”選項卡激活了跟蹤功能后,驅動管理器會對后續運行的所有應用程序的ODBC函數調用進行跟蹤。 3.??? 激活跟蹤功能前所運行應用程序的ODBC函數調用不會被記錄。ODBC函數調用將被記錄在你指定的日志文件中。 4.??? 點擊“現在停止跟蹤”后,跟蹤功能將停止。請記住,啟動跟蹤功能后,日志文件將不斷增大,而且跟蹤功能會影響所有ODBC應用程序的性能。 ![ODBC Tracing Tab](https://box.kancloud.cn/2015-07-10_559fc76d898d9.png) 要想在Unix平臺上啟用跟蹤選項: 5.??? 在Unix平臺上,需要在ODBC.INI文件中明確設置跟蹤選項。 使用TraceFile和odbc.ini中的Trace(跟蹤)參數打開或關閉跟蹤功能,如下所示: TraceFile? = /tmp/odbc.trace Trace????? = 1 TraceFile指明了跟蹤文件的名稱和完整路徑,將Trace(跟蹤)設為ON或OFF。也可以使用“1”或“Yes”表示ON,以及“0”或“No”表示OFF。如果正在使用unixODBC的**ODBCConfig**,然后遵照[HOWTO-ODBCConfig](http://www.unixodbc.org/config.html)中介紹的關于跟蹤unixODBC調用的指示說明。 要想生成MyODBC日志,可采取下述步驟: 6.??? 確保你所使用的是驅動程序調試DLL(對于MyODBC 3.51,它是myodbc3d.dll而不是myodbc3.dll,對于MyODBC 2.50,它是myodbcd.dll)。 最簡單的方法是從MyODBC 3.51分發版找到myodbc3d.dll(或myodbcd.dll),并用其覆蓋myodbc3.dll(或myodbc.dll),該文件通常位于C:\windows\system32或C:\winnt\system32目錄下。注意,完成測試后,你或許希望恢復舊的myodbc.dll文件,這是因為它比myodbc3d.dll(或myodbcd.dll)快很多,因此,請保存原始DLL的備份。 7.????? 在“MyODBC連接/配置”屏幕上啟用“跟蹤MyODBC”選項。日志將被寫入文件C:\myodbc.log。當你返回上述屏幕時,如果你設置的跟蹤選項未被記住,表明你正在使用的是myodbcd.dll驅動(參見前面的介紹)。在Linux平臺上,或你使用的是DSN-Less連接,需在連接字符串中提供“OPTION=4”。 8.??? 啟動應用程序,并嘗試著使其出現問題。然后檢查MyODBC跟蹤文件,找出可能出錯的地方。 如果發現某些事項出錯,請發送電子郵件至[myodbc@lists.mysql.com](#)(或[support@mysql.com](#),如果有與MySQL AB簽訂的支持合同),簡要描述出現的問題,并提供下述額外信息: o??????? MyODBC版本 o??????? ODBC驅動管理器的類型和版本 o??????? MySQL服務器的版本 o??????? 驅動管理器的ODBC跟蹤 o??????? 來自MyODBC驅動的MyODBC日志文件 o??????? 簡單的可復制示例 請記住,你提供給我們的信息越多,我們更正問題的機會就越大。 此外,在提供缺陷信息前,請檢查MyODBC郵件列表([http://lists.mysql.com/](http://lists.mysql.com/))。 #### 26.1.9.8.?用MyODBC測試的應用程序 使用下述應用程序測試了MyODBC: - MS Access 95, 97, 2000, and 2002 - C++-Builder, Borland Builder 4 - Centura Team Developer (formerly Gupta SQL/Windows) - ColdFusion (on Solaris and NT with service pack 5), [How-to: MySQL and Coldfusion](http://www.njwtech.net/addons/coldfusion/mysql.html). [Troubleshooting Data Sources and Database Connectivity for UnixPlatforms](http://www.macromedia.com/v1/handlers/index.cfm?ID=11328&Method=Full&PageCall=/support/index.cfm). - Crystal Reports - DataJunction - Delphi - ERwin - MS Excel - iHTML - FileMaker Pro - FoxPro - Notes 4.5/4.6 - MS Visio Enterprise 2000 - Vision - Visual Objects - Visual Interdev - SBSS - Perl DBD-ODBC - Paradox - Powerbuilder - Powerdesigner 32-bit - MS Visual C++ - Visual Basic - ODBC.NET through CSharp(C#), VB and C++ - Data Architect([http://thekompany.com/products/dataarchitect/](http://thekompany.com/products/dataarchitect/)) - SQLExpress for Xbase++([http://www.SQLExpress.net](http://www.SQLExpress.net)) - Open Office ([http://www.openoffice.org](http://www.openoffice.org)) [How-to: MySQL + OpenOffice](http://dba.openoffice.org/proposals/MySQL_OOo.html). [How-to: OpenOffice + MyODBC + unixODBC](http://www.unixodbc.org/doc/OOoMySQL.pdf). - Star Office ([http://wwws.sun.com/software/star/staroffice/6.0/index.html](http://wwws.sun.com/software/star/staroffice/6.0/index.html)) - G2-ODBC bridge ([http://www.gensym.com](http://www.gensym.com)) - Sambar Server ([http://www.sambarserver.info](http://www.sambarserver.info)) [How-to: MyODBC + SambarServer + MySQL](http://www.sambarserver.info/article.php?sid=66). 如果你知道能夠與MyODBC一起工作的其他應用程序,請以電子郵件的方式指明它:[myodbc@lists.mysql.com](#)。 #### 26.1.9.9.?已知的能與MyODBC一起工作的程序 大多數程序均能與MyODBC一起工作,對上面所列的每一程序,我們自己進行了測試,或得到用戶的確認。很多介紹中均給出了你可能會遇到問題的描述。 ·???????? 程序 注釋 ·???????? Access 要想使Access工作: o??????? 如果你正在使用Access 2000,應從下述地址獲取并安裝最新的(2.6版或更高)Microsoft MDAC(Microsoft數據訪問組件),[http://www.microsoft.com/data/](http://www.microsoft.com/data/)。它更正了Access在將數據導出至MySQL時存在的一個缺陷,未指定表名和列名。另一種解決該缺陷的方法是,升級到MyODBC 2.50.33和MySQL 3.23.x, 它們共同提供了避免該問題的一種方式。 此外,你還應獲取并應用Microsoft Jet 4.0 Service Pack 5 (SP5),可在下述地址找到它:[http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114](http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114)。它修正了某些情況下在Access中列被標注為“#DELETED#”的問題。 注釋: 如果你正使用MySQL 3.22,必須安裝MDAC補丁,并使用MyODBC 2.50.32或2.50.34或更高版本以解決該問題。 o??????? 對于所有版本的Access,應啟用“MyODBC返回匹配行”選項。對于Access 2.0,還應額外啟用“模擬ODBC 1.0”選項。 o??????? 在希望能夠更新的所有表中,均應有時間戳。為了獲得最大的可移植性,在列聲明中不要使用長度規范。也就是說,應使用TIMESTAMP,而不是TIMESTAMP(_n_), _n_ < 14。 o??????? 在表中應有1個主鍵。如不然,新的或更新的行可能會顯示為“#DELETED#”。 o??????? 僅應使用DOUBLE浮點字段。與單精度浮點進行比較時,Access將失敗。其征兆是新的或更新的行可能會顯示為“#DELETED#”,或無法找到或更新行。 o??????? 如果你正使用MyODBC來鏈接到有BIGINT列的表,結果會顯示為“#DELETED”。排除它的解決方案是: §???????? 有1個以TIMESTAMP作為數據類型的虛擬列。 §???????? 在“ODBC DSN管理器”的連接對話框中選擇“將BIGINT列更改為INT”選項。 §???????? 刪除與Access的表鏈接,并重新創建它。 舊記錄仍將顯示為“#DELETED#”,但新增/更新的記錄會恰當顯示。 o??????? 添加了TIMESTAMP列后,另一位用戶更改了數據,如果錯誤依舊出現,下述技巧或許有所幫助: 不要使用表數據表視圖。取而代之的是,從你希望使用的表創建一個表單,并使用表單數據表視圖。應將TIMESTAM列的DefaultValue屬性設置為NOW()。在視圖中隱藏TIMESTAMP列或許是個好主意,這樣就不會使你的用戶感到迷惑。 o??????? 在某些情況下,Access可能會生成MySQL無法理解的SQL語句。可通過在Access菜單中選擇“Query|SQLSpecific|Pass-Through”來更正該問題。 o??????? 在NT平臺上,Access會將BLOB列通報為OLE OBJECTS(OLE對象)。如果你打算用MEMO列取而代之,應使用ALTER TABLE將BLOB列更改為TEXT。 o??????? Access無法在任何時候均恰當處理DATE列。如果遇到這類問題,請將列更改為DATETIME。 o??????? 如果在Access中存在定義為BYTE的列,Access會視圖將其導出為TINYINT而不是TINYINT UNSIGNED。如果列中的值大于127,將出現問題。 ·???????? ADO 使用ADO API和MyODBC進行編碼時,需要注意某些不被MySQL服務器支持的默認屬性。例如,對于RecordCount屬性,如果將CursorLocation屬性用作adUseServer,將返回結果“-1”
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看