2009-10-28 100 views
4

我打算一個Delphi 6 BDE應用程序遷移到德爾福2010年......相當於Delphi 2010 dbExpress中的TUpdateSQL?

  • 首先,我必須從BDE移開? (我會但我更喜歡在可能的情況下分階段做到這一點)

  • 二,是dbExpress的最佳選擇? (我正在使用MS SQL)

  • 最後,在dbExpress中是否有相當於TUpdateSQL? (或其他任何東西)

我有很多的(使用TUpdateSQL和ApplyUpdate)網格內更新只讀查詢代碼。

請幫忙~~~

非常感謝。

回答

3

1)你絕對必須遷移從BDE至DbExpress。 BDE是一種obsolete and deprecated技術。

你可以閱讀這些文章

2)的dbExpress比BDE一個更好的選擇與SQL Server進行通信,但是我更喜歡ADO,因爲是原生爲SQL Server。

3)的dbExpress沒有部件類似於TUpdateSQL然而Luxene具有TDBXUpdateSQL至極是從的dbExpress的eXtension部件的一部分。

您可以檢查也InstantBDExpress是一個組件庫,使老BDE應用到的dbExpress技術無縫遷移)從ETHEA

再見。

0

使用dbExpress的的SQLQuery組分,一種可寫的查詢'如

update <table> 
set value = :v1 
where something = :v2 

,然後一個調用「execsql」的方法來物理地更新該表。

+1

他詢問TUpdateSQL組件,它允許用BDE組件(TTable,TQuery)生成的SQL代替開發人員編寫的SQL。它主要用於允許使用連接進行查詢更新。 – 2009-10-28 14:45:15

+0

當我說'更新'閱讀:插入,刪除和更新命令。 – 2009-10-28 14:53:43

+0

無法使用連接插入/刪除/更新。只有'select'語句可以有一個連接。 – 2009-10-29 14:01:39

0

使用ClientDatasets和提供程序,可以使用帶有一般OnUpdateRecord的TDatasetProvider(?,現在不記得確切名稱)處理程序,並使其使用您在TUpdateSQL上使用的 sqls。

只是一個想法,在這種情況下,你不能使用第三方組件....

1

在一個TDataSetProvider有(..通過TADOQuery等)

稱爲BeforeUpdateRecord一個事件是basicly做TUpdateSQL

更手動方式,你必須創建SQL你的自我,然後更新它。

它怎麼過具有其中TUpdateSQL

SRY新舊價值觀的基本相同,這是C++,我不知道dehpli但basicly一樣,我認爲

DeltaDS->FieldByName("id")->NewValue; 

DeltaDS->FieldByName("id")->OldValue; 

也必須設置

Applied = true; 

,以便它不會嘗試做更新你手動完成後,

這裏幾個環節,這應有助於 About BeforeUpdateRecord

,如果您需要任何更多的信息只是添加評論和虐待回來給你