Oracleconnection: added support for TSQLCurser.FSelectable

git-svn-id: trunk@23148 -
This commit is contained in:
ludob 2012-12-15 15:52:08 +00:00
parent db72b8d7fd
commit 43371002c4

View File

@ -517,11 +517,30 @@ var tel : integer;
OFieldType : ub2;
OFieldSize : sb4;
stmttype : ub2;
begin
with cursor as TOracleCursor do
begin
if OCIStmtPrepare2(TOracleTrans(ATransaction.Handle).FOciSvcCtx,FOciStmt,FOciError,@buf[1],length(buf),nil,0,OCI_NTV_SYNTAX,OCI_DEFAULT) = OCI_ERROR then
HandleError;
//get statement type
if OCIAttrGet(FOciStmt,OCI_HTYPE_STMT,@stmttype,nil,OCI_ATTR_STMT_TYPE,FOciError) = OCI_ERROR then
HandleError;
case stmttype of
OCI_STMT_SELECT:FStatementType := stSelect;
OCI_STMT_UPDATE:FStatementType := stUpdate;
OCI_STMT_DELETE:FStatementType := stDelete;
OCI_STMT_INSERT:FStatementType := stInsert;
OCI_STMT_CREATE,
OCI_STMT_DROP,
OCI_STMT_DECLARE,
OCI_STMT_ALTER:FStatementType := stDDL;
else
FStatementType := stUnknown;
end;
if FStatementType in [stUpdate,stDelete,stInsert,stDDL] then
FSelectable:=false;
if assigned(AParams) then
begin
setlength(ParamBuffers,AParams.Count);