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

Comparing ibx/trunk/fbintf/client/2.5/FB25Attachment.pas (file contents):
Revision 263 by tony, Thu Dec 6 15:55:01 2018 UTC vs.
Revision 350 by tony, Wed Oct 20 14:58:56 2021 UTC

# Line 68 | Line 68 | type
68      function StartTransaction(TPB: array of byte; DefaultCompletion: TTransactionCompletion): ITransaction; override;
69      function StartTransaction(TPB: ITPB; DefaultCompletion: TTransactionCompletion): ITransaction; override;
70      procedure ExecImmediate(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer); override;
71 <    function Prepare(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer): IStatement; override;
71 >    function Prepare(transaction: ITransaction; sql: AnsiString; aSQLDialect: integer; CursorName: AnsiString=''): IStatement; override;
72      function PrepareWithNamedParameters(transaction: ITransaction; sql: AnsiString;
73 <                       aSQLDialect: integer; GenerateParamNames: boolean=false): IStatement; override;
73 >                       aSQLDialect: integer; GenerateParamNames: boolean=false;
74 >                       CaseSensitiveParams: boolean=false; CursorName: AnsiString=''): IStatement; override;
75      function GetEventHandler(Events: TStrings): IEvents; override;
76 <    function CreateBlob(transaction: ITransaction; RelationName, ColumnName: AnsiString; BPB: IBPB=nil): IBlob; overload;
76 <    function CreateBlob(transaction: ITransaction; BlobMetaData: IBlobMetaData; BPB: IBPB=nil): IBlob; overload;
76 >    function CreateBlob(transaction: ITransaction; BlobMetaData: IBlobMetaData; BPB: IBPB=nil): IBlob; overload; override;
77      function CreateBlob(transaction: ITransaction; SubType: integer; aCharSetID: cardinal=0; BPB: IBPB=nil): IBlob; overload;
78    function OpenBlob(transaction: ITransaction; RelationName, ColumnName: AnsiString; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob; overload;
78      function OpenBlob(transaction: ITransaction; BlobMetaData: IBlobMetaData; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob; overload; override;
79  
80 <    function OpenArray(transaction: ITransaction; RelationName, ColumnName: AnsiString;
81 <      ArrayID: TISC_QUAD): IArray;
83 <    function CreateArray(transaction: ITransaction; RelationName, ColumnName: AnsiString
84 <      ): IArray; overload;
85 <    function CreateArray(transaction: ITransaction; ArrayMetaData: IArrayMetaData): IArray; overload;
80 >    function OpenArray(transaction: ITransaction; ArrayMetaData: IArrayMetaData; ArrayID: TISC_QUAD): IArray; overload; override;
81 >    function CreateArray(transaction: ITransaction; ArrayMetaData: IArrayMetaData): IArray; overload; override;
82      function CreateArrayMetaData(SQLType: cardinal; tableName: AnsiString; columnName: AnsiString;
83        Scale: integer; size: cardinal;
84        acharSetID: cardinal; dimensions: cardinal; bounds: TArrayBounds
# Line 90 | Line 86 | type
86  
87      {Database Information}
88  
89 <    function GetBlobMetaData(Transaction: ITransaction; tableName, columnName: AnsiString): IBlobMetaData;
90 <    function GetArrayMetaData(Transaction: ITransaction; tableName, columnName: AnsiString): IArrayMetaData;
89 >    function GetBlobMetaData(Transaction: ITransaction; tableName, columnName: AnsiString): IBlobMetaData; override;
90 >    function GetArrayMetaData(Transaction: ITransaction; tableName, columnName: AnsiString): IArrayMetaData; override;
91 >    procedure getFBVersion(version: TStrings);
92    end;
93  
94   implementation
95  
96   uses FB25Events,FB25Transaction, FBMessages, FB25Blob,
97 <  FB25Statement, FB25Array, IBUtils;
97 >  FB25Statement, FB25Array, IBUtils, IBExternals;
98  
99    { TFB25Attachment }
100  
# Line 242 | Line 239 | begin
239    Result := TFB25Transaction.Create(FFirebird25ClientAPI,self,TPB,DefaultCompletion);
240   end;
241  
245 function TFB25Attachment.CreateBlob(transaction: ITransaction; RelationName,
246  ColumnName: AnsiString; BPB: IBPB): IBlob;
247 begin
248  CheckHandle;
249  Result := TFB25Blob.Create(self,transaction as TFB25transaction,
250                TFB25BlobMetaData.Create(self,Transaction as TFB25Transaction,RelationName,ColumnName),BPB);
251 end;
252
242   function TFB25Attachment.CreateBlob(transaction: ITransaction;
243    BlobMetaData: IBlobMetaData; BPB: IBPB): IBlob;
244   begin
# Line 264 | Line 253 | begin
253    Result := TFB25Blob.Create(self,transaction as TFB25transaction,SubType,aCharSetID,BPB);
254   end;
255  
267 function TFB25Attachment.OpenBlob(transaction: ITransaction; RelationName,
268  ColumnName: AnsiString; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob;
269 begin
270  CheckHandle;
271  Result := TFB25Blob.Create(self,transaction as TFB25transaction,
272                TFB25BlobMetaData.Create(self,Transaction as TFB25Transaction,RelationName,ColumnName),
273                BlobID,BPB);
274 end;
275
256   function TFB25Attachment.OpenBlob(transaction: ITransaction;
257    BlobMetaData: IBlobMetaData; BlobID: TISC_QUAD; BPB: IBPB=nil): IBlob;
258   begin
# Line 293 | Line 273 | begin
273   end;
274  
275   function TFB25Attachment.Prepare(transaction: ITransaction; sql: AnsiString;
276 <  aSQLDialect: integer): IStatement;
276 >  aSQLDialect: integer; CursorName: AnsiString): IStatement;
277   begin
278    CheckHandle;
279    Result := TFB25Statement.Create(self,transaction,sql,aSQLDialect);
280   end;
281  
282   function TFB25Attachment.PrepareWithNamedParameters(transaction: ITransaction;
283 <  sql: AnsiString; aSQLDialect: integer; GenerateParamNames: boolean): IStatement;
283 >  sql: AnsiString; aSQLDialect: integer; GenerateParamNames: boolean;
284 >  CaseSensitiveParams: boolean; CursorName: AnsiString): IStatement;
285   begin
286    CheckHandle;
287    Result := TFB25Statement.CreateWithParameterNames(self,transaction,sql,aSQLDialect,
288 <         GenerateParamNames);
288 >         GenerateParamNames,CaseSensitiveParams,CursorName);
289   end;
290  
291   function TFB25Attachment.GetEventHandler(Events: TStrings): IEvents;
# Line 313 | Line 294 | begin
294    Result := TFB25Events.Create(self,Events);
295   end;
296  
297 < function TFB25Attachment.OpenArray(transaction: ITransaction; RelationName, ColumnName: AnsiString;
297 > function TFB25Attachment.OpenArray(transaction: ITransaction; ArrayMetaData: IArrayMetaData;
298    ArrayID: TISC_QUAD): IArray;
299   begin
300    CheckHandle;
301    Result := TFB25Array.Create(self,transaction as TFB25Transaction,
302 <                    GetArrayMetaData(transaction,RelationName,ColumnName),ArrayID);
322 < end;
323 <
324 < function TFB25Attachment.CreateArray(transaction: ITransaction; RelationName, ColumnName: AnsiString): IArray;
325 < begin
326 <  CheckHandle;
327 <  Result := TFB25Array.Create(self,transaction as TFB25Transaction,
328 <                    GetArrayMetaData(transaction,RelationName,ColumnName));
302 >                    ArrayMetaData,ArrayID);
303   end;
304  
305   function TFB25Attachment.CreateArray(transaction: ITransaction;
# Line 357 | Line 331 | begin
331    Result := TFB25ArrayMetaData.Create(self,Transaction as TFB25Transaction,tableName,columnName);
332   end;
333  
334 + procedure ISCVersionCallback(userArg: pointer; text: PAnsiChar); cdecl;
335 + begin
336 +  TStrings(userArg).Add(text);
337 + end;
338 +
339 + procedure TFB25Attachment.getFBVersion(version: TStrings);
340 + var callback: pointer;
341 + begin
342 +  callback := @ISCVersionCallback;
343 +  version.Clear;
344 +  with FFirebird25ClientAPI do
345 +    if isc_version(@FHandle,TISC_CALLBACK(callback),PVoid(version)) > 0 then
346 +       IBDataBaseError;
347 + end;
348 +
349   end.
350  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines