很简单一个存储过程://该存储过程名字为TELL_ME
(sname IN VARCHAR2) AS
BEGIN
UPDATE ONLYTEST
SET age = '0'
WHERE trim(name) = sname;
END;
在SQL*PLUS中exec TELL_ME('ryan')后,可以看到结果(ryan对应的age字段变为0);
但是在DELPHI中用存储过程调用:
adostoredproc2.Close;
adostoredproc2.Parameters.Clear;
adostoredproc2.Parameters.CreateParameter('sname',ftString,pdInput,20,'ryan');
adostoredproc1.ExecProc;
showmessage('OK');
执行完毕后,ryan对应的age字段仍然是原来的值,没有编程0。
请问这是为什么?
(sname IN VARCHAR2) AS
BEGIN
UPDATE ONLYTEST
SET age = '0'
WHERE trim(name) = sname;
END;
在SQL*PLUS中exec TELL_ME('ryan')后,可以看到结果(ryan对应的age字段变为0);
但是在DELPHI中用存储过程调用:
adostoredproc2.Close;
adostoredproc2.Parameters.Clear;
adostoredproc2.Parameters.CreateParameter('sname',ftString,pdInput,20,'ryan');
adostoredproc1.ExecProc;
showmessage('OK');
执行完毕后,ryan对应的age字段仍然是原来的值,没有编程0。
请问这是为什么?
这样试试:
adostoredproc2.Close;
adostoredproc2.ParamByName('sname').AsString := 'ryan';
adostoredproc2.ExecProc;