是这样的有两个表
表product
id name
1 红豆
2 绿豆
3 黄豆表order
name amount(数量)
红豆 3
黄豆 6order中字段name是product.name的子集,要求对order有插入,删除,修改的操作,order中name做成多选框形式(内容为product的所有name值)当选中时,且后边的amount不为空才将信息上传(批量上传)至数据库表order中,有什么办法能实现吗?或用其他方式实现也可以,我都想了好几天了,紧急求救,多多感谢!
表product
id name
1 红豆
2 绿豆
3 黄豆表order
name amount(数量)
红豆 3
黄豆 6order中字段name是product.name的子集,要求对order有插入,删除,修改的操作,order中name做成多选框形式(内容为product的所有name值)当选中时,且后边的amount不为空才将信息上传(批量上传)至数据库表order中,有什么办法能实现吗?或用其他方式实现也可以,我都想了好几天了,紧急求救,多多感谢!
解决方案 »
- savedialog保存出现runtime error错误
- 谁会A*算法 用delphi写哦
- Treeview 为什么点击节点时 当前节点的图标就变了?烦恼中
- 郁闷!请高手解答!
- ███★★★★★为了混个熟面孔--------散分★★★★★███
- 我用了关联语名,就不能更改数据
- 怎么样用语句删除ACCESS数据库里OLE类型字段里的数据啊!
- 怎么安装第三方控件啊,请各位给出个详细步骤,谢谢了,我给你下跪了!!!!!!!!!!!!!!!!!!!!!!!!!!11
- 有没有真正的答案
- 请教该语句Application.ProcessMessages的作用?
- 谁能介绍点ADOStoredProc编程的实例,谢谢了。我查很多资料都找不到一个。
- olecontainer 里的word内容如何复制到粘贴板?????????
或者你说的再详细些,我最喜欢帮MM,呵呵(擦口水中……)
begin
s1:='select a.acount from order a where a.name=checkbox.caption';
adoquery1.sql.text:=s;
edit1.text:=adoquery1.fieldbyname('acount').asstring;
end;
先把ADO 连起来
这样就可以把数据显示出来啦
用一条INSERT INTO 语句就可以啦
可是checkbox.caption是从表product的name字段提取出来的,关键就在这!!且供选则的checkbox个数就是表product的纪录个数(name主键)
----------------------------------------------
又有点晕,到底界面上显示的是哪个表的name字段?在上传之前判断后面的edit框有没有内容不用说吧,教你一个简单的方法:你可以放两个query控件,一个操纵表product,一个操纵表order,虽然有点麻烦但简单易懂且不易出错
create table order(name varchar2(10),amount number(50);
insert into product(1,'红豆');
insert into product(2,'绿豆');
insert into product(3,'黑豆');
select p.name,nvl(o.amount,0) amount from product p,order o where p.name=o.name(+);
NAME AMOUNT
黑豆 0
红豆 0
绿豆 0
delphi中:
with adoquery1 do
begin
active:=fasle;
sql.clear;
sql.add(' select p.name,nvl(o.amount,0) amount from product p,order o ');
sql.add(' where p.name=o.name(+) ');
active:=true;
end;
dbgrid.dataSource:=adoquery1;这时在adoquery的update事件中写以下代码
begin
if :amount>0 then
insert into order values(:name,:amount);
end if;
end;