出货单有主表,从表。链接字段假如是 orderid 。
主表字段:
id , orderid , Custname ,.....
从表字段:
id , orderid , proname , nums , price ,......新增一个出货单,相关代码如下(其中,orders:TADOQrery):procedure Tfrm_neworders.ordersNewRecord(DataSet: TDataSet);
var Sql:string;
begin
     Sql:='select max(orderid) as DJID1 from ASales where kdDateTime between ' +''''+FormatDateTime('yyyy-mm-dd',now())+''''+
     ' and ' +''''+FormatDateTime('yyyy-mm-dd',now()+1)+''''+ '';
     dbedit1.Field.Value := GetZbBh(Sql);  //-dbedit1 为只读。
end;function Tfrm_neworders.GetZbBh(const Sql:String):string;
var rs:TAdoQuery;
    rCount,sLen:integer;
    BhLen,MaxBh,Bh:string;
begin
   BhLen:='000';
   rCount :=1;
   rs:=TAdoQuery.Create(application);
   rs.Connection:=dm.AdoConn;
   rs.SQL.Clear;
   rs.SQL.Add(Sql);
   rs.Open;
   if rs['DjID1']<>null then
   begin
      MaxBh:=rs['DjID1'];
         MaxBh:=Copy(MaxBh,Pos('-',MaxBh)+1,Length(MaxBh));
         rCount:=StrToint(MaxBh)+1;
   end;
   Bh := inttostr(rCount);
   sLen :=Length(Bh);
   Bh :=copy(BhLen,sLen+1,Length(BhLen)) + Bh;
   Bh :='ET' + Formatdatetime('yymmdd',now()) + '-' + Bh;
   rs.Close;
   rs.Free;
   Result:=Bh;
end;从表的 ordersid ,在保存前赋值 ordersid:=DBedit1.Field.Value就是这样,其中一个用户新增一个出货单,还没保存之前,另一个用户也新增一个出货单,这样得到的 ordersid 似乎是相同的。有什么办法解决吗?