问题标签 [dbgrid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - delphi 5中观察DBGrid中选择变化的标准方法是什么?
我的应用程序中有许多“主/明细”表格。一个 TDBGrid,其中每一行显示项目的一些核心值。网格下方通常是一个“详细信息区域”,显示当前在网格中选择的项目的完整信息。
目前我正在听网格后面的 TADOQuery 的“AfterScroll”事件,但它似乎给了我太多事件。
AfterScroll 是正确的事件吗?你是怎么做到的?
sqlite - c++ builder with SQLite:数据表示在 DBGrid 中显示 WIDEMEMO
我将 C++ Builder 与 SQLite 数据库一起使用。我通过 DBExpress 连接数据库。问题是 DBGrid 在每个字段中都显示 (WIDEMEMO) 而不是数据库具有的确切值。
例如,我对其他数据库(例如 Firebird)没有这个问题。
为什么会有这种行为?我是否缺少 sqlite 的某些内容以及如何修复。你是否建议我将 SQLite / Firebird 或其他嵌入式数据库用于小型独立应用程序。
提前致谢。
delphi - Delphi:如何查找和格式化 DBGrid 字段
我使用 DBGrid 和 Delphi XE2 来显示一些查询结果。结果中,一些(整数)字段表示以秒为单位的持续时间,我想以某种格式显示,例如“hh:mm:ss”我事先不知道字段顺序,因为查询可能不同,但我知道字段我要格式化的名称。最有效的方法是什么?
database - 如何在 DBGrid 中指示单元格?
我想从 DBGrid 中的特定单元格中获取数据?我怎样才能在 Delphi 7 中做到这一点?我知道使用 Stringgrid 很容易,只有StringGrid1.Cells[2,1]
在您想显示到第 2 行第 1 列时才使用它,但是有什么方法可以使用 DBGrid 完成此操作吗?
delphi - StackOverFlow error
I have a DBGrid
and use it to get data into a Array
. But as soon as I press the button to do this procedure I get a StackOverFlow error ? Here is the Code I use :
I am using Delphi 7 .
delphi - DBGrid 不显示记录
我尝试使用数据库中的值填充 Delphi 中的网格。现在,我有一个 TSQLConnection、TSQLQuery、TDataSource 和 TDBGrid。
组件关联如下:
1) myTDBGrid 数据源:myTDataSOurce
2) myTDataSource 数据集:myTSQLQuery
3) myTSQLQuery 连接:myTSQLConnection
编译和运行时出现错误消息破坏了应用程序:
不允许对单向数据集进行操作
有任何想法吗 ?。
delphi - 调整列宽 DBGrid
我有一个 TDBGrid。它有效,但显示的列非常大。
如何设置“自动修复列宽”?
delphi - 在运行时更改数据库查询
我正在尝试TDBGrid
通过 a过滤 a TEdit
,处理TEdit
onChange
事件。我有一个TIBQuery
列出网格中的所有记录:
当用户在 中插入字符时,该字段TEdit
必须刷新网格。Cliente
我的代码尝试这样做,但是当它执行处理程序时,查询返回一个空的结果集。我正在使用 Firebird 2.5 和 IB 组件。
相关代码:
delphi - Delphi编辑unicode表数据
我的 Delphi 应用程序使用 PostgreSQL 数据库(带有 UniDac 组件)。数据以 UTF8 格式存储在数据库中。要读取国际字符,我使用这个处理程序:
但是,如何将数据存储回数据库?我创建了另一个处理程序,OnSetText
,Sender.AsString := Utf8Encode (Text);
但它不工作。
怎么可能做到这一点?谢谢。
delphi - 当 RowCount > VisibleRowCount 没有选择网格的第一行时,DBGrid 的最顶行中出现什么数据集行?
当底层数据集中的记录数大于DBGrid 中显示的行数,并且 DBGrid 已滚动。
这是我的问题。从附加到 DBGrid 的拖放事件处理程序中,我可以使用 MyGrid.MouseCoord(X,Y).Y 确定放置事件与 DBGrid 的哪个可见行相关联。当基础数据集包含的记录数少于或等于 DBGrid 中显示的行数时,该值也是基础数据集中关联记录的行号。
当底层数据集包含的记录多于 DBGrid 中可见行数时,MyGrid.MouseCoord(X, Y).Y 和 TDataSet(MyGrid.DataSource.DataSet).RecNo 仅在数据集的第一行出现时相同在网格的第一行。
是否有某种方法可以在未选择 DBGrid 行的情况下识别 DBGrid 中最顶部显示记录的基础数据集中的记录号(或偏移量)?我知道,如果我实际上选择了 DBGrid 的最顶行,那么我可以使用 TDataSet(MyGrid.DataSource.DataSet).RecNo 来获取基础数据集的当前记录号。但是,从 DBGrid.OnDragOver 或 DBGrid.OnDragDrop 事件中,我只有对 DBGrid 和鼠标坐标的引用(从中我可以确定网格的哪一行是放置的目标)。
例如,如果我可以确定 DBGrid 在网格的最顶行显示底层数据集中的第三条记录,那么我的问题就解决了。同样,如果我可以读取特定行的底层 TField(例如,最上面的行)而无需选择该行,我就有了我需要的东西。但是,我看不到这样做的方法。
任何建议将不胜感激。
编辑:我之前发布了一篇关于拖放到 DBGrid 中的博客。有了这个新信息,我可以解决以前已知的问题。我将在本周的某个时候更新该博客,并在我完成此操作后在此处添加指向该博客的链接。
还有一个问题。当可见行数小于底层记录数时,我们还需要计算在最后一个可见行之后发生的drop。在最后一个可见行之后删除时,MouseCoord(x,y).Y 返回 -1。
这是对 Uwe 代码的修改,以实现该目的:
编辑:正如我在原始问题中提到的,我对这个答案很感兴趣,以便修复我的代码中实现拖放到 DBGRid 中的行为。有了这个答案,我已经更新了我的拖放行为,并且我在我的博客中写了这个更新。您可以在以下 URL 找到此讨论,包括原始博客文章的链接:重新访问DBGrid 拖放