データベースの再構築で変更前が表示されます

解決


万年中年  2004-09-19 17:59:49  No: 11009  IP: [192.*.*.*]

DBGrid の一行目(項目名)がどうしても古いものが表示されてしまうのですが?


database DeskTop でテーブルの再構築をやりました。
Query1.Active  を  trueにするとその再構築の変更した項目が出てくるのですが、
プログラムの実行をやると  変更前の項目が出てきてしまいます。
DBGrid のカラムエディタで項目の順番と表示の有無をやっても
プログラムの実行をやると古いままの表示になってしまいます。
どうしてでしょうか?
あれこれやってみたのですがわかりません。
ご教示願えませんでしょうか。

編集    削除
Mr.XRAY  URL  2004-09-20 00:22:30  No: 11010  IP: [192.*.*.*]

質問文を読んで状況をつかもうとしましたが.もしかしたら....
ですが,その前に

再構築というのは何をやったのですか.
  項目の追加
  項目の削除
  項目名の変更

そして,どれがどこに(DBGRid?)実行時に再現しないのですか.
DBridの項目タイトル名としたら,DBGridのTitleプロパティはどうなって
いますか.

編集    削除
万年中年  2004-09-20 03:26:07  No: 11011  IP: [192.*.*.*]

項目の追加です。
移動もやったはずです。

現在プログラムを動かすと表示される項目
DBGrid1 のカラムエディタで全部削除しても同じように表示されます。

No コード  カナ  その他  得意先  請求日  項目  請求金額  入金日
*  (その他)  (得意先)  は空白です。削除か名前を変えましたので・・・

修正した項目(Query1.activeをtrue にしたときに表示される項目)
No コード  カナ  得意先1  得意先2  請求日  項目  入金日  備考

以上です。

もう一つ不思議なのは?  というかどこかが間違っているんでしょうが・・
PageControl にページを追加して DataSourse3,Query3,DBGrid3を貼り付け
プログラムを動かすとこれは修正した項目
No コード  カナ  得意先1  得意先2  請求日  項目  入金日  備考
で表示されています。

ですので PageControl1 と  PageControl2は  修正の以前のままで
        PageControl3 は修正後の新しい項目で表示されています。

>DBridの項目タイトル名としたら,DBGridのTitleプロパティ  
?  すみませんがどういうことでしょうか?
申し訳ありません。
よろしくお願いします。

編集    削除
Mr.XRAY  URL  2004-09-20 03:43:14  No: 11012  IP: [192.*.*.*]

>DBridの項目タイトル名としたら,DBGridのTitleプロパティ  

ゴメンなさい.DBridのカラム各プロパティのTitleプロパティのことです.
試しに,DBGridのタイトルのキャプションが前のままという,PageControl1
または2に配置している,Titleプロパティを変更してみたらどうなりますか.Query1と2の各カラムのDisplayLabelかな(関係ないかも)

編集    削除
Mr.XRAY  URL  2004-09-20 04:33:41  No: 11013  IP: [192.*.*.*]

>DBridのカラム各プロパティのTitleプロパティのことです.

おおっとまたやってしまった.
カラムのTitleプロパティのCaptionのことです.

編集    削除
万年中年  2004-09-20 15:27:46  No: 11014  IP: [192.*.*.*]

DataSourse1,Query1,DBGrid1  削除して
正しく表示してあるDataSourse3,Query3,DBGrid3
と同じように設定しても
(QueryのActive.Trueにしている状態では訂正された項目です。)
プログラムを動かすと訂正前の項目が幽霊の様に現れます。
ちなみに  DBGridでの「項目エディタ」での
Tile.Caption と  FieldNameは同じ名前で
正しく表示されます。

訂正前の項目名が出てくるということはどこかに保存されているんでしょうね。削除とか名前を変更しているのにでてくるのですから。

編集    削除
HOta  2004-09-20 16:49:25  No: 11015  IP: [192.*.*.*]

Mr.XRAYさんのおっしゃているように、DBGridのカラムエディターで
Titleプロパティを調べてください。
ここに設定していると、Queryに無くても表示します。

編集    削除
@っしー  2004-09-21 04:12:51  No: 11016  IP: [192.*.*.*]

憶測ですが、DBGridのカラム情報を自信で読み書きされていませんか?

以前、その様な質問があったもんで、気になりました。
https://www.petitmonte.com/bbs/answers?question_id=2024

編集    削除
万年中年  2004-09-21 04:19:49  No: 11017  IP: [192.*.*.*]

何かが間違っているんですね。
修正前のPageControl1と2は

DBGrid のカラムエディタで  DBGrid.columnsの編集を開け
0-No
1-コード
2-カナ
3-得意先1
-
-
9-備考
まで修正後の期待したものが現れています。
それに  TitleのCaptionもそのまま修正後が入っています。

それがプログラムを動かすと
No コード  カナ  その他  得意先  と修正前のままです。

queryがそれぞれの3つのPageControlにあり
プロパティの  databasenameは「h:\入金\」
datasourceは空白  SQLは「Select * from Pay」とみな同じです。

あとはDBGrid の違いは見つけられませんでした。

DBGrid,DataSourse,Query も削除して入れ替えても
プログラムを動かすと
PageControlの1と2は修正前のtable項目、後から追加した
PageControl3のtable項目は修正後の項目。

PageControlのなにかが原因になっているのでしょうか?
解決策に新規にtabeleを作り直すしてみようと思います。

編集    削除
HOta  2004-09-21 06:18:06  No: 11018  IP: [192.*.*.*]

この情報からでは、
修正したテーブルと、表示しているテーブルが
別のものとしか考えられません。

編集    削除
@っしー  2004-09-21 19:21:16  No: 11019  IP: [192.*.*.*]

PageControlは関係ないと思いますが、、、

>DBGrid,DataSourse,Query も削除して入れ替えても

ということですので、それぞれのNameを今まで使用していない名前に変更した場合には動作に違いが出ませんか?
削除して入れ替えても、DBGrid1、DataSource1、Query1のように同様の名前が自動で付けられているのが原因かもしれません。

お役に立てれば幸いです。

編集    削除
万年中年  2004-09-21 21:46:28  No: 11020  IP: [192.*.*.*]

>@っしー 2004/09/20(月) 19:12:51
>憶測ですが、DBGridのカラム情報を自信で読み書きされていませんか?

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

ビックリ、、そして心臓がドッキン、もしかしたら・・

以前の私の問いかけにお答えいただいたものが原因だったとは!
情けありません。なんといったら、穴があったら入りたいです。

FormShow  で下記のコードがあったのを思い出しました。
まさか項目名も保存されているとは思いもしませんでした。
項目幅だけではなかったのですね。

DBGrid1.Columns.LoadFromFile(ExtractFilePath(ParamStr(0))+'col.dat');
DBGrid2.Columns.LoadFromFile(ExtractFilePath(ParamStr(0))+'col2.dat');

嬉しいやら、そして皆さんに申し訳ないやら一人相撲してしまいました。
ありがとうございました。

編集    削除