上搜索的淨進出,無法找到,適當的信息,我們擁有了利用Delphi 7和BDE連接到SQL Server 2005現在德爾福7 BDE的SQL Server 2012
我們是一個傳統的設置計劃遷移到SQL Server 2012時,它有可能工作或沒有工作的機會有多大?
上搜索的淨進出,無法找到,適當的信息,我們擁有了利用Delphi 7和BDE連接到SQL Server 2005現在德爾福7 BDE的SQL Server 2012
我們是一個傳統的設置計劃遷移到SQL Server 2012時,它有可能工作或沒有工作的機會有多大?
如果您使用的是SQL Links MSSQL驅動程序,那麼將無法實現針對SQL Server 2012的目標。我已經能夠將SQL鏈接與SQL Server 2000以上的新功能結合使用的唯一方法是將數據庫兼容性級別設置爲「SQL Server 2000(80)」。這在SQL Server 2012中是不可能的。此版本中可用的最舊兼容級別是「SQL Server 2005(90)」。
SQL Links將向服務器發送無效SQL,例如外連接的「* =」語法。爲SQL Server 2005及更高版本設置的數據庫將不接受此語法。
我們已經成功使用BDE和SQL Server 2008R2。沒有特別的配置。
編輯:我今天也在SQL Server 2014上初步成功。有限的測試,但迄今爲止非常好!
格雷格
我們已經通過了Delphi 7 ADO數據控制組件(例如TAdoQuery,TAdoCommand)是用Delphi 7與SQL Server 2012不顯著的問題。存儲過程也可以正常工作,並且可以通過ADO命令對象(TAdoCommand)調用函數。
我們使用SQL Server 2012附帶的SQL Server Native Client 11.0 ODBC驅動程序.Delphi將它視爲另一個ODBC數據接口。從表面上看,它很像在Delphi 7中使用MS Access(通過ADO組件和Access OLE驅動程序)。對於SQL Server 2012的任何Service Pack(s?)都沒有問題。 (對不起,我不記得2012年SP發佈的是什麼,但是我們與這些SP沒有任何區別,並且我們已經測試過了)。
大部分開發工作都是在Windows 7 64位操作系統上完成的,並且都是在64位操作系統上執行的,並且在Windows Server 2008和2008R2上執行。執行Delphi編譯的可執行文件(顯然都是32位的)不需要特殊的設置。
如果使用ODBC「別名」,請確保使用32位ODBC DSN而不是64位ODBC DSN。 64位ODBC管理員是64位Windows的控制面板\管理工具中的一個 - 不要在此處使用它。使用Windows的SysWOW64中的32位ODBC管理器:C:\ Windows \ SysWOW64 \ odbcad32.exe。 64位ODBC DSN位於與32位DSN不同的空間中。 Delphi 7是一款32位應用程序,無法訪問64位DSN(我猜測出的API不同)。
我們在SQL語句中也可能有註釋問題。我認爲該行評論(「 - 」)無效,但多行註釋起作用(「/ ... /」)。
請注意,儘管BDE由Corel保留(作爲Paradox Runtime發佈到今天;但引擎被凍結,但在現代Windows操作系統中確實存在一些問題),但不需要訪問SQL Server數據。我們直接通過Windows ODBC API使用ODBC別名(我們在Delphi中編寫了封裝以使這個微不足道)。但是,仍然可以使用BDE作爲這些ODBC DSN別名的接口。如果你根本不使用別名(並且在源代碼中不包含對DbTables.pas的任何引用),那麼根本就不需要BDE。 DbTables.pas始終在初始化INTIALIZATION塊中的全局Sessions變量時初始化BDE。你可以在DbTables.pas源代碼單元的底部看到它。沒有這個單位,BDE不會被初始化或使用。(這也意味着你不能使用TTable或TQuery組件,但這些組件只適用於Paradox數據; ADO組件如TAdoTable(除非要將整個數據表加載到內存中,否則不要使用它),TAdoQuery或TAdoCommand完全是獨立的
另一個訣竅是使用MS Access數據庫和鏈接表來在SQL Server和Paradox數據表之間進行接口,如果你仍然需要使用BDE本地(即Paradox)表,但有時候Access和BDE不會'玩耍得很好。
遷移早已完成,我敢肯定,但如果其他人尋找相同的答案。傳統的軟件,有對生活的一種習慣......
對於BDE的機會減少到新客戶端向後兼容舊客戶端的機會,或者舊SQL客戶端可以連接到新服務器。你爲什麼要標記這個dbExpress? – jachguate
BDE在十年前就被棄用了,並且在Delphi的當前版本中死掉了(它不再包含在發行版中),這意味着您至少有十年時間可以用ADO等更現代的驅動程序取而代之。由於它不適用於SQL Server 2012,因此看起來您現在必須做更換(這樣做的時間要少很多)才能完成遷移。 –