现在要一个多行数据录入界面,最后将所有数据一次性提交到数据库!而Delphi的DBGrid只能完成一行增加后,再点击按钮增加!这样的数据输入不太方便!()
偶的办法是做一个数据不敏感DBGrid控件(delphi的DBGrid是Data-ware控件)。可是工作量太大,现在又要的急!所以只有投机取巧:
偶的办法是:adoquery1通过datsource1和dbgrid1相连.现在为了实现多行输入,根据adoquery1.Fielddefs另建一个adoQuery2的数据结构,去掉primary key等约束条件,这样才能增加多行空数据,并将adoquery1的数据倒入到adoQuery2中,同时插入N(如10行)行空数据,将adoQuery2连接到DBGrid1上,这样就可以完成多行输入的功能。
问题是:adoquery1数据到adoQuery2的数据复制,偶的办法是adoquery1.savetofile(...),adoquery2.LoadFromFile(...),如果数据库巨大,肯定会影响到数据库的效率。如果用adoquery2.recordset := adoquery1.recordset 则带上adoquery1的primary key等约束条件,不能滞要求.....
请问:能否用程序修改adoquery2的primary key等约束条件信息, adoconnection有一个openschema方法,可是偶没有找到Setschema等方法
哪位大侠能帮忙,不胜感激@!
偶的办法是做一个数据不敏感DBGrid控件(delphi的DBGrid是Data-ware控件)。可是工作量太大,现在又要的急!所以只有投机取巧:
偶的办法是:adoquery1通过datsource1和dbgrid1相连.现在为了实现多行输入,根据adoquery1.Fielddefs另建一个adoQuery2的数据结构,去掉primary key等约束条件,这样才能增加多行空数据,并将adoquery1的数据倒入到adoQuery2中,同时插入N(如10行)行空数据,将adoQuery2连接到DBGrid1上,这样就可以完成多行输入的功能。
问题是:adoquery1数据到adoQuery2的数据复制,偶的办法是adoquery1.savetofile(...),adoquery2.LoadFromFile(...),如果数据库巨大,肯定会影响到数据库的效率。如果用adoquery2.recordset := adoquery1.recordset 则带上adoquery1的primary key等约束条件,不能滞要求.....
请问:能否用程序修改adoquery2的primary key等约束条件信息, adoconnection有一个openschema方法,可是偶没有找到Setschema等方法
哪位大侠能帮忙,不胜感激@!
try
//do something
AdoConnection1.CommitTrans;
except
AdoConnection1.RollbackTrans;
end;
进入界面后先增加n个行,用户输入后再post
哈哈!高!偶就是用这个办法解决问题了. adoquery用ltBatchOptimistic。真踏破铁鞋无觅处,得来全不费功夫!