query中怎么用SQL语句把dbgrid中输入(包括插入和更新)的数据放入数据库中?(100分)

  • 主题发起人 主题发起人 YNTW
  • 开始时间 开始时间
Y

YNTW

Unregistered / Unconfirmed
GUEST, unregistred user!
query中怎么用SQL语句把dbgrid中输入(包括插入和更新)的数据放入数据库中?
一般dbgrid都是连接table,连接query也只是用于select语句,现在要用insert和update
语句,这个语句怎么写?别告诉我用table,因为table解决不了我的问题。
理由1:需要用代码控制数据入库,用table达不到控制的目的;
理由2:需要入库的数据分别进入不同的表,表之间用关键字连接,不能要求用户输入多次
关键字。
 
如果你的query不是从多个表提取数据,(有些数据库对排序也不能直接修改)只要将requestlive
置成true即可。

如果排序(但是是从单个表提取数据),须要用updatesql控件。将query的updateobject置成updatesql
再设置updatesql的deltesql,insertsql,modifysql.
 
补充一句,我用的是adoquery,能不能使用updatesql?
我的问题其实就是我在dbgrid中输入或修改数据(这只对其中一个表,它的关键字段没有
显示在dbgrid中,而是用了前面某个edit的text),我希望用adoquery的insert或update
方法提交数据,以便在用户取消或是有错误数据出现时能够不让dbgrid中的数据入库。
 
用ADOQuery和ADOTable都是可以的啊!如果涉及多表查询数据的修改,一般数据库系统
都是不行的。一般情况只要响应它们的OnNexRecord之类的事件,将Edit.Text的值付给表中的关键
字段的Value就行了啊!如果要处理它的更新,可以在BeforePost中写程序就行了,也可用
简单的Commit和RollBack都行啊!
不知你用的是不是主从表,如果是你这样写是十分不安全的:
用户对关键字的输入(Edit.Text)都可能造关键字的重复!
用户对关键字的修改会造主表的插入!问题一大堆!
我现在就在维护一个弱智写的东西,主从表就是这样写的,真是@#$@$!@#$!
个人认为:
千万不要认这用户输入表中的关键字!!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


 
Sorry,没有看完:
别告诉我用table,因为table解决不了我的问题。
理由1:需要用代码控制数据入库,用table达不到控制的目的;
理由2:需要入库的数据分别进入不同的表,表之间用关键字连接,不能要求用户输入多次
关键字。
建个临时表就可以了,按上面的方法只能实现多个表在多个Grid中的操作,一个表对一个
Grid如果你非要在一个Grid中操作的话,就用临时表好了,创建一个象你所视图的临时表
所有的数据存在临时表中,再用一个过程实现逐一Insert,Updata(要复杂一点)。

又:你是昆明的吗?
 
diamond access1.97不错!
 
我换用stringgrid,总算把问题搞定了,可以结束了。
 
后退
顶部