jjw

写给自己的博客。 记录学习的点滴以备查。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

mormot2 笔记(五) 储存过程调用

Posted on 2024-01-07 00:04  jjw  阅读(106)  评论(0编辑  收藏  举报
procedure TForm1.Button1Click(Sender: TObject);
var
  v: variant;
begin
{
[ODBC]
DRIVER=SQL Server   会报错
DRIVER=ODBC Driver 18 for SQL Server   没问题
}
  dbProp := TSqlDBOdbcConnectionProperties.Create('', 'FILEDSN=d:\test.dsn;PWD=Sa12345', '', '');
//  var stmt := dbProp.NewThreadSafeStatementPrepared('{? = call p_test (?,?) }', true, false);  第一个参数是返回值。
  var stmt := dbProp.NewThreadSafeStatementPrepared('exec p_test ?,?', true, false);  //无返回值
  stmt.BindTextU(1, 'jjw', paramIn);
  stmt.Bind(2, 9, paramOut);
  stmt.ExecutePrepared;
  stmt.ParamToVariant(2, v);
  Caption := V;
end;
ALTER proc [dbo].[p_test]
@name varchar(10),
@insId bigint output
as
begin
    SET NOCOUNT ON  --关键
    insert into test(name) values(@name)
    select @insId = @@IDENTITY
    return 0
end
GO