Delphi東京版FireDAC串連MSSQL2000提示對象名 'SYS.DATABASES' 無效

來源:互聯網
上載者:User

標籤:table   ros   編譯   sof   無效   程式   錯誤   ber   pad   

在Delphi 10.2.1 東京 版中,FireDAC預設不相容MSSQL2000,會提示“[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver][SQL Server]對象名 ‘SYS.DATABASES‘ 無效。”的錯誤,對此需要修改FireDAC.Phys.MSSQL.pas單元進行修複:

首先從delphi目錄下把FireDAC.Phys.MSSQL.pas檔案複製出來,然後開啟它,注釋掉 {$I FireDAC.inc},然後尋找到“procedure TFDPhysMSSQLConnection.InternalSetMeta;”,再找到“sCompatLvl := ‘(SELECT COMPATIBILITY_LEVEL FROM SYS.DATABASES WHERE LOWER(NAME) = ‘ +AnsiLowerCase(sCurCatalog) + ‘)‘;”,將其修改為:

12345 if oConnMeta.ServerVersion >= svMSSQL2008 then   sCompatLvl := ‘(SELECT compatibility_level FROM sys.databases WHERE name = ‘   + AnsiLowerCase(sCurCatalog) + ‘)‘else // MSSQL2005、MSSQL2000沒有sys.databases表   sCompatLvl := IntToStr(oConnMeta.ServerVersion div 10000000);

經過以上步驟,就完成FireDAC相容MSSQL2000的修改了。

這是網上抄的,但還有一些細節工作要做的。

1.將你的Delphi安裝目錄下的 FireDAC.Phys.MSSQL.dcu檔案刪除,記錄一下FireDAC.Phys.MSSQL.dcu的路徑。

2.這時候再編譯會提示找不到FireDAC.Phys.MSSQL.pas檔案,將這個檔案複製到你的程式的目錄入,編譯產生FireDAC.Phys.MSSQL.dcu

3.將產生的FireDAC.Phys.MSSQL.dcu檔案複製到原先的目錄裡。這樣以後就不需要每一個工程都放一份FireDAC.Phys.MSSQL.pas檔案

Delphi東京版FireDAC串連MSSQL2000提示對象名 'SYS.DATABASES' 無效

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.