首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

很急主表可以保存,从表不能保存,该如何处理

2012-02-19 
很急,主表可以保存,从表不能保存jh主表spjhfb从表withDataM.ADOQueryjhdobeginCloseSql.ClearSql.Text:

很急,主表可以保存,从表不能保存
jh   主表   spjhfb   从表

with   DataM.ADOQueryjh   do
    begin
        Close;
        Sql.Clear;
        Sql.Text:= 'insert   into   jh(单号,客户名称,日期)   values   (N ' ' '+Trim(Edit1.Text)+ ' ' ', ' ' '+Trim(Edit3.Text)+ ' ' ', ' ' '+Edit2.Text+ ' ' ') ';
        ExecSql;
    end;
with   DataM.ADOQueryjh   do
        begin
          Close;
          //pen;
        Sql.Text:= 'select   *   from   jh ';
        open;
    end;

with   DataM.ADOQueryspjhfb   do
      begin
        Close;
          Sql.Clear;
        //Sql.Text:= 'select   *   from   jh,spjhfb   where   jh.单号=spjhfb.单号 ';
          Sql.Text:= 'insert   into   spjhfb(单号,客户名称,日期)   values(N ' ' '+DataM.ADOQueryjh.FieldByName( '单号 ').AsString+ ' ' ', ' ' '+DataM.ADOQueryjh.FieldByName( '客户名称 ').AsString+ ' ' ', ' ' '+DateToStr(StrToDate(DataM.ADOQueryjh.FieldByName( '日期 ').AsString))+ ' ' ') ';
          ExecSql;
          //open;
          end;
        DataM.ADOConn.BeginTrans;
        try
          DataM.ADOQueryspjhfb.UpdateBatch(arAll);
          DataM.ADOQueryjh.UpdateBatch(arAll);
          DataM.ADOConn.CommitTrans;
        except
          DataM.ADOConn.RollbackTrans;
          raise   Exception.Create( '操作返回 ');
          end;

[解决办法]
定义数据库的时候两个表之间有没有什么约束关系啊
[解决办法]
提示什么错误
[解决办法]
在DataM.ADOQueryspjhfb的属性中设置DataSource了吗

[解决办法]
//open;

你数据集没打开,把数据集打开,

[解决办法]
主从表保存 没有什么特殊的做法
就是保存主 保存从
只要约束不冲突
都可以成功的
我估计还是你的语句问题
[解决办法]
里面的漏洞太多,一则没有打开,二则没有POST(插入进去了,没有作保存),当然是存在进去
with DataM.ADOQueryjh do
begin
Close;
Sql.Clear;
open;/首先的打开
Sql.Text:= 'insert into jh(单号,客户名称,日期) values (N ' ' '+Trim(Edit1.Text)+ ' ' ', ' ' '+Trim(Edit3.Text)+ ' ' ', ' ' '+Edit2.Text+ ' ' ') ';
// ExecSql;//此处应当不用这个方法吧,此方法不返回值;
post;//应加上post方法,将插入的数据保存
end;

[解决办法]
try
DataM.ADOQueryspjhfb.UpdateBatch(arAll);
DataM.ADOQueryjh.UpdateBatch(arAll);
DataM.ADOConn.CommitTrans;


except
DataM.ADOConn.RollbackTrans;
raise Exception.Create( '操作返回 ');
end;
这写语句有问题,你自己写SQL语句更新的时候就不能再写UpdateBatch这种方法,UpdateBatch是说你暂时保存在内存中,然后调用UpdateBatch把所有数据更新到数据库中,可以参考李维的ADO书。
另外楼主下次发帖注意换行和代码格式,要不然太难看了。

[解决办法]
字段类型一样吗?
你的N要在单引号内吧

热点排行