大家看一下这段代码:
procedure TMyData.T_BuyNewRecord(DataSet: TDataSet);
var counter:integer;
id:string;
begin
with t_countergoods do
begin
filter:='编号=''B''';
filtered:=true;
open;
counter:=fieldbyname('值').AsInteger;
inc(counter);
edit;
fieldbyname('值').AsInteger:=counter;
post;
close;
end;
id:='000'+inttostr(counter);
id:=copy(id,length(id)-3,4);
id:=formatdatetime('yyyymm',now)+id;
with dataset do
begin
Edit;
fieldbyname('合同编号').AsString:=id;
fieldbyname('执行状态').AsString:='U';
fieldbyname('签署日期').AsDateTime:=now;
fieldbyname('买卖').AsString:='B';
fieldbyname('厂家代码').AsString:='AAAAAA';
post;
end;
end;
我按了“添加”后,却出现什么“未知错误”,什么东西嘛,太光火了。而且是什么EOleException,气晕了。
procedure TMyData.T_BuyNewRecord(DataSet: TDataSet);
var counter:integer;
id:string;
begin
with t_countergoods do
begin
filter:='编号=''B''';
filtered:=true;
open;
counter:=fieldbyname('值').AsInteger;
inc(counter);
edit;
fieldbyname('值').AsInteger:=counter;
post;
close;
end;
id:='000'+inttostr(counter);
id:=copy(id,length(id)-3,4);
id:=formatdatetime('yyyymm',now)+id;
with dataset do
begin
Edit;
fieldbyname('合同编号').AsString:=id;
fieldbyname('执行状态').AsString:='U';
fieldbyname('签署日期').AsDateTime:=now;
fieldbyname('买卖').AsString:='B';
fieldbyname('厂家代码').AsString:='AAAAAA';
post;
end;
end;
我按了“添加”后,却出现什么“未知错误”,什么东西嘛,太光火了。而且是什么EOleException,气晕了。
filter:='编号=B';//错了
filtered:=true;
// open;//错了, 之前就必须打开
counter:=fieldbyname('值').AsInteger;
inc(counter);
edit;
fieldbyname('值').AsInteger:=counter;
post;
var counter:integer;
id:string;
begin
with t_countergoods do
begin
filter:='编号=''B''';
filtered:=true;
open;
counter:=fieldbyname('值').AsInteger;
inc(counter);
edit;
fieldbyname('值').AsInteger:=counter;
post;
end;
id:='000'+inttostr(counter);
id:=copy(id,length(id)-3,4);
id:=formatdatetime('yyyymm',now)+id;with dataset do
begin
Close ;
Open ;
//Go to the Record
Edit;
fieldbyname('合同编号').AsString:=id;
fieldbyname('执行状态').AsString:='U';
fieldbyname('签署日期').AsDateTime:=now;
fieldbyname('买卖').AsString:='B';
fieldbyname('厂家代码').AsString:='AAAAAA';
post;
end;
end;
告诉我你的要求,需要做什么达到什么样的目的 ?Filter 我不怎么用,上面的代码也没有测试,今天也很不开心,如果错了请包涵
fieldbyname('签署日期').AsDateTime:=now;
fieldbyname('买卖').AsString:='B';
fieldbyname('厂家代码').AsString:='AAAAAA';上,但“未知错误”让我怎么知道具体是什么错误?见鬼!
except
on e : Exception do
ShowMessage(e.Message) ;
end ;看看具体是什么错误,还不行就用一个测试数据单步跟一下 // 其实单号你可以写一个函数来获得然后将数据一次插入表中
filter:='编号='+#39+'B'+#39;
begin
filtered := False; //****
filter:='编号=''B''';
filtered:=true;
open;
counter:=fieldbyname('值').AsInteger;
inc(counter);
edit;
fieldbyname('值').AsInteger:=counter;
post;
close;
end;
你的程序是dll吗?是不是用ADO连的数据库?不是就当我没说。是的话,必须加上CoInitialize() !!!
最后还要加上 CoUnInitialize 释放
但是如果你不是在DLL中調用,就不用進行初始化了,哈