我要删除数据库的记录,删除之前肯定要检验一下数据库里面是否有用户要删除的记录。
比如让用户输入一个记录的"代码"字段,根据这条字段删除这条记录。应该怎么做呢?
重要的是在怎么样判断用户输入的代码是否有这样的记录?
我想的是可以根据用户的输入查询一下,但查询之后有什么函数可以判断查询到了信息。
我用的是ADOQuery等ADO组件。
比如让用户输入一个记录的"代码"字段,根据这条字段删除这条记录。应该怎么做呢?
重要的是在怎么样判断用户输入的代码是否有这样的记录?
我想的是可以根据用户的输入查询一下,但查询之后有什么函数可以判断查询到了信息。
我用的是ADOQuery等ADO组件。
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select top 1 * from tabel1 where 代码=' + QuotedStr(需删除的代码));
Open;
if IsEmpty then
//没有记录,没有查询到信息
else
//查询到了信息
end;
end;
根据某些条件删除记录,当然只会删除符合条件的记录,如果要返回删除的记录的个数,可以用这样的语句:delete from table1 where 代码 = 'xxxx'
select @@ROWCOUNT --sql server中的系统变量,返回上一个语句受影响的记录个数
sql,FieldContent : string;
i : integer;
begin
sql := 'select * from TableName where FieldName = '''+FieldContent+'''';
AdoQueryName.Close;
AdoQueryName.SQL.Clear;
AdoQueryName.SQL.Add(sql);
AdoQueryName.Open;
if AdoQueryName.RecordCount > 0 then
begin
AdoQueryName.First;
for i := 1 to AdoQueryName.RecordCount do
begin
AdoQueryName.Delete;
AdoQueryName.Next;
end;
end;
end;
ADOTemp:TADOQuery;
tempstr,temp : string;
RecNo,i : integer;
begin
ADOTemp:=TADOQuery.Create(nil);
ADOTemp.Connection :=ADOCon;
tempstr:='select * from adm where strcomp(A_czr,:A_czr,0)=0 '; //如果用的是ACCESS,STRCOMP可以区分大小写混用的情况
ADOTemp.sql.Clear;
ADOTemp.SQL.Add(tempstr);
ADOTemp.Parameters.ParamByName('A_czr').Value:=e1.Text; //e1.text处可输入查询内容
ADOTemp.Open;
if ADOTemp.RecordCount>=1 then
begin
tempstr:='记录<'+e1.Text+'>存在!杀或留,请首座指示';
showmessage(tempstr);
end;
tempstr:='确实要删除本记录--'+edit1.text+' ?';
if(Application.MessageBox(pchar(tempstr),'删除',MB_YESNO)=IDNO) then
begin
exit;
end; tempstr:='delete from adm where A_czr=:A_czr ';
ADOTemp.sql.Clear;
ADOTemp.SQL.Add(tempstr);
ADOTemp.Parameters.ParamByName('A_czr').value:=edit1.text;
ADOTemp.ExecSQL;
ADOTemp.Free;
执行后
用 try findfirst 来判断是否有记录
如果有就可以删除 如果没有就不删除