function AddQuery(ASize: integer): TOracleQuery;
var
Q: TOracleQuery;
begin
Result:= nil;
try
Q:= TOracleQuery.create(nil);
// Q.Session:= ASession;
Q.DeleteVariables;
Q.Sql.Text:='begin' + #13#10 +
' pinsert__buf(m1 => :m1,' + #13#10 +
' m2 => :m2,' + #13#10 +
' m3 => :m3,' + #13#10 +
' m4 => :m4,' + #13#10 +
' m5 => :m5,' + #13#10 +
' m6 => :m6,' + #13#10 +
' m7 => :m7,' + #13#10 +
' m8 => :m8,' + #13#10 +
' v_cnt => :v_cnt);' + #13#10 +
'end;';
Q.DeclareVariable('m1', otDate);
Q.DimPLSQLTable('m1', ASize, 0);
Q.DeclareVariable('m2', otDate);
Q.DimPLSQLTable('m2', ASize, 0);
Q.DeclareVariable('m3', otString);
Q.DimPLSQLTable('m3', ASize, 10);
Q.DeclareVariable('m4', otString);
Q.DimPLSQLTable('m4', ASize, 10);
Q.DeclareVariable('m5', otString);
Q.DimPLSQLTable('m5', ASize, 10);
Q.DeclareVariable('m6', otInteger);
Q.DimPLSQLTable('m6', ASize, 0);
Q.DeclareVariable('m7', otInteger);
Q.DimPLSQLTable('m7', ASize, 0);
Q.DeclareVariable('m8', otInteger);
Q.DimPLSQLTable('m8', ASize, 0);
Q.DeclareVariable('v_cnt', otInteger);
Q.Optimize:= True;
Result:= Q;
except
on E: Exception do
WriteLog(E.Message);
end;
end;