喫茶XRAYトップページ

[スレッド全体
]

[5112] TQuery→TSQLQueryに置き換えたときのParamsの設定方法について返信 削除
2011/8/10 (水) 17:21:28 Atchoum
いつもお世話になっています。
ここへきたらちょっとヒントもらえるかな?と思って書き込みします。

BDEからdbExpressへの移行を行っています。
TQueryをTSQLQueryに置き換えるときのParamsはどのように設定したらよいのか質問いたします。

GExpertというツールのReplaceComponent機能を使っていますが
プロパティParamsはTQueryからTSQLQueryにコピーできませんでした。
ツールでできないので、もうそういうものかと諦め、ひとつひとつ手動でParamsの設定を行っていましたが
あまりに画面数が多く、使用しているQueryもたくさんあり気が狂いそう。

どうにかできないかとDfmのParamDataをParamsに書き換えてみましたが、だめ。
(そうだよね、これでOKならReplaceComponent機能でもおきかえれるはず)

下は手動で置き換える前後のdfmの記述です。

---------------TQUERY
  object Query4: TQuery
    DatabaseName = 'csdb'
    SQL.Strings = (
      'select KIND1 from TESTTABLE'
      'where KIND2=:kindjp')
     ParamData = <
      item
        DataType = ftString
        Name = 'kindjp'
        ParamType = ptUnknown
      end>
    Left = 432
    Top = 49
 end

---------------TSQLQuery
  object Query4: TSQLQuery
    SQLConnection = DM1.Database1
    SQL.Strings = (
      'select KIND1 from TESTTABLE'
      'where KIND2=:kindjp')
    Params = <
      item
        DataType = ftString
        Name = 'kindjp'
        ParamType = ptUnknown
      end>
    MaxBlobSize = -1
    Left = 432
    Top = 49
  end

よろしくお願いいたします。



[5113] Re:TQuery→TSQLQueryに置き換えたときのParamsの設定方法について返信 削除
2011/8/10 (水) 19:06:37 Mr.XRAY
▼ Atchoumさん,どうもです.

> ここへきたらちょっとヒントもらえるかな?と思って書き込みします。

ちょっと考えが甘かったかも,いや,まだ分かりませんが.

> あまりに画面数が多く、使用しているQueryもたくさんあり気が狂いそう。

お気持ちお察しいたします.
>
> どうにかできないかとDfmのParamDataをParamsに書き換えてみましたが、だめ。
> (そうだよね、これでOKならReplaceComponent機能でもおきかえれるはず)


御意!! 確かに.
dfmの手動書き換えと言う荒技はやめた方がいいのでは (^^;
ちょっと怖いです(意味不明).
コードで置き換えですか.できそうな気もしますが,TSQLQuery使っていないし,
他の人にバトンタッチ.あっ,まだ次のランナーがいない?!


[5115] Re2:TQuery→TSQLQueryに置き換えたときのParamsの設定方法について返信 削除
2011/8/10 (水) 19:51:18 taka
▼ Mr.XRAYさん
> ▼ Atchoumさん,どうもです.
> お気持ちお察しいたします.

昔DBがらみで、苦労したことありますよ。

上のコードをみただけですけど
    SQLConnection = DM1.Database1
    MaxBlobSize = -1
が新規に増えているだけのようですし、
ほかのは名称変更だけなので単純置換で事足りそうでですね、


フォルダ全部をバックアップをして
for文と findfirst,findnextで手当たり次第にdfmを読み込み
(旧式dfmの場合、バイナリなので注意)
適当な挿入と置換関数を併用するとすぐ終わりませんか?
変更前と置換後に変化があれば保存するみたいな感じで。
Delphiでエラーがでたら残りは手でさくさくっていくってことで。

DatabaseName = 'csdb' → SQLConnection = DM1.Database1
ParamData  → Params

delphiの標準関数で簡単にいけますよ。

ないものは、デフォルト設定なので
MaxBlobSize = -1
は、挿入するかどうかは、ご自分で。

位置を特定するのが面倒でしょうから
Delphi、C#,phpなんでも
言語はなんでもいいですが、
regexp関数関係の置換を使えば、かなり簡単に置換できます。


[5118] Re3:TQuery→TSQLQueryに置き換えたときのParamsの設定方法について返信 削除
2011/8/11 (木) 09:13:54 Atchoum
Mr.XRAYさん、takaさん

お返事ありがとうございました。(Paramsの変換のせいで今日は右手首が痛い。)

takaさんのお言葉を信じてもう一度Dfm変換したら、なんだかうまくParamsがセットできていました。
前やったときはParamsが空になっていたんですが。。。
暑さのせい?


なんだかお騒がせしちゃってごめんなさい。でも解決できて嬉しいです♪

ありがとうございました。



[5120] Re4:TQuery→TSQLQueryに置き換えたときのParamsの設定方法について返信 削除
2011/8/11 (木) 09:42:05 Mr.XRAY
▼ Atchoumさん

> 暑さのせい?

そうかどうかはともかく,ともかく暑いですね.
ここのところ,外に出ることが多いので,まいります.

>regexp関数関係の置換を使えば、かなり簡単に置換できます。

確かにそれはそうですが,フォームが開けなくてdfmファイルをいじった
ことはありますが,こんな方法もあるのですね.
10年近くDelphiを使っていても,まだまだ勉強になります.
サンプルプログラムの修正もまだ十分でないのに,Delphi XE2が...
ついていかれませんわ...


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82