我FROM仲有个COMBOBOX,当我输入数据后按提交,将数据存入数据库,但奇怪是,每运行一段时间,就会发生错误,access violation ....at '0000000',然后我发现COMBOBOX仲的数据没存入数据库,而且连COMBOBOX仲的数据也没掉拉,不知什么原因。

解决方案 »

  1.   

    我在COMBOBOX仲设置了几项
    现金
    支票
    大户然后存盘时发现COMBOBOX中选择的数据没左,空白一个,然后就报错:access violation 77F58FF7  at use32.dll of at '000000000'(大概是这样)
      

  2.   

    在发生错误的按钮中代码:
    procedure Tfrmsfjl.BtnallClick(Sender: TObject);
    var
    v_row:integer;
    begin
     if trim(edtpjbh.Text)='' then
     begin
      showmessage('请填写票据编号!');
      edtpjbh.SetFocus;
      exit;
     end;
      if trim(edtjfr.Text)='' then
     begin
      showmessage('请填写缴费单位人!');
      edtjfr.SetFocus;
      exit;
     end; if (CBoxJffs.ItemIndex<>0) and (CBoxJffs.ItemIndex<>1) and (CBoxJffs.ItemIndex<>2) then
     begin
      showmessage('请填写缴款方式!');
      CBoxJffs.SetFocus;
      exit;
     end; try
      if not dm.ADO_conn.Connected then dm.ADO_conn.Open;
      try
       //fyshen2005.05.07
         strsql:='select * from syn_sfjl where pjbh='''+edtpjbh.Text+''' and syqk=''1''';
         with dm.sfjl do
         begin
             close;
             SQL.Clear;
             sql.Add(strsql);
            open;
         end;
         if dm.sfjl.RecordCount>0 then
         begin
            showmessage('此票据已经作废,不可再使用');
             exit;
         end;
         //end;
         dm.ADO_conn.StartTransaction;     dm.sfjlq.Filter:='pjbh='''+edtpjbh.Text+'''';
         dm.sfjlq.Filtered:=true;
         dm.sfjlq.Open;
         dm.sfjlq.edit;
         dm.sfjlq.FieldByName('zsdw').AsString:=edtzsdw.Text;
         dm.sfjlq.FieldByName('lsh').AsString:=edtlsh.Text;
        dm.sfjlq.FieldByName('jfr').AsString:=edtjfr.Text;
        dm.sfjlq.FieldByName('kprq').AsString:=datetimetostr(DTPkprq.Datetime);
        dm.sfjlq.FieldByName('jffs').AsString:=cboxjffs.Text;
        dm.sfjlq.FieldByName('srje').AsString:=edtsrje.Text;
        dm.sfjlq.FieldByName('bz').AsString:=memobz.Text;
         dm.sfjlq.FieldByName('syqk').AsString:='0';
         dm.sfjlq.Post;
         dm.sfjlq.Close;     strsql:='select * from syn_sfjl where pjbh='''+edtpjbh.Text+'''';
         with dm.sfjl do
         begin
             close;
             SQL.Clear;
             sql.Add(strsql);
            open;
         end;
       //收费记录项目表(sfjlxm)
       strsql:='delete from syn_sfjlxm where pjbh='''+edtpjbh.Text+'''';
        with dm.sfjlxm do
        begin
            close;
             SQL.Clear;
             sql.Add(strsql);
            execsql;
         end;
       v_row:=sgall.RowCount;
       while v_row>1 do
       begin
         v_row:=v_row-1;
        if sgall.cells[0,v_row]<>'' then
        begin
            strsql:='insert into syn_sfjlxm(pjbh,bh,srje,sfsl,sfbz,sfxmbh) values('''+edtpjbh.text+''','''
            +dm.sfjl.Fieldbyname('bh').AsString+''','''+sgall.Cells[4,v_row]+''','''+sgall.Cells[2,v_row]+''','''
            +sgall.Cells[3,v_row]+''','''+sgall.cells[1,v_row]+''')';
       with dm.sfjlxm do
       begin
          close;
          SQL.Clear;
          sql.Add(strsql);
          Execsql;
       end;
       end;
       end;
        dm.ADO_conn.Commit;
        BtnPrint.Click;  //打印程序
         except
         dm.ADO_conn.Rollback;
        showmessage('无法查找到相关信息!');
      end;  dm.sfjl.Close;
      dm.sfjlxm.close;
    except
     showmessage('无法与数据库连接!');
     exit;
    end;
    end;
      

  3.   

    打印出来的报表不见了COMBOBOX中的数据,应该是打印前就没掉拉