用一个ADOQuery就行,ADOQuery支持多表更新;用两个ADOQuery需要分别插入
解决方案 »
- 如何学习delphi2010
- C++结构中的union在delphi中对应什么?高手进
- 如何实现按回车后调用数据库的字库,用拼音码或五笔码输入物资名称!
- .dat文件用什么方法打开呢
- 用toolbar组件建的工具按钮,如何在按钮上显示文字呢?
- Delphi 中用 showmessage 怎么让对话框中的 OK 按钮变为中文呢?
- 我用hook技术编了一个监控键盘的程序,但每次安一个键,却发现了两次,应该怎样处理
- install shield我的DELPHI6中为什么没有?
- ^_^ 大家来UP:开辟J++ Builder专栏,同意者有分?
- 关于连接access 数据库?
- 哪里有下载tms 包中的TColumnComboBox 控件????
- 如何使自己的程序通过剪贴板与Excel交换数据?
如果主表用dbgrid1显示,则在
procedure Tform1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
adoquery2.Parameters.ParamByName('index').Value := dbgrid1.DataSource.DataSet.FieldByName('indx').Value;end;
这样就可以了
主表取不到“Indx”的自动编号值,这个值是数据库给自动编号的主键值,还没“UpdateBatch”到数据库,请问老兄,你的这句:
dbgrid1.DataSource.DataSet.FieldByName('indx').Value;
会取到值吗?
当dbgird1中用户选定不同的行时,:index也有不同的值
我这样设通过了啊!
这是在dbgrid1中有数据的情况下,我是说当dggrid1中没有数据时,然后插入数据,在dbgrid1中写数据,写完主表数据,然后再写dbgrid2从表中的数据(要写多行),写完这些以后,然后把主、从表中的数据一块提交给数据库。要是这样的话,你那句:dbgrid1.DataSource.DataSet.FieldByName('indx').Value;
根本取不到值!你试试看!
主从表的键值就等于该变量。
(不知道非oracle数据库是否可行)
然后取键值
再用取得的键值向从表添加记录
用两个ADOQuery操作
我是新手,只知道这样做
建议在主表post后取出indx的值,然后从表再post