ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/udr/client/IB.pas
(Generate patch)

Comparing:
ibx/trunk/fbintf/IB.pas (file contents), Revision 349 by tony, Mon Oct 18 08:39:40 2021 UTC vs.
ibx/branches/journaling/fbintf/IB.pas (file contents), Revision 362 by tony, Tue Dec 7 13:27:39 2021 UTC

# Line 135 | Line 135 | const
135    {Interface version information}
136    FBIntf_Major = 1;
137    FBIntf_Minor = 3;
138 <  FBIntf_Release = 2;
139 <  FBIntf_Version = '1.3.2';
138 >  FBIntf_Release = 3;
139 >  FBIntf_Version = '1.3.3';
140  
141   const
142    {DPB, TPB and SPB Parameter Block Name Prefixes}
# Line 614 | Line 614 | type
614    }
615    IResultSet = interface(IResults)
616      ['{0ae4979b-7857-4e8c-8918-ec6f155b51a0}']
617 <    function FetchNext: boolean;
617 >    function FetchNext: boolean; {fetch next record}
618 >    function FetchPrior: boolean; {fetch previous record}
619 >    function FetchFirst:boolean; {fetch first record}
620 >    function FetchLast: boolean; {fetch last record}
621 >    function FetchAbsolute(position: Integer): boolean; {fetch record by its absolute position in result set}
622 >    function FetchRelative(offset: Integer): boolean; {fetch record by position relative to current}
623      function GetCursorName: AnsiString;
624 +    function IsBof: boolean;
625      function IsEof: boolean;
626      procedure Close;
627    end;
# Line 775 | Line 781 | type
781     initially prepared. The interface is returned from the IAttachment interface.
782     }
783  
784 +  TStatementFlag = (stHasCursor,stRepeatExecute,stScrollable);
785 +  TStatementFlags = set of TStatementFlag;
786 +
787    IStatement = interface
788      ['{a260576d-a07d-4a66-b02d-1b72543fd7cf}']
789      function GetMetaData: IMetaData;  {Output Metadata}
# Line 786 | Line 795 | type
795      function GetSQLText: AnsiString;
796      function GetProcessedSQLText: AnsiString;
797      function GetSQLDialect: integer;
798 +    function GetFlags: TStatementFlags;
799      function IsPrepared: boolean;
800      function HasBatchMode: boolean;
801      function IsInBatchMode: boolean;
802 <    procedure Prepare(aTransaction: ITransaction=nil);
802 >    procedure Prepare(aTransaction: ITransaction=nil); overload;
803 >    procedure Prepare(CursorName: AnsiString; aTransaction: ITransaction=nil); overload;
804      function Execute(aTransaction: ITransaction=nil): IResults;
805 <    function OpenCursor(aTransaction: ITransaction=nil): IResultSet;
805 >    function OpenCursor(aTransaction: ITransaction=nil): IResultSet; overload;
806 >    function OpenCursor(Scrollable: boolean; aTransaction: ITransaction=nil): IResultSet; overload;
807      function GetAttachment: IAttachment;
808      function GetTransaction: ITransaction;
809      procedure SetRetainInterfaces(aValue: boolean);
# Line 813 | Line 825 | type
825      property SQLStatementType: TIBSQLStatementTypes read GetSQLStatementType;
826    end;
827  
828 +  ITrInfoItem = interface
829 +    ['{41455e1a-f84e-4e26-aff0-1a78e8b69cfe}']
830 +    function getItemType: byte;
831 +    function getSize: integer;
832 +    function getAsString: AnsiString;
833 +    function getAsInteger: int64;
834 +    procedure DecodeTraIsolation(var IsolationType, RecVersion: byte);
835 +  end;
836 +
837 +  { ITrInformation }
838 +
839 +  ITrInformation = interface
840 +    ['{e6ea4a52-c1a1-44ba-9609-c8bcc7cba7b2}']
841 +    function GetCount: integer;
842 +    function GetItem(index: integer): ITrInfoItem;
843 +    function Find(ItemType: byte): ITrInfoItem;
844 +    procedure PrintBuf; {can be used to print buffer in hex for debugging}
845 +    property Count: integer read GetCount;
846 +    property Items[index: integer]: ITrInfoItem read getItem; default;
847 +  end;
848 +
849    {Transaction Parameter Block: (TPB)
850  
851     The TPB provides the parameters used when starting a transaction. It is allocated
# Line 849 | Line 882 | type
882      function getTPB: ITPB;
883      procedure Start(DefaultCompletion: TTransactionCompletion=taCommit);
884      function GetInTransaction: boolean;
885 +    function GetIsReadOnly: boolean;
886 +    function GetTransactionID: integer;
887      procedure PrepareForCommit; {Two phase commit - stage 1}
888      procedure Commit(Force: boolean=false);
889      procedure CommitRetaining;
# Line 857 | Line 892 | type
892      procedure RollbackRetaining;
893      function GetAttachmentCount: integer;
894      function GetAttachment(index: integer): IAttachment;
895 +    function GetTrInformation(Requests: array of byte): ITrInformation; overload;
896 +    function GetTrInformation(Request: byte): ITrInformation; overload;
897      property InTransaction: boolean read GetInTransaction;
898    end;
899  
# Line 1067 | Line 1104 | type
1104      function ExecuteSQL(transaction: ITransaction; sql: AnsiString; SQLDialect: integer; params: array of const): IResults; overload;
1105      function ExecuteSQL(TPB: array of byte; sql: AnsiString; params: array of const): IResults; overload;
1106      function ExecuteSQL(transaction: ITransaction; sql: AnsiString; params: array of const): IResults; overload;
1070    function OpenCursor(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer): IResultSet; overload;
1107      function OpenCursor(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer;
1108 +                             Scrollable: boolean=false): IResultSet; overload;
1109 +    function OpenCursor(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer;
1110 +                             params: array of const): IResultSet; overload;
1111 +    function OpenCursor(transaction: ITransaction; sql: AnsiString; Scrollable: boolean=false): IResultSet; overload;
1112 +    function OpenCursor(transaction: ITransaction; sql: AnsiString; Scrollable: boolean;
1113                               params: array of const): IResultSet; overload;
1073    function OpenCursor(transaction: ITransaction; sql: AnsiString): IResultSet; overload;
1114      function OpenCursor(transaction: ITransaction; sql: AnsiString;
1115                               params: array of const): IResultSet; overload;
1116 <    function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer): IResultSet; overload;
1116 >    function OpenCursor(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer; Scrollable: boolean;
1117 >                             params: array of const): IResultSet; overload;
1118 >    function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer;
1119 >                             Scrollable: boolean=false): IResultSet; overload;
1120      function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer;
1121                               params: array of const): IResultSet; overload;
1122 <    function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString): IResultSet; overload;
1122 >    function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer; Scrollable: boolean;
1123 >                             params: array of const): IResultSet; overload;
1124 >    function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString; Scrollable: boolean=false): IResultSet; overload;
1125      function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString;
1126                               params: array of const): IResultSet; overload;
1127 <    function OpenCursorAtStart(sql: AnsiString): IResultSet; overload;
1127 >    function OpenCursorAtStart(transaction: ITransaction; sql: AnsiString; Scrollable: boolean;
1128 >                             params: array of const): IResultSet; overload;
1129 >    function OpenCursorAtStart(sql: AnsiString; Scrollable: boolean=false): IResultSet; overload;
1130 >    function OpenCursorAtStart(sql: AnsiString; Scrollable: boolean;
1131 >                             params: array of const): IResultSet; overload;
1132      function OpenCursorAtStart(sql: AnsiString;
1133                               params: array of const): IResultSet; overload;
1134 <    function Prepare(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer): IStatement; overload;
1135 <    function Prepare(transaction: ITransaction; sql: AnsiString): IStatement; overload;
1134 >    function Prepare(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer; CursorName: AnsiString=''): IStatement; overload;
1135 >    function Prepare(transaction: ITransaction; sql: AnsiString; CursorName: AnsiString=''): IStatement; overload;
1136      function PrepareWithNamedParameters(transaction: ITransaction; sql: AnsiString;
1137                         aSQLDialect: integer; GenerateParamNames: boolean=false;
1138 <                       CaseSensitiveParams: boolean = false): IStatement; overload;
1138 >                       CaseSensitiveParams: boolean = false; CursorName: AnsiString=''): IStatement; overload;
1139      function PrepareWithNamedParameters(transaction: ITransaction; sql: AnsiString;
1140                         GenerateParamNames: boolean=false;
1141 <                       CaseSensitiveParams: boolean = false): IStatement; overload;
1141 >                       CaseSensitiveParams: boolean = false; CursorName: AnsiString=''): IStatement; overload;
1142  
1143      {Events}
1144      function GetEventHandler(Events: TStrings): IEvents; overload;
# Line 1132 | Line 1181 | type
1181      function HasActivity: boolean;
1182      function HasDecFloatSupport: boolean;
1183      function HasBatchMode: boolean;
1184 +    function HasScollableCursors: boolean;
1185  
1186      {Character Sets}
1187      function HasDefaultCharSet: boolean;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines