我FROM仲有个COMBOBOX,当我输入数据后按提交,将数据存入数据库,但奇怪是,每运行一段时间,就会发生错误,access violation ....at '0000000',然后我发现COMBOBOX仲的数据没存入数据库,而且连COMBOBOX仲的数据也没掉拉,不知什么原因。
解决方案 »
- delphi写的一个服务程序问题
- WindowProc只能全局吗?能在类里面用吗?
- 来者有分 delphi 中如何使用 detours
- 我想把焦点移到Button1上后按回车等于Click操作,应该怎么写呢?(新手,请多指点!)
- 谁有 PsFRExportFilters 控件的最新注册版?万分感谢!在线等!!
- 如何将工程所有源代码整理成文档
- 怎样让DevExpress的TdxDBGrid在多行选择时能得到被选择的每一行的某一列对应值端内容?加急问题
- 关于字符串替换的问题,真正懂的人进来,没有充分试验的免谈
- 静态数组,动态数组,以及用getmem 分配内存,分配出来的内存内容是不是必为0,还是要自己初始化?
- delphi adodateset.Recount 记录显示为0,数据库里明明有数据
- 初学者的ado问题,高手指点。
- MCI 初始化失败
现金
支票
大户然后存盘时发现COMBOBOX中选择的数据没左,空白一个,然后就报错:access violation 77F58FF7 at use32.dll of at '000000000'(大概是这样)
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;