我正在使用 delphi XE2 并从事 mysql 数据库项目。我有一个 mysql 数据库,它有一个由四列组成的表。
我在此表中有两个示例行。
我正在使用 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 列,我只得到两个 int 列。
就像 varchar 列无法显示,例如 sqlselect fname from persondb.person
将在 dbgrid 中产生两个单单元行。结果与select fname, lname from persondb.person
甚至不合逻辑的 sql 相同(因为我期望一个 2X2 的空表)。
我还将数据库的字符集 utf8 更改为 latin1,并认为问题可能就在那里,但也没有运气。
我用谷歌搜索了几个小时,甚至没有与我类似的问题。但我倾向于预期的正常行为是 dbgrid 显示(memo)
每个人都试图克服的 varchar 字段。
所以任何帮助表示赞赏。