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;

以上的代码运行都正常 过程名在设计的时候指定的,所以参数自动生成。我只要给出参数的正确值就可以。但是运行的时候提示删除成功,到表格里去看的话,数据仍旧还在。过程执行没有效果。
展开
 我来答
百度网友9669419a2
2010-11-29 · TA获得超过316个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:103万
展开全部
DELETE from [mydb].[dbo].[tb_login]

WHERE
( [uname] = rtrim(@uname_1))

貌似少了个from,另外Char类型的,你值长度不够的话,会在后面自动被空,你在Delphi中trim过了也一样会补
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式