【发布时间】:2020-11-20 11:05:46
【问题描述】:
问题背景: 所以我试图从我的数据库中通常在 DBGrid 中显示一个表(在我的 GUI 的单选组中选择了特定的表),以便当用户输入 SQL 查询时,他们将能够看到更改DBGrid 中的表。 (除非另有说明,所有图片均来自 Delphi 的设计视图)
您可以在其中选择表格的无线电组的图像(无线电组尚未执行任何操作):
主要问题: 问题是它没有显示所有内容,它只显示 DBGrid 上的第一列,没有其他内容。
有关表单、组件等的额外信息: 连接到我声明为 TDataSource 组件的 DBGrid 的数据源称为 dsrSQL。我正在使用一个名为 qrySQL 的 TADOQuery 组件,它连接到 conClientInfo(一个连接到数据库的 TADOConnection 组件)。该数据源具有 qrySQL,因为它是 DataSet。所有组件都处于活动状态并已启用。它们也都在一个名为 DM_client_u 的数据模块中。 (我确实在表单代码中声明了使用下的数据模块)
我尝试了什么: 我在 conClientInfo 中重新编写了连接字符串,检查了 qrySQL 组件和 DBGrid。我仍然没有看到程序表面有任何问题。
提前致谢!
【问题讨论】:
-
我认为你真正的问题是第一列的宽度。其余数据都在那里,但您必须水平滚动才能看到它。如果您没有明确定义第一列的宽度或使用隐式列,则宽度会根据基础字段的数据类型和 DBGrid 的字体自动计算。对于大的 VARCHAR 字段,它可能是一个巨大的数字。
-
@PeterWolf 谢谢,改变列的宽度有很大帮助!但是我的某些字段具有 WIDEMEMO 值?我怎么能解决这个问题? (我在 Access 中更改了字段的数据类型,全部改为短文本而不是长文本)
-
坦率地说,你需要重新考虑你的 q,因为其中的大部分信息都是无关紧要的,例如一个非功能性无线电组的图像,显示它完全没有意义,以及一个表格在 Access 中的样子。您应该包括的详细信息是表格中的字段类型和大小(以文本而非图像的形式表示)以及用于打开表格的代码以及在切换表格时如何重置 DBGrid。尝试使用同一个网格来显示来自不同结构表的数据并不是一个好主意,除非您知道如何使用 DBGrid。
标签: sql ms-access delphi delphi-xe2 pascal