一个访问数据库表的问题

sharewarer 2003-08-31 09:06:10
我如在两个form(窗体)中都想访问同一个表(用database、table、datasource、datagrid等),当在一个form中对这个表进行增删改,在另一个form中对这个表进行报表打印或统计查询,可在运行程序时,总提示诸如“数据库(表)文件正被使用”等等,我估计是访问冲突。
如果两个form访问的表不是同一个时,就不会出错,可那样就实现不了功能,请问如何解决呢?
...全文
44 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ychuiming 2003-08-31
  • 打赏
  • 举报
回复
可以用Tquery,不要用TTable
foreveryday007 2003-08-31
  • 打赏
  • 举报
回复
当在一个form中对这个表进行增删改,
在另一个form中对这个表进行报表打印或统计查询
>>>>>
感覺有點奇怪,第二個FORM應該無所謂了,只是SELECT啊

sharewarer 2003-08-31
  • 打赏
  • 举报
回复
错误提示是:“。。。。。。其他进程正使用该文件,因此现在无法访问”这是怎莫回事?
估计“文件”指的是数据库文件吧,database和数据集控件都有active属性,是否和此有关?

另外,程序运行时,我并不是同时打开两个窗口,
bad_kit 2003-08-31
  • 打赏
  • 举报
回复
是什么类型的数据库?是否存在否个FORM独占情况?!
DBASE数据库的多用户做得不好,老出现这样的情况。
wdong18 2003-08-31
  • 打赏
  • 举报
回复
数据库中同一个表,同时出现在程序中的两个位置,像楼主所述的,在一个form中对这个表进行增删改,在另一个form中对这个表进行报表打印或统计查询。其实都是同一组数据,但是在程序中有多次表达。如果希望多次表达能够保持一致,只需要将它们的datasource设为相同即可。也就是说,同一个表的database、table、datasource都是相同,不同的只是Data Controls,比如dbgrid.这样就不会出现冲突。通常,把database、table、datasource这些控件放在单独的datamodule单元中,目的就是为了保持数据的一致性。但是,在“另一个form中对这个表进行报表打印或统计查询”的时候,就不要使用SQL的方法,因为SQL会改变dataset,导致另一个操作“对这个表进行增删改”出现不必要的麻烦。
zsy_good 2003-08-31
  • 打赏
  • 举报
回复
不需要同时把,一个窗口打开,一个窗口就要关闭,2个窗口用户也不好看啊。
使用
datasource,datagrid,adoquery,看看。
不要active 总等于真,在设计阶段就等于真,这样不好

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