dbgrid或dbgridEh中某一字段的值从另一个表中提取,如何实现?对面的大虾看过来!!看过来!!!!!有MM

dashi111 2005-05-17 02:09:26
是这样的有两个表
表product
id name
1 红豆
2 绿豆
3 黄豆

表order
name amount(数量)
红豆 3
黄豆 6

order中字段name是product.name的子集,要求对order有插入,删除,修改的操作,order中name做成多选框形式(内容为product的所有name值)当选中时,且后边的amount不为空才将信息上传(批量上传)至数据库表order中,有什么办法能实现吗?或用其他方式实现也可以,我都想了好几天了,紧急求救,多多感谢!
...全文
278 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dashi111 2005-05-18
  • 打赏
  • 举报
回复
To:Hellolongbin

呵呵,是想两个都显示呢,因为order中的name是product的子集,所以如果是表order里的内容则在product.name前边打勾,不知道能不能实现呢?唉,好像是我表达能力不太好呀!
kmlinda 2005-05-17
  • 打赏
  • 举报
回复
create table product(id number(3),name varchar2(10));
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;
hellolongbin 2005-05-17
  • 打赏
  • 举报
回复
order中name做成多选框形式(内容为product的所有name值)当选中时,且后边的amount不为空才将信息上传

是在界面上显示product中name字段的内容供用户选择,但不是combobox下拉形式的,是把所有内容用checkbox形式显示,并且后边对应Edit框填写与之对应的产品数量,最后传至表order中!明白?
----------------------------------------------
又有点晕,到底界面上显示的是哪个表的name字段?

在上传之前判断后面的edit框有没有内容不用说吧,教你一个简单的方法:你可以放两个query控件,一个操纵表product,一个操纵表order,虽然有点麻烦但简单易懂且不易出错
dashi111 2005-05-17
  • 打赏
  • 举报
回复
To woshilyy:
可是checkbox.caption是从表product的name字段提取出来的,关键就在这!!且供选则的checkbox个数就是表product的纪录个数(name主键)
woshilyy 2005-05-17
  • 打赏
  • 举报
回复
要传回ORDER表
用一条INSERT INTO 语句就可以啦
woshilyy 2005-05-17
  • 打赏
  • 举报
回复
if checkbox1.checked then
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 连起来
这样就可以把数据显示出来啦
narutokkxi 2005-05-17
  • 打赏
  • 举报
回复
接分~`` 向带星的同志致敬!
dashi111 2005-05-17
  • 打赏
  • 举报
回复
MM可不都是美女呦!!
dashi111 2005-05-17
  • 打赏
  • 举报
回复
To 龙飞白水

dbgrid的datasouce对应 表order,那么dbcheckbox中怎么提取表product中name字段的所有内容供选择呢?能说的详细些吗?
dashi111 2005-05-17
  • 打赏
  • 举报
回复
是在界面上显示product中name字段的内容供用户选择,但不是combobox下拉形式的,是把所有内容用checkbox形式显示,并且后边对应Edit框填写与之对应的产品数量,最后传至表order中!明白?
hellolongbin 2005-05-17
  • 打赏
  • 举报
回复
怎么没大看懂?你是要在程序界面上显示order的内容供客户选取么?批量上传是什么意思?我没看出你的问题难点在哪,选择的时候直接判断amount的值不可以么?
或者你说的再详细些,我最喜欢帮MM,呵呵(擦口水中……)
hellolongbin 2005-05-17
  • 打赏
  • 举报
回复
我是进来看MM的,呵呵
leetzh 2005-05-17
  • 打赏
  • 举报
回复
可以增加一个字段(DBCheckBox),用来判断是否需要上传.另外amount为空的用sql语句就可以过滤。
dashi111 2005-05-17
  • 打赏
  • 举报
回复
自己先顶了,如果我说我是MM,有人相信吗?哈哈!!!!!!
内容概要:本文系统研究了构网型变流器的正负序阻抗解耦特性及其在弱电网环境下的稳定性表现,重点依托Matlab/Simulink仿真平台,构建了详细的阻抗数学模型,设计了解耦控制策略,并采用小信号扫频法进行频域辨识与稳定性验证。研究深入探讨了构网型变流器与传统跟网型逆变器在正负序阻抗特性上的本质差异,结合虚拟同步发电机(VSG)等先进控制技术,分析其在抑制宽频带振荡、削弱锁相环动态耦合等方面的优越性。文不仅提供了完整的仿真模型与MATLAB代码实现,还整合了光伏、风电、储能、微电网等多类新能源系统的阻抗建模与稳定性分析资源,形成了一套面向新型电力系统稳定性的综合性技术资料体系,具有较强的科研复现与工程参考价。; 适合人群:面向具备电力电子、电力系统自动化、新能源并网等专业背景的研究生、高校教师及工程技术人员,特别适用于从事阻抗建模、小干扰稳定性分析、宽频振荡机理研究以及撰写高水平学术论文的科研工作者。; 使用场景及目标:①掌握构网型变流器正负序阻抗建模与扫频辨识的仿真方法;②深入理解VSG等构网型控制在弱电网提升稳定性的内在机理;③复现顶刊论文的阻抗分析流程与稳定性判据应用;④利用提供的成熟模型与代码加速科研进程,支撑课题研究与学术成果产出。; 阅读建议:建议结合文提供的Simulink模型与MATLAB代码,按照“理论建模—仿真搭建—扫频激励—频响提取—Nyquist判据分析”的完整流程进行实践操作,重点关注扫频信号的注入方式、频率范围设置及阻抗曲线的物理意义解读,并参考博士论文复现案例深化对复杂动态耦合问题的理解。

2,508

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