多物料进出仓系统 在添加物料时出现 这个错误提示:Can not perform this operation on a closed dataset
if RbtnMulti.Checked = true then //多物料
begin
//构造字符串
rec_set := '';
DBGridTmpView.DataSource.DataSet.First;
if DBGridTmpView.DataSource.DataSet.FieldByName('gid').AsString = '' then
begin
showmessage('请输入信息!');
exit;
end;
while not DBGridTmpView.DataSource.DataSet.eof do
begin
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('gid').AsString + '`';
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('gname').AsString + '`';
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('gunit').AsString + '`';
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('iosize').AsString + '`';
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('iomoney').AsString + '`';
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('iodate').AsString + '`';
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('remarks').AsString + '`';
rec_set := rec_set + DBGridTmpView.DataSource.DataSet.FieldByName('uid').AsString + '`';
rec_set := rec_set + ';';
DBGridTmpView.DataSource.DataSet.Next;
end;
//showmessage(rec_set);
with DataMo.ADOSProcMGio do
begin
close;
Parameters.ParamByName('@m_rec_set').Value := rec_set;
if RbtnPush.Checked = true then
Parameters.ParamByName('@m_iomark').Value := '1'
else
Parameters.ParamByName('@m_iomark').Value := '0';
Parameters.ParamByName('@m_stat').Value := '';
Parameters.ParamByName('@m_msg').Value := '';
execProc;
pmsg := Parameters.ParamByName('@m_stat').Value;
billno := Parameters.ParamByName('@m_msg').Value;
showmessage(pmsg+ ' 单号:' + billno);
RbtnSingle.Checked := true;
RefreshTables(billno,'');
end;
end;
请大侠帮帮忙!
本文来自eeworld博客:http://blog.eeworld.net/eallern/archive/2009/09/07/4529575.aspx
不能运行这个操作一个数据集中在
设置断点跟踪看看,那句的问题呀,
with DataMo.ADOSProcMGio do
begin
close;
随便就close 了 ?
就一个字,太乱了,
估计你错误的不只一个地方,看看库 字段类型吧,
楼主 先好好进行下分步 仿真,
根据每个模块的仿真图,好好分析下时序 和对应的逻辑是否正确吧、