Delphi XE2 中 TTable 和 TDBGrid 的意外行为

2024-01-22

我的表单上有一个文本框和一个网格。

功能:当我在文本框中输入与该员工 ID 相对应的员工 ID(例如 1、2、3 等)时,员工名称应该出现在数据库中的网格中。当我再次输入另一个 Emp ID 时,另一个 Emp 名称应该嵌入到下一行的网格中,依此类推......只要我愿意,就可以多次,但不行。 emp 名称应继续以这种方式出现在网格的下一行。

我想我已经尽力解释了我的问题。

我的方法

我为此使用 TTable、TDatasource 和 TDBGrid。当我在文本框中输入任何 Emp ID 并按 Enter 时,我会检查数据库中的 Emp Name,然后将该名称附加到 TTable。然后我将此 TTable 分配给 TDatasource,最后将 TDatasource 分配给 TDBGrid。以下是此操作的代码

Table1.Close;

//Create table for the first time

if not Table1.Exists  then
begin
      Table1.Close;

      Table1.DatabaseName    := 'databaseName';
      Table1.TableType           := ttParadox;
      Table1.TableName          := 'MyTable';
      Table1.FieldDefs.Clear;
      Table1.FieldDefs.Add('EmpName',ftString,40);
      Table1.CreateTable;

      Table1.Open;
end;

   Table1.Open;
   Table1.Append;
   Table1.FieldByName('EmpName').AsString := EmpName; //EmpName is fetched from database
   Table1.Post;
//Now assign this table to datasource
       DataSource1.DataSet := Table1;
//Now assign this datasource to dbgrid
       DBGrid1.DataSource := DataSource1;

我的问题:我的问题是,网格中显示的记录行为异常。记录不按正确的顺序显示,而是相互混合。意味着网格中的数据行不按我用来附加的顺序显示。可能是什么问题呢。我是否要在每次绑定或其他操作之前刷新一些数据源或 dbgrid?请帮忙。


要定义记录的顺序,您必须使用索引/主键。 像下面的代码一样添加它。

Table1.FieldDefs.Add('EmpId', ftAutoInc, 0, True);
Table1.FieldDefs.Add('EmpName', ftString, 40);
Table1.IndexDefs.Add('idxEmpId','EmpId',[ixPrimary]);
Table1.CreateTable;
Table1.Open;

