--- ibx/trunk/fbintf/client/FBStatement.pas 2017/01/09 15:31:51 47 +++ ibx/trunk/fbintf/client/FBStatement.pas 2017/03/06 10:20:02 56 @@ -28,9 +28,12 @@ * *) unit FBStatement; +{$IFDEF MSWINDOWS} +{$DEFINE WINDOWS} +{$ENDIF} {$IFDEF FPC} -{$mode objfpc}{$H+} +{$mode delphi} {$codepage UTF8} {$interfaces COM} {$ENDIF} @@ -42,7 +45,7 @@ uses FBTransaction; type - TPerfStatistics = array[psCurrentMemory..psFetches] of Int64; + TPerfStatistics = array[psCurrentMemory..psFetches] of comp; { TFBStatement } @@ -57,8 +60,8 @@ type FOpen: boolean; FPrepared: boolean; FPrepareSeqNo: integer; {used to check for out of date references from interfaces} - FSQL: string; - FProcessedSQL: string; + FSQL: AnsiString; + FProcessedSQL: AnsiString; FHasParamNames: boolean; FBOF: boolean; FEOF: boolean; @@ -79,9 +82,9 @@ type procedure InternalClose(Force: boolean); virtual; abstract; public constructor Create(Attachment: IAttachment; Transaction: ITransaction; - sql: string; SQLDialect: integer); + sql: AnsiString; SQLDialect: integer); constructor CreateWithParameterNames(Attachment: IAttachment; Transaction: ITransaction; - sql: string; SQLDialect: integer; GenerateParamNames: boolean =false); + sql: AnsiString; SQLDialect: integer; GenerateParamNames: boolean =false); destructor Destroy; override; procedure Close; procedure TransactionEnding(aTransaction: ITransaction; Force: boolean); @@ -93,17 +96,17 @@ type function GetRowsAffected(var SelectCount, InsertCount, UpdateCount, DeleteCount: integer): boolean; function GetSQLStatementType: TIBSQLStatementTypes; - function GetSQLText: string; + function GetSQLText: AnsiString; function GetSQLDialect: integer; {GetDSQLInfo only supports isc_info_sql_stmt_type, isc_info_sql_get_plan, isc_info_sql_records} procedure Prepare(aTransaction: ITransaction=nil); virtual; function Execute(aTransaction: ITransaction=nil): IResults; function OpenCursor(aTransaction: ITransaction=nil): IResultSet; - function CreateBlob(paramName: string): IBlob; overload; + function CreateBlob(paramName: AnsiString): IBlob; overload; function CreateBlob(index: integer): IBlob; overload; function CreateBlob(column: TColumnMetaData): IBlob; overload; virtual; abstract; - function CreateArray(paramName: string): IArray; overload; + function CreateArray(paramName: AnsiString): IArray; overload; function CreateArray(index: integer): IArray; overload; function CreateArray(column: TColumnMetaData): IArray; overload; virtual; abstract; function GetAttachment: IAttachment; @@ -133,7 +136,7 @@ begin end; constructor TFBStatement.Create(Attachment: IAttachment; - Transaction: ITransaction; sql: string; SQLDialect: integer); + Transaction: ITransaction; sql: AnsiString; SQLDialect: integer); begin inherited Create(Transaction as TFBTransaction,2); FAttachmentIntf := Attachment; @@ -143,7 +146,7 @@ begin end; constructor TFBStatement.CreateWithParameterNames(Attachment: IAttachment; - Transaction: ITransaction; sql: string; SQLDialect: integer; + Transaction: ITransaction; sql: AnsiString; SQLDialect: integer; GenerateParamNames: boolean); begin FHasParamNames := true; @@ -214,7 +217,7 @@ begin Result := FSQLStatementType; end; -function TFBStatement.GetSQLText: string; +function TFBStatement.GetSQLText: AnsiString; begin Result := FSQL; end; @@ -253,7 +256,7 @@ begin Result := InternalOpenCursor(aTransaction); end; -function TFBStatement.CreateBlob(paramName: string): IBlob; +function TFBStatement.CreateBlob(paramName: AnsiString): IBlob; var column: TColumnMetaData; begin InternalPrepare; @@ -269,7 +272,7 @@ begin Result := CreateBlob(SQLParams[index] as TSQLParam); end; -function TFBStatement.CreateArray(paramName: string): IArray; +function TFBStatement.CreateArray(paramName: AnsiString): IArray; var column: TColumnMetaData; begin InternalPrepare;