2013年05月30日

BDE ⇒ FireDAC変換 (ソース変換)

dfm直接書き換えで、BDE=>FireDACに書き換えた時の記録です。

データベースはOracle。一時作業用にParadoxを使用。
すべてのプロジェクトで同じようにいくとは限りません。たまたま、弊社で対応したものの記録です。少しは参考になると思います。

一時作業用(Paradox)のTTableのTADMemTable化を先にやります。
TTable
 =>
  TADMemTable
この後一度、IDEで開いておいたほうが良いです。

次に、オラクルアクセス用のコンポーネントの変換
DMDataBase.OraDBは、TADConnectionの名前です。
----------------------
TTable
 =>
TADTable
    Connection = DMDataBase.OraDB

* SchemaNameを指定するとテーブルがないとエラーが出ることがある。この場合、 SchemaNameは削除する。
----------------------
TQuery
 =>
TADQuery
    Connection = DMDataBase.OraDB
----------------------
TUpdateSQL
 =>
TADUpdateSQL
    Connection = DMDataBase.OraDB
----------------------
各コンポーエントのDatabaseNameプロパティを削除しておいてもよいが、今回はそのまま残し、削除は、IDE任せで行った。
ADOコンポーネントの時のように、イベントが消えることもないのでそのあたりのフォローは少なくて済む。
TUpdateSQLも、TADUpdateSQLとして残るので助かる。
TADQueryの項目のDisplayLavelプロパティで、"#,#" はNG(メモリ例外)。
”0,#”にするとOKなところがあった。(原因は不明)

以下は、データマッピング機能を使うと変換の必要がないのかもしれないが、今回は使用せず、また次回試すことにする。

----------------------
TFloatField
 =>
    TBCDField
    Size = 0
ただし、小数項目は Size = 2 後で変更
----------------------
これはソース側。TADStoredProcのParamsの設定
AsInteger => value
AsDate => value
AsDateTime => value
----------------------
TADStoredProcで、IDE上で、StoreProcNameを再設定しないとパラメータ設定部分でエラーが出るものがいくつか発生(すべてでない)
StoreProcNameを一度クリアして、再設定してやるとうまく行くようになった。これも原因は今のところ不明。
TADQueryで、同様に、SQLを再設定してやらないと、上記と同様、パラメータ設定部分でエラーが出るものがいくつか発生(SoredProcより少ない)
これも、SQLを一度クリアして再設定で治った。こちらは、同一名のパラメータ名が複数あるときに起きるようだ。



FireDACへの変換も一通りのテストはやはり必要なようで、ノンテストで置き換えられるコンポーネントはないものか。。。。無理かな?
--------------------------------------------------------------
FireDACの資料(日本語)は、これが一番まとめられていると思う。
26回エンバカ・デブキャンプ資料

http://edn.embarcadero.com/article/images/43368/a2.pdf
posted by しんくそふと at 23:04| Comment(0) | TrackBack(0) | 開発TIPS
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/68625077
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック