怎么方便快捷的取消对数据库表的更改

wzzwwz 2009-09-20 08:49:23
一个用MySQL的进销存。数据的主要表现形式是帐单。操作主要是添加和修改他们。
添加账单问题不大,如果取消添加,直接删掉原来的数据就行了
在编辑过程中用户可以随时取消已经做出的修改,这个让我发愁。
原来用事务,自己才疏学浅,现在才知道多事务会产生死锁问题。
打算用临时表。结果刚才又被雷劈了——两个临时表,UPDATE语句中对另外一个进行子查询,报错了。
用常规表吧。又不太甘心。因为这样每种帐单都要新建两套表了。
虚心请教大家的高招,谢过!
...全文
179 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinoalex 2009-09-21
  • 打赏
  • 举报
回复
我一般是用临表,因为有时是需要统计新增的数据.
fenshm 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wzzwwz 的回复:]
引用 5 楼 bdmh 的回复:
提供一种思路,用非db的grid,把数据库数据读出显示在grid中, 这样操作grid,不影响数据库,最后,统一将数据库写入数据库(可以先将原始数据删除),这样的操作适合一次性读出数据不大的情况

也想过,但有些特性就用不了了,比如用SQL统计某个字段,非DBGrid中的数字只能自己统计了吧
现在时间比较紧。推倒重来也不大行。以后有时间了我再慢慢试验

引用 4 楼 wxsan 的回复:
不知道是不是和MySQL的特性有关系,很少用MySQL,帮你顶了!

临时表问题,应该是MySQL特性造成的吧


现在,实在不行还是用两套表的方案,解一下急再说。
[/Quote]
恩~!UP~!
wzzwwz 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 s11ss 的回复:]
引用 9 楼 de410 的回复:
该说的方法大家都说了~~其他还真没有了~~

这个可以有……
[/Quote]
这个……真没有

PS:结贴了。我也水一贴
wzzwwz 2009-09-21
  • 打赏
  • 举报
回复
分数有限,没法给其他朋友更多的分,请见谅~
谢谢大家的关注和参与
s11ss 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 de410 的回复:]
该说的方法大家都说了~~其他还真没有了~~
[/Quote]
这个可以有……
wzzwwz 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bdmh 的回复:]
提供一种思路,用非db的grid,把数据库数据读出显示在grid中, 这样操作grid,不影响数据库,最后,统一将数据库写入数据库(可以先将原始数据删除),这样的操作适合一次性读出数据不大的情况
[/Quote]
也想过,但有些特性就用不了了,比如用SQL统计某个字段,非DBGrid中的数字只能自己统计了吧
现在时间比较紧。推倒重来也不大行。以后有时间了我再慢慢试验

[Quote=引用 4 楼 wxsan 的回复:]
不知道是不是和MySQL的特性有关系,很少用MySQL,帮你顶了!
[/Quote]
临时表问题,应该是MySQL特性造成的吧


现在,实在不行还是用两套表的方案,解一下急再说。
bdmh 2009-09-21
  • 打赏
  • 举报
回复
提供一种思路,用非db的grid,把数据库数据读出显示在grid中, 这样操作grid,不影响数据库,最后,统一将数据库写入数据库(可以先将原始数据删除),这样的操作适合一次性读出数据不大的情况
wxsan 2009-09-21
  • 打赏
  • 举报
回复
不知道是不是和MySQL的特性有关系,很少用MySQL,帮你顶了!
wzzwwz 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 newfang 的回复:]
楼主看看ApplyUpdates,另外,用临时表是可以解决问题的,只不过再修改时要优先临时表里的数据,如果临时表里存在此记录,则修改临时表里的数据。
[/Quote]
[Quote=引用 2 楼 dinoalex 的回复:]
我一般是用临表,因为有时是需要统计新增的数据.
[/Quote]
谢谢两位的参与。
ApplyUpdates目前不适合我。修改账单时我大部分用SQL的UPDATE更改的。用SQL修改的原因是原来用ADO时,用DataSet修改出错。
我想用临时表的,临时表名也没有和正式表重名。我需要同时操作这两个表。不能让正式表被遮盖。
但用update指令更新主表(临时表)时用子查询sum副表一个列(临时表)时会出错(用的MySQL,在网上搜了一下,出现此问题的不是我一个)
de410 2009-09-21
  • 打赏
  • 举报
回复
该说的方法大家都说了~~其他还真没有了~~
wzzwwz 2009-09-21
  • 打赏
  • 举报
回复
其他朋友还有要说的吗?
newfang 2009-09-20
  • 打赏
  • 举报
回复
楼主看看ApplyUpdates,另外,用临时表是可以解决问题的,只不过再修改时要优先临时表里的数据,如果临时表里存在此记录,则修改临时表里的数据。

2,497

社区成员

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

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