一个delphi7窗体上可以放多个配套的query和datasource控件么
展开全部
当然可以了,你可以看一下数据库的demo,里面就是十多个query,每个datasource与一个query相对应,名字直接按功能命名,那样还比较直观。
你可能在考虑内存占用吧,其实只要窗体上有了一个,剩下的随便你再放多少个,内存几乎没有什么增加的,因为各个实例之间代码共享,只保存自己的数据而已,你只要不同时打开太多的query即可。
举个例子,Delphi有个DataModal模块,专门就是用来放这些玩意的,便于管理。
你可能在考虑内存占用吧,其实只要窗体上有了一个,剩下的随便你再放多少个,内存几乎没有什么增加的,因为各个实例之间代码共享,只保存自己的数据而已,你只要不同时打开太多的query即可。
举个例子,Delphi有个DataModal模块,专门就是用来放这些玩意的,便于管理。
追问
你好,再追问下,因为我是刚刚接触delphi7的开发,我现在有一个需求,比如adoquery1连接了 数据库A表显示数据到dbgrid上,我现在要点击一个button,然后从dbgrid上抽数据处理后再通过 adoquery2 将数据插入数据库的B表,请问能直接拖两组adoquery, 然后在button的click事件里面编码实现么,如果可以的话,能吧主要的代码写下么,谢谢啦!
追答
这个是最基本的操作吧,当然可以了。代码就免了吧,麻烦啊,给你个思路:
在onclick函数中如下方式:
1、从q1获得数据并进行处理
因为已经关联了dbgrid,那么你在grid上选择某一行数据的时候,q1中的当前记录会自动改变的,你只需要:
姓名:=q1.fieldbyname('xm').asstring;
年龄:=q1.fieldbyname('nn').asinteger;
年龄:=年龄+5;
2、将得到的数据通过q2插入到表B中
两种方式,一种是先用q2打开表B,然后
q2.append;
q2.fieldbyname('nn').value:=年龄;
。。。
q2.post;
另一种是直接构造sql语句,使用q2执行即可,如:
q2.sql.text:='insert into B (姓名,年龄) values (:a1,:a2)';
q2.param.paramerterByname('a1'):=姓名;
q2.param.paramerterByname('a2'):=年龄;
q2.execsql;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询