Code: Select all
create or replace procedure foo
begin
null;
end;
var
Qry: TOraSQL;
begin
...
Qry.Execute;
// at this point, Qry.SQLType should be 24 but returns 0
in the previous version, function GetSQLType returned FSQLType. Now it returns FLastSQLType. It's in the TOCICommand.InternalExecute method where FSQLType gets set properly
Code: Select all
if FSQLType = SQL_UNKNOWN then begin
Check(OCIAttrGet2(OCIStmt, OCI_HTYPE_STMT, ValuePtr, nil, OCI_ATTR_SQLFNCODE, hOCIError));
FSQLType := Word(ValuePtr);
end;
Code: Select all
case StmtType of
OCI_STMT_SELECT:
FSQLType := SQL_SELECT;
OCI_STMT_UPDATE:
FSQLType := SQL_UPDATE;
OCI_STMT_DELETE:
FSQLType := SQL_DELETE;
OCI_STMT_INSERT:
FSQLType := SQL_INSERT;
OCI_STMT_BEGIN, OCI_STMT_DECLARE:
FSQLType := SQL_PLSQL;
14,15: // explain 805 - 14, 816 - 15
FSQLType:= SQL_EXPLAIN;
else
FSQLType := SQL_UNKNOWN;
end;