私は delphi XE2 を使用しており、mysql データベース プロジェクトに取り組んでいます。4 つの列で構成されるテーブルを持つ mysql データベースがあります。
このテーブルには 2 つのサンプル行があります。
TDatabase、TQuery、TDatasource、および TDBGrid を使用して、次のソース コードでデータベースに接続しています。
dbgrid1.DataSource :=DataSource1 ;
datasource1.DataSet :=Query1 ;
database1.DatabaseName :='personDatabase';
database1.AliasName :='mysqlodbc';
database1.LoginPrompt :=false;
database1.Connected :=true;
query1.DatabaseName :=database1.DatabaseName;
query1.SQL.Clear;
query1.SQL.Add('select * from persondb.person;');
query1.Active :=true;
問題は、すべての列と行を ( でselect * from persondb.person
) 選択して dbgrid に表示しようとすると、varchar 列が表示されず、2 つの int 列しか得られないことです。
varchar 列が表示できないようです。たとえば、SQLselect fname from persondb.person
は dbgrid で 2 つの単一セル行になります。select fname, lname from persondb.person
結果は、論理的でさえないsqlと同じです(2X2の空のテーブルが予想されたため)。
また、utf8 だったデータベースの文字セットを latin1 に変更しましたが、問題があるのではないかと考えましたが、運もありませんでした。
私は何時間もグーグルで検索しましたが、私のような問題さえありませんでした。(memo)
しかし、期待される通常の動作は、誰もが克服しようとしている varchar フィールドを表示する dbgrid であると私は学びました。
どんな助けでも大歓迎です。