我在追加数据前,想看一下数据是否重复,如果重复则不加,否则追加!
但在追加时不管我输入的记录数据表中有还是没有它都执行到 showmessage('ok!')!;
procedure Twzmc_form.Button4Click(Sender: TObject);
var
sl: integer;
begin
//sl:=0;
with dm.ADOQ2 do
begin
//sql.Clear;
sql.Text:='select count(*) as sl from wzmingcheng where wzbianma='''+DBEdit1.Text+'''';//(变量)录入的记录';
//showmessage(sql.text);
execsql;
end;
if (sl>=1) then
begin
showmessage('当前记录已经存在');
showmessage(inttostr(sl));
//dm.ADOQ2.Cancel;
end
else
begin
showmessage('ok!');
//dm.ADOQ2.Post;
showmessage(inttostr(sl));
end;
end;
谢谢,请各位帮忙!
但在追加时不管我输入的记录数据表中有还是没有它都执行到 showmessage('ok!')!;
procedure Twzmc_form.Button4Click(Sender: TObject);
var
sl: integer;
begin
//sl:=0;
with dm.ADOQ2 do
begin
//sql.Clear;
sql.Text:='select count(*) as sl from wzmingcheng where wzbianma='''+DBEdit1.Text+'''';//(变量)录入的记录';
//showmessage(sql.text);
execsql;
end;
if (sl>=1) then
begin
showmessage('当前记录已经存在');
showmessage(inttostr(sl));
//dm.ADOQ2.Cancel;
end
else
begin
showmessage('ok!');
//dm.ADOQ2.Post;
showmessage(inttostr(sl));
end;
end;
谢谢,请各位帮忙!
//showmessage(sql.text);
execsql;==============
在这个后面要赋值的
s1=dm.ADOQ2.fieldbyname('sl').asInteger;
==================
SQL语句中的sl并不会直接进到变量s1中,这是两回事儿
if RecordCount >=1 then
FIELD ‘SL’NOT FOUND。
var
sl: integer;
begin
//sl:=0;
with dm.ADOQ2 do
begin
//sql.Clear;
sql.Text:='select count(*) as sl from wzmingcheng where wzbianma='''+DBEdit1.Text+'''';//(变量)录入的记录';
//showmessage(sql.text);
open; ////////////这儿不能用execsql
end;
s1=fieldbyname('sl').asInteger; //////////注意这里要给s1赋值
if (sl>=1) then
begin
showmessage('当前记录已经存在');
showmessage(inttostr(sl));
//dm.ADOQ2.Cancel;
end
else
begin
showmessage('ok!');
//dm.ADOQ2.Post;
showmessage(inttostr(sl));
end;
end;
sl没有被赋值!!