--插入记录
function ft_addTable(PTableName string, PTableId out integer)
return integer;
错误的方法
var
OraStoredProc1 : TOraStoredProc;
begin
OraStoredProc1 := TOraStoredProc.Create(nil);
try
OraStoredProc1.Session := FMyComDBConn.FSession;
OraStoredProc1.StoredProcName := 'TableFielddef_Pack.ft_addTable';
OraStoredProc1.SQL.Add('begin');
OraStoredProc1.SQL.Add(':RESULT :=TableFielddef_Pack.ft_addTable(:PTableName, :PTableId);');
OraStoredProc1.SQL.Add('end;');
OraStoredProc1.Params.CreateParam(ftString, 'Result', ptResult);
OraStoredProc1.Params.CreateParam(ftString, 'PTableName', ptInput);
OraStoredProc1.Params.CreateParam(ftinteger, 'PTableId', ptOutput);
OraStoredProc1.ParamByName('PTableName').Value := Tablename;
OraStoredProc1.Execute;
Result := OraStoredProc1.ParamByName('PTableId').AsInteger;
finally
OraStoredProc1.Free;
end;
end;
正确的方法:
var
OraStoredProc1 : TOraStoredProc;
begin
OraStoredProc1 := TOraStoredProc.Create(nil);
try
OraStoredProc1.Session := FMyComDBConn.FSession;
OraStoredProc1.StoredProcName := 'TableFielddef_Pack.ft_addTable';
OraStoredProc1.PrepareSQL;
OraStoredProc1.ParamByName('ptablename').Value := Tablename;
OraStoredProc1.Execute;
Result := OraStoredProc1.ParamByName('ptableid').AsInteger;
finally
OraStoredProc1.Free;
end;end;