一个delphi7窗体上可以放多个配套的query和datasource控件么

 我来答
梦想软件工作室
2015-11-26 · TA获得超过537个赞
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:147万
展开全部
当然可以了,你可以看一下数据库的demo,里面就是十多个query,每个datasource与一个query相对应,名字直接按功能命名,那样还比较直观。
你可能在考虑内存占用吧,其实只要窗体上有了一个,剩下的随便你再放多少个,内存几乎没有什么增加的,因为各个实例之间代码共享,只保存自己的数据而已,你只要不同时打开太多的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;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式