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
ODBC ドライバ は使ったことがないのですが・・・・
TTableではなく、TQueryで、
select name, price, start_date from mymenu
で表示させた場合、どうなりますか?
あるいは、
>name varchar(100),
のname を別のものにしてみるとか・・・・
igyさん、ご回答ありがとうございます。
1.TTableではなく、TQueryで、
select name, price, start_date from mymenu
で表示させた場合も、nameフィールドは表示されませんでした。
2.name varchar(100)を nm Textに変更してやったみましたが
nmフィールドは表示されませんでした。
MySQLのiniファイルやcnfファイルの内容に問題がないか、
も含めて、やってみようと思います。
ODBCドライバのバージョンを5.1から3.51にダウンすると
文字列が読めるようになりなした。
一応、これで解決とさせていただきます。
ありがとうございました。
ツイート | ![]() |