MySqlの文字型データをDelphiで表示するには

解決


PP  2009-10-30 21:52:22  No: 36028

MySQLのコマンドプロンプトから以下のSQL文でテーブルを作成し、
Insertでデータを入力しました。
(サーバーの起動直後に SET NAMES cp932を実行)

create table mymenu(
  id int auto_increment primary key,
  name varchar(100),
  price int,
  start_date DATETIME,
  last_update TIMESTAMP default current_timestamp
)ENGINE=InnoDB DEFAULT CHARSET=cp932; 

insert into mymenu(name, price, start_date) values('いちご', 500, '1997-10-14');

Delphiでフォーム上に、TDBGrid,TDataSource,TTableを配置し
TDBGridのDatasourceプロパティをDataSource1,
TDataSourceのDataSetプロパティをTTable1,
TTableのDatabaseNameをTestDS,TableNameをMyMenuにし
TTableのActiveプロパティをTrueにすると
TDBGridのフィールド名列には、id,price,start_date,last_updateと表示され、nameフィールドが表示されません。他のフィールドはデータも正しく
表示されています。
FieldDefのnameの箇所をクリックするとDataTypeがftUnKnownとなっており
この影響でnameフィールドが表示されていないと思います。
このnameフィールドを表示させるにはどうすればよいでしょうか。
よろしくお願いします。

環境 WindowsXP SP3
     MySql バージョン 5.1
     ODBC ドライバ    5.1
     Delphi 2007


igy  2009-11-01 18:47:04  No: 36029

ODBC ドライバ は使ったことがないのですが・・・・

TTableではなく、TQueryで、
 select name, price, start_date from mymenu
で表示させた場合、どうなりますか?

あるいは、
>name varchar(100),
のname を別のものにしてみるとか・・・・


PP  2009-11-02 00:43:51  No: 36030

igyさん、ご回答ありがとうございます。

1.TTableではなく、TQueryで、
   select name, price, start_date from mymenu
    で表示させた場合も、nameフィールドは表示されませんでした。

2.name varchar(100)を  nm Textに変更してやったみましたが
    nmフィールドは表示されませんでした。

MySQLのiniファイルやcnfファイルの内容に問題がないか、
も含めて、やってみようと思います。


PP  2009-11-02 03:51:23  No: 36031

ODBCドライバのバージョンを5.1から3.51にダウンすると
文字列が読めるようになりなした。
一応、これで解決とさせていただきます。
ありがとうございました。


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

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






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