TableNameを変えたときTableのFieldを消す

解決


まさ  2007-08-24 18:35:21  No: 27497

データベースのFiledは設計時に設定しますが、Table1のTableNameを変えて処理する場合にFieldが更新されずに前のFieldが残っています。
これをTableNameを変えるたびにFieldを更新するにはどのようにすればいいのでしょうか?


HOta  2007-08-24 18:55:59  No: 27498

オブジェクトインスペクターで、Fieldを指定して削除すれば消えます。
プログラム中でTableNameを変えるのなら、Fieldを指定しなければ問題有りません。


まさ  2007-08-24 19:55:28  No: 27499

HOtaさん
設計時にTableアイコンをダブルクリックして、表示したウインドウにマウス右クリックですべてのフィールドを追加するのが普通です。
ここでTableNameを変えても前のフィールドが残ったままです。
プログラムを書いても同様の動作のようです。

TableNameを任意に指定しBatchMoveを使いたいのでフィールドを正しく設定したのです。設計時なら前のフィールドを消して、すべてのフィールドを追加すればよいのですが。
いろいろ試したのですが、プログラムでフィールドを消す方法がわかりません。


  2007-08-24 21:02:16  No: 27500

これじゃねぇの?
Table1.Fields.Clear;

というか、設計時にフィールドを追加せずそのまま使えば、勝手に全列分の
フィールドが作成されて表示してくれないか?


HOta  2007-08-24 22:14:05  No: 27501

TBatchMoveで使用する場合は、使用する場合にMappingを指定すれば、TTableのFieldを設計時に追加せずに使用すれば、問題ないのではないですか?
設計時に追加すれば、それは残ります。


まさ  2007-08-24 22:59:28  No: 27502

HOtaさん
起動直後のBatchMove、Mapping操作はうまくいきます。その後TableNameをかえると、前回のTableのFieldが無いというメッセージが表示されます。

起動直後のFieldがセットされると消さないがきり残っている感じです。
そこで?さんの書かれたTable1.Fields.Clear;を書いたのですが、症状は変わりませんでしたので、ここで質問させていただきました。


まさ  2007-08-24 23:57:15  No: 27503

簡単なプログラムで検証したところ、?さんやHOtaさんの言われるとおり
TableNameを変更すれば、Filedsは変わりました。設計時に設定すると消えないようです。

今回は別の所に原因があるようです。お騒がせしました。


まさ  2007-08-25 07:08:48  No: 27504

原因がわかりました。
BatchMove、Mappingを使用したため、次回処理でMappingを使用しない場合でもMapping.Clearを書かなければいけなかった。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加