您可以通过定义 DBGrid.Columns 属性来隐藏 EmpId,使其无法在网格中查看,其中仅显示必要的列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi XE2 中 TTable 和 TDBGrid 的意外行为 的相关文章

  • pg_restore错误:角色XXX不存在

    尝试将数据库从一个系统复制到另一个系统 涉及的版本是9 5 0 源 和9 5 2 目标 源数据库名称是foodb与主人pgdba并且目标数据库名称将被命名foodb dev与主人pgdev 所有命令都在将托管副本的目标系统上运行 The p
  • 研究MySQL、SQLite源码了解RDBMS实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道实现数据库是一个很大的话题 但我想通过研究数据库系统的源代码来基本了解数据库系统的工作原理 例如
  • 如何在Word 2010中从SQL数据库检索数据?

    我想用 MS SQL 数据库中的数据填充 Word 文档 这可能吗 如果可能的话 如何实现 我过去曾通过多种方式做到这一点 这取决于用户是从 Microsoft Word 外部还是从 Microsoft Word 内部启动操作 From I
  • 触发器与非规范化存储过程的优缺点

    当涉及到对事务数据库中的数据进行非规范化以提高性能时 至少 有三种不同的方法 通过存储过程推送更新 更新规范化交易数据和非规范化报告 分析数据 在事务表上实现更新辅助表的触发器 这几乎总是维护历史时所采取的路线 将处理推迟到夜间批处理 可能
  • TFrame继承重构

    我提出的另一个 TFrame IDE 注册组件问题 感谢各位程序员的帮助 尝试 Darrian 的 TFrame 继承建议here https stackoverflow com questions 382562 delphi visual
  • D2010编译行数差异

    构建项目时 有两个地方会报告源代码行数 在编译进度对话框中 项目下 信息 在 Delphi 2007 中 对于我们正在构建的项目 这两个数字是相同的 在 Delphi 2010 中 这两个数字截然不同 1st 计数多出 100 万行或 40
  • 连接所有 PostgreSQL 表并创建 Python 字典

    我需要加入allPostgreSQL 表并将它们转换为 Python 字典 数据库中有72张表 总列数大于1600 我编写了一个简单的 Python 脚本 该脚本连接多个表 但由于以下原因无法连接所有表内存错误 https gist git
  • 用于全文搜索和 2 亿多条记录的数据库

    我即将创建一个包含至少 2 亿个条目的庞大数据库 数据库需要可使用全文进行搜索 并且速度应该很快 我的数据库从许多不同的数据源获取数据 我需要定期导入新的或更新的数据 将我的所有数据存储在像 mysql 这样的关系数据库中 然后创建一个 n
  • (发件人:TObject)

    发件人 TObject 是什么意思 如 procedure TForm1 Button1Click Sender TObject var s Integer begin end Sender 是对触发事件的组件的引用 在这种情况下 Send
  • Delphi XE4 中是否可以更改应用程序短标题而不使其与项目 dpr 名称相同?

    我正在编写我的第一个由 delphi 驱动的 iPhone 应用程序 我已经创建了它 但我希望将其命名为 dpr 文件名称以外的名称 因为 dpr 文件不能包含空格 例如 EXE 名称并不总是与人们可能分配给应用程序的人类可读名称相同 而在
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • 在 Python 中,如果我有 unix 时间戳,如何将其插入 MySQL 日期时间字段?

    我正在使用 Python MySQLDB 我想将其插入 Mysql 中的 DATETIME 字段 我该如何使用cursor execute 来做到这一点 要将 UNIX 时间戳转换为 Python 日期时间对象 请使用datetime fr
  • 如何修复这个 delphi 7 编译错误 - “重复资源”

    我正在尝试编译我继承的 Delphi 7 项目 但收到此错误 错误 警告 重复资源 错误 类型 2 位图 ID 编辑 错误 文件 C 路径缩短 common CRGrid res 资源已保留 文件 c common raptree RES
  • Delphi - 如何使用 iPhone 作为图片源通过 OpenDialog 获取目录

    我有一个 Delphi 应用程序 D2010 它允许用户通过 OpenDialog 选择 JPG 文件 当我从普通 Windows 目录中选择文件时 我的 TOpenDialog Filename 包含该文件的完整路径 并且我的代码可以正常
  • 如何使用 SharedPreferences 保存多个值?

    我正在开发一个字典应用程序 在我的应用程序中 我假设用户想要保存最喜欢的单词 我决定使用共享首选项保存这些值 我知道 SQLite 和文件更好 但我坚持使用 SharedPreferences 所以继续使用它 下面是我的代码 Overrid
  • 在网格上拖动时拖动图像更改

    我正在 StartDrag 上创建自定义 DragObject 的实例 procedure TForm1 GridStartDrag Sender TObject var DragObject TDragObject begin DragO
  • 考虑到我的图像链接存储在MySQL数据库中,如何通过php显示存储在文件夹中的图像

    作为良好的做法 我只将图像链接存储在数据库中 问题是 我应该如何存储图像的链接 假设它在 c 上 c image jpg 我应该使用哪段 PHP 代码来显示该图像 我只显示路径 我该怎么做才能显示图像 我可以用这个吗 query SELEC
  • SQLite:从命令行仅将模式转储到 .sql 文件中

    我正在尝试转储架构test db仅 即没有数据 到名为的文件中schema sql从 OS X 中的命令行 无需启动 sqlite3 我知道我能做到 sqlite3 open test db output schema sql schema
  • 使用远程数据编写 Android、iPad、iPhone 客户端的技术

    我需要探索世界 你写了一个杀手级应用程序 但你有 Android iPhone iPad 客户端吗 我的问题是 1 向这些设备发送数据的最佳方式是什么 按照建议进行肥皂和休息here https stackoverflow com ques
  • Windows 更新后 Active 设置为 False 时 TIdHttpServer 冻结

    我们有一个 Indy 版本 10 6 1 5235 TIdHttpServer 服务 多年来一直与 Delphi 2007 配合良好 在最新的 Windows 更新 KB4338815 和 KB4338830 之后 我们注意到当 TIdHt

