当前位置: 代码迷 >> Oracle管理 >> 用Delphi写数据保留功能时报错,提示缺少逗号
  详细解决方案

用Delphi写数据保留功能时报错,提示缺少逗号

热度:139   发布时间:2016-04-24 04:14:11.0
用Delphi写数据保存功能时报错,提示缺少逗号
本帖最后由 u010587619 于 2014-09-15 15:52:35 编辑
procedure TFormBillMainEdit.InsertBill(ABillClassCode, AParentBillNo: string);
var
  sqlstr: string;
  iRet, idx: integer;
  tmpBillNo: string;
  ABillClass: string;
  CHBillClassCode: string;
  SYSDATE: string;
  i, bill_no : string;
  j : integer;
begin
  iRet := dmc.ADOBeginTrans;

  if iRet = 0 then
  sqlstr :=  'SELECT FormatDateTime(''''YYYYMMDD'''', now)   FROM CX_BILL_MAIN WHERE SUBSTR(FBILL_NO,1,8)= '''+FormatDateTime('YYYYMMDD', now)+''' ';
    if sqlstr <> '' then begin
       sqlstr := '';
       sqlstr := sqlstr +  'SELECT '''+FormatDateTime('YYYYMMDD', now)+''' ||LPAD(SUBSTR(MAX(FBILL_NO),9,4)+1,4,0) FBILL_NO FROM CX_BILL_MAIN WHERE SUBSTR(FBILL_NO,1,8)= '''+FormatDateTime('YYYYMMDD', now)+''' ';
       tmpBillNo := sqlstr;
       end
    else
    begin
       tmpBillNo := FormatDateTime('YYYYMMDD', now) + dmo.GetListNo(FormatDateTime('YYYYMMDD', now) + sys.User.name, 4);
    end;
//  if Length(tmpBillNo) = 12 then  iRet := 0 else iRet := -1;

  if iRet = 0 then begin
    sqlstr := '';
    Sqlstr := sqlstr + 'select fuser_name, fbill_class_code, fbill_class, fchildren_bill_class_code ';
    sqlstr := sqlstr + 'from cx_bill_class where fuser_name = ''' + sys.User.name + ''' ';
    sqlstr := sqlstr + 'and fbill_class_code= ''' + ABillClassCode + ''' ';
    iRet := dmc.ADOGetData(sqlstr);
    CHBillClassCode := '';
    ABillClass := '';
    if iRet = 0 then begin
      ABillClass := dmc.ADOQuery.FieldByName('fbill_class').AsString;
      CHBillClassCode := dmc.ADOQuery.FieldByName('fchildren_bill_class_code').AsString;
    end;
  end;

  if iRet = 0 then begin
    sqlstr := '';
    sqlstr := sqlstr + 'insert into cx_bill_main (fbill_no, fyear, fmonth, fday, fbill_class, ';
    sqlstr := sqlstr + 'fpay_unit_code, fpay_unit_name, fpay_province, fpay_city, fpay_bank_code, fpay_bank_name, fpay_account_no, ';
    sqlstr := sqlstr + 'fpayee_unit_code, fpayee_unit_name, fpayee_province, fpayee_city, fpayee_bank_code, fpayee_bank_name, fpayee_account_no, ';
    sqlstr := sqlstr + 'fpurpose, ftmoney, fbill_from, fbill_to, fproof_year, fproof_month, fproof_day, fproof_no, ';
    sqlstr := sqlstr + 'fparent_bill_no, freport_flag, fprint_times, fuser_name, fcreate_time, fcreate_method ) values ( ';
    sqlstr := sqlstr + '''' + tmpBillNo + ''',''' + FormatDateTime('YYYY', dtTime.DateTime) + ''',''' + FormatDateTime('MM', dtTime.DateTime) + ''',''' + FormatDateTime('DD', dtTime.DateTime) + ''', ';
    sqlstr := sqlstr + '''' + ABillClass + ''', ';
    sqlstr := sqlstr + '''' + edtPayUnitCode.Text + ''',''' + edtPayUnit.Text + ''',''' + edtPayProvince.Text + ''',''' + edtPayCity.Text + ''',''' + edtPayBankCode.Text + ''', ';
    sqlstr := sqlstr + '''' + edtPayBankName.Text + ''', ''' + edtPayAccountNo.Text + ''',';
    sqlstr := sqlstr + '''' + edtPayeeUnitCode.Text + ''',''' + edtPayeeUnit.Text + ''',''' + edtPayeeProvince.Text + ''',''' + edtPayeeCity.Text + ''',';
    sqlstr := sqlstr + '''' + edtPayeeBankCode.Text + ''',''' + edtPayeeBankName.Text + ''',''' + edtPayeeAccountNo.Text + ''', ';
    sqlstr := sqlstr + '''' + edtPurpose.Text + ''',''' + FloatToStr(ETMoney()) + ''',null,null,null,null,null,''' + edtProofNo.Text + ''', ';
  相关解决方案