
delphi 调用存储过程删除表格数据无效。
代码如下:varret:integer;beginproc_denglu.Close;proc_denglu.UnPrepare;proc_denglu.ParamByN...
代码如下:
var
ret:integer;
begin
proc_denglu.Close;
proc_denglu.UnPrepare;
proc_denglu.ParamByName('@username').AsString := trim(nedit.text);
proc_denglu.ParamByName('@password').AsString := trim(pwedit1.text);
proc_denglu.Prepare ;
proc_denglu.execproc;
ret := proc_denglu.ParamByName('@RETURN_VALUE').value;
//以上是一个注册表的查询存储过程,如果有数据返回数据‘1’,没有就返回‘0’。
if ret = 1 then
begin
del_proc.Close;
del_proc.UnPrepare;
del_proc.ParamByName('@uname_1').AsString := trim(nedit.text);
del_proc.Prepare;
del_proc.ExecProc;
showmessage('删除成功');
{如果有数据的,就调用数据库删除过程进行删除。以下是数据库的删除过程代码,语法检测正确:
CREATE PROCEDURE [delete_tb_login_2]
(@uname_1 [char])
AS DELETE [mydb].[dbo].[tb_login]
WHERE
( [uname] = @uname_1)
GO}
end
else
begin
showmessage('用户不存在或输入的数据错误!');//没有数据的时候或者密码输入错误都成功提示。
exit;
end;
以上的代码运行都正常 过程名在设计的时候指定的,所以参数自动生成。我只要给出参数的正确值就可以。但是运行的时候提示删除成功,到表格里去看的话,数据仍旧还在。过程执行没有效果。 展开
var
ret:integer;
begin
proc_denglu.Close;
proc_denglu.UnPrepare;
proc_denglu.ParamByName('@username').AsString := trim(nedit.text);
proc_denglu.ParamByName('@password').AsString := trim(pwedit1.text);
proc_denglu.Prepare ;
proc_denglu.execproc;
ret := proc_denglu.ParamByName('@RETURN_VALUE').value;
//以上是一个注册表的查询存储过程,如果有数据返回数据‘1’,没有就返回‘0’。
if ret = 1 then
begin
del_proc.Close;
del_proc.UnPrepare;
del_proc.ParamByName('@uname_1').AsString := trim(nedit.text);
del_proc.Prepare;
del_proc.ExecProc;
showmessage('删除成功');
{如果有数据的,就调用数据库删除过程进行删除。以下是数据库的删除过程代码,语法检测正确:
CREATE PROCEDURE [delete_tb_login_2]
(@uname_1 [char])
AS DELETE [mydb].[dbo].[tb_login]
WHERE
( [uname] = @uname_1)
GO}
end
else
begin
showmessage('用户不存在或输入的数据错误!');//没有数据的时候或者密码输入错误都成功提示。
exit;
end;
以上的代码运行都正常 过程名在设计的时候指定的,所以参数自动生成。我只要给出参数的正确值就可以。但是运行的时候提示删除成功,到表格里去看的话,数据仍旧还在。过程执行没有效果。 展开
1个回答
展开全部
DELETE from [mydb].[dbo].[tb_login]
WHERE
( [uname] = rtrim(@uname_1))
貌似少了个from,另外Char类型的,你值长度不够的话,会在后面自动被空,你在Delphi中trim过了也一样会补
WHERE
( [uname] = rtrim(@uname_1))
貌似少了个from,另外Char类型的,你值长度不够的话,会在后面自动被空,你在Delphi中trim过了也一样会补
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询