随机推荐

  • 使用 setup.py 自定义 python 包目录布局

    假设我有以下目录结构 src python generated init py a py lib init py b py 我的是什么setup py需要看起来像这样才能创建目录布局如下的 dist src python init py a
  • 使用任务并行库时如何处理所有未处理的异常?

    我正在使用 TPL 任务并行库 http msdn microsoft com en us library dd460717 28v VS 100 29 aspx 在 NET 4 0中 我想通过使用集中所有未处理异常的处理逻辑Thread
  • 在 pandas 数据框中映射值的范围[重复]

    这个问题在这里已经有答案了 如果之前有人问过这个问题 我深表歉意 但我广泛查看后没有结果 import pandas as pd import numpy as np df pd DataFrame data np random randi
  • Javascript 对 dom 的更改在按下后退按钮时丢失

    我有这个视图可以更改 div 内的文本 然后 用户可以单击链接跳转到另一个页面 但是当用户按下 后退 按钮时 所有 DOM 更改都会丢失 FF 会记住更改后的 div 文本 但 Chrome 和 IE 不会 我发现了类似的问题 但就我而言
  • CakePHP 3 上未找到“Locale”类问题

    我刚刚下载了文件这个链接 http bakery cakephp org articles lorenzo 2014 09 28 cakephp 3 0 0 beta2 released 提取并尝试执行 但出现此错误 Fatal error
  • 获得黑暗的外观和感觉? [复制]

    这个问题在这里已经有答案了 我厌倦了 Swing 的标准外观和感觉 需要一些看起来很酷的深色和黑色主题 作为秋千一部分的 DefaultMetal Ocean Motif 或 Windows 都不能满足我的需求 正在使用漂亮的图形用户界面
  • 如何在Eclipse中指定C++系统包含路径?

    GCC 有选项 isystem 将目录视为系统目录 这样就不会为这些目录生成编译警告 但是我在 Eclipse 中找不到类似的设置 我使用的是 Mars 2 Release 4 5 2 已尝试在 项目属性 C C 常规 预处理器包含路径 宏
  • 何时在数据库表之间使用一对一关系?

    一个数据库设计问题 你什么时候决定使用1对1关系表 我看到这种情况的地方之一是 例如 当您有一个 User 和 UserProfile 表时 人们会将它们分开 而不是将所有列都放在 User 表中 从技术上讲 您可以将所有列放在一个表中 因
  • Python ReportLab 使用 splitfirst/splitlast

    我正在尝试使用 Python 和 ReportLab 2 2 来创建 PDF 报告 根据用户指南 http www reportlab com docs userguide pdf 特殊 TableStyle 索引 原文如此 在任何样式命令
  • 在 purrr 的 map() 函数中使用 levene_test 吗?

    有没有办法通过进行 Levene 测试map 函数从purrr包裹 或者是否有另一种简单的方法来计算各种变量的 Levene 检验 我的数据框包含各种因子和数字列 所以我尝试使用map if 效果很好 例如 对于夏皮罗检验 但是 我不知道如
  • 在 Delphi 程序中托管 .NET 运行时

    我正在考虑在 Delphi 程序中使用一些 NET 代码 我需要使用 net 程序集和预定义函数使我的程序可扩展 我已经支持常规 DLL 经过网上大量搜索 我发现托管VCL http www managed vcl com 但我还没有准备好
  • 如何在 Xcode 8 上恢复之前的提交?

    假设我有 5 个本地提交 commit 1 commit 2 commit 3 commit 4 commit 5 当我工作的时候 我想回去提交2 我该怎么做呢 在以前版本的 Xcode 中使用快照非常容易 放弃更改 只会返回到提交 5 对
  • 如何从R中的Lasso回归获得系数?

    有人可以告诉我如何获取包中套索回归的系数lars in R 例如 如果代码如下 test lasso lars A B 谢谢 First get cross validation score test lasso cv cv lars A
  • 具有自定义颜色比例条的热图,用于低于和高于阈值的值

    我想在 R 中使用 pheatmap 制作一个热图 颜色为绿色 黑色和红色 并使用图例中的范围从 2 到 2 这是我使用的代码 library pheatmap my palette lt colorRampPalette c green
  • 如何在 C++ 中从向量中链接删除对?

    我有这个文本文件 我将每一行读入std vector
  • FireFox 3.5 重复获取图像精灵 - 如何防止?

    编辑 Mozilla 修复了该错误 该线程已死 编辑 这是一个 Mozilla 错误 请参阅此线程 https bugzilla mozilla org show bug cgi id 501853 https bugzilla mozil
  • Primefaces 数据表选定的行无法使用 viewscope 工作

    我正在使用 JSF 2 0 和 Primefaces 3 4 2 我有一个使用延迟加载填充的数据表 当我查看托管bean 的范围时 数据表 selectedRow 给出空指针异常 如果我使用会话范围 那么我可以在托管bean中获取selec
  • MYSQL 导入:无法从发送到 GEOMETRY 字段的数据中获取几何对象

    我最近升级到 MySQL 5 7 并尝试从 5 6 master 运行复制 但是复制失败并出现以下错误 Error Cannot get geometry object from data you send to the GEOMETRY
  • Android 支持的最大活动数量?

    我创建了一个带有选项卡和许多活动和子活动的应用程序 但是我得到了一个StackoverFlow 错误 这是因为堆栈中剩余的活动层数更多 现在我计划用单独的活动重建它 应用程序将需要近 30 个活动 并且我的活动中还有更多功能 所以我想知道活
  • Delphi XE2 中 TTable 和 TDBGrid 的意外行为

    我的表单上有一个文本框和一个网格 功能 当我在文本框中输入与该员工 ID 相对应的员工 ID 例如 1 2 3 等 时 员工名称应该出现在数据库中的网格中 当我再次输入另一个 Emp ID 时 另一个 Emp 名称应该嵌入到下一行的网格中