Browse Source

fcl-db: sqldb: formatting + add default information schema query for SchemaType=stProcedures (for those TSQLConnection descendants, which does not implement own schema query use sql standard)

git-svn-id: trunk@26087 -
lacak 11 years ago
parent
commit
f02dd9fde9
1 changed files with 22 additions and 23 deletions
  1. 22 23
      packages/fcl-db/src/sqldb/sqldb.pp

+ 22 - 23
packages/fcl-db/src/sqldb/sqldb.pp

@@ -351,6 +351,7 @@ type
     function Fetch : boolean; override;
     function Fetch : boolean; override;
     Function Cursor : TSQLCursor;
     Function Cursor : TSQLCursor;
     function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override;
     function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override;
+    procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); override;
     // abstract & virtual methods of TDataset
     // abstract & virtual methods of TDataset
     procedure UpdateServerIndexDefs; virtual;
     procedure UpdateServerIndexDefs; virtual;
     procedure SetDatabase(Value : TDatabase); override;
     procedure SetDatabase(Value : TDatabase); override;
@@ -367,7 +368,6 @@ type
     procedure SetServerFilterText(const Value: string); virtual;
     procedure SetServerFilterText(const Value: string); virtual;
     Function GetDataSource : TDataSource; override;
     Function GetDataSource : TDataSource; override;
     Procedure SetDataSource(AValue : TDataSource);
     Procedure SetDataSource(AValue : TDataSource);
-    procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); override;
     procedure BeforeRefreshOpenCursor; override;
     procedure BeforeRefreshOpenCursor; override;
     procedure SetReadOnly(AValue : Boolean); override;
     procedure SetReadOnly(AValue : Boolean); override;
     Function LogEvent(EventType : TDBEventType) : Boolean;
     Function LogEvent(EventType : TDBEventType) : Boolean;
@@ -549,13 +549,14 @@ type
 
 
     procedure PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams); override;
     procedure PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams); override;
     procedure Execute(cursor: TSQLCursor;atransaction:tSQLtransaction; AParams : TParams); override;
     procedure Execute(cursor: TSQLCursor;atransaction:tSQLtransaction; AParams : TParams); override;
+    function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
     function Fetch(cursor : TSQLCursor) : boolean; override;
     function Fetch(cursor : TSQLCursor) : boolean; override;
     procedure AddFieldDefs(cursor: TSQLCursor; FieldDefs : TfieldDefs); override;
     procedure AddFieldDefs(cursor: TSQLCursor; FieldDefs : TfieldDefs); override;
     procedure UnPrepareStatement(cursor : TSQLCursor); override;
     procedure UnPrepareStatement(cursor : TSQLCursor); override;
-
-    procedure FreeFldBuffers(cursor : TSQLCursor); override;
     function LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override;
     function LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override;
-    function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
+    procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); override;
+    procedure FreeFldBuffers(cursor : TSQLCursor); override;
+
     function GetTransactionHandle(trans : TSQLHandle): pointer; override;
     function GetTransactionHandle(trans : TSQLHandle): pointer; override;
     function Commit(trans : TSQLHandle) : boolean; override;
     function Commit(trans : TSQLHandle) : boolean; override;
     function RollBack(trans : TSQLHandle) : boolean; override;
     function RollBack(trans : TSQLHandle) : boolean; override;
@@ -564,7 +565,6 @@ type
     procedure RollBackRetaining(trans : TSQLHandle); override;
     procedure RollBackRetaining(trans : TSQLHandle); override;
     procedure UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); override;
     procedure UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); override;
     function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; override;
     function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; override;
-    procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); override;
     Property Proxy : TSQLConnection Read FProxy;
     Property Proxy : TSQLConnection Read FProxy;
   Published
   Published
     Property ConnectorType : String Read FConnectorType Write SetConnectorType;
     Property ConnectorType : String Read FConnectorType Write SetConnectorType;
@@ -1225,7 +1225,8 @@ function TSQLConnection.GetSchemaInfoSQL( SchemaType : TSchemaType; SchemaObject
 
 
 begin
 begin
   case SchemaType of
   case SchemaType of
-    stSchemata: Result := 'SELECT * FROM INFORMATION_SCHEMA.SCHEMATA';
+    stProcedures: Result := 'SELECT * FROM INFORMATION_SCHEMA.ROUTINES';
+    stSchemata  : Result := 'SELECT * FROM INFORMATION_SCHEMA.SCHEMATA';
     else DatabaseError(SMetadataUnavailable);
     else DatabaseError(SMetadataUnavailable);
   end;
   end;
 end;
 end;
@@ -1612,15 +1613,20 @@ begin
   FStatement.Execute;
   FStatement.Execute;
 end;
 end;
 
 
-function TCustomSQLQuery.LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean;
+function TCustomSQLQuery.RowsAffected: TRowsCount;
+begin
+  Result:=Fstatement.RowsAffected;
+end;
 
 
+function TCustomSQLQuery.LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean;
 begin
 begin
   result := TSQLConnection(Database).LoadField(Cursor,FieldDef,buffer, Createblob)
   result := TSQLConnection(Database).LoadField(Cursor,FieldDef,buffer, Createblob)
 end;
 end;
 
 
-function TCustomSQLQuery.RowsAffected: TRowsCount;
+procedure TCustomSQLQuery.LoadBlobIntoBuffer(FieldDef: TFieldDef;
+  ABlobBuf: PBufBlobField);
 begin
 begin
-  Result:=Fstatement.RowsAffected;
+  TSQLConnection(DataBase).LoadBlobIntoBuffer(FieldDef, ABlobBuf, Cursor,(Transaction as TSQLTransaction));
 end;
 end;
 
 
 procedure TCustomSQLQuery.InternalAddRecord(Buffer: Pointer; AAppend: Boolean);
 procedure TCustomSQLQuery.InternalAddRecord(Buffer: Pointer; AAppend: Boolean);
@@ -2274,12 +2280,6 @@ begin
   FSchemaPattern:=ASchemaPattern;
   FSchemaPattern:=ASchemaPattern;
 end;
 end;
 
 
-procedure TCustomSQLQuery.LoadBlobIntoBuffer(FieldDef: TFieldDef;
-  ABlobBuf: PBufBlobField);
-begin
-  TSQLConnection(DataBase).LoadBlobIntoBuffer(FieldDef, ABlobBuf, Cursor,(Transaction as TSQLTransaction));
-end;
-
 procedure TCustomSQLQuery.BeforeRefreshOpenCursor;
 procedure TCustomSQLQuery.BeforeRefreshOpenCursor;
 begin
 begin
   // This is only necessary because TIBConnection can not re-open a
   // This is only necessary because TIBConnection can not re-open a
@@ -2694,6 +2694,13 @@ begin
   Result:=FProxy.LoadField(cursor, FieldDef, buffer, CreateBlob);
   Result:=FProxy.LoadField(cursor, FieldDef, buffer, CreateBlob);
 end;
 end;
 
 
+procedure TSQLConnector.LoadBlobIntoBuffer(FieldDef: TFieldDef;
+  ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction: TSQLTransaction);
+begin
+  CheckProxy;
+  FProxy.LoadBlobIntoBuffer(FieldDef, ABlobBuf, cursor, ATransaction);
+end;
+
 function TSQLConnector.RowsAffected(cursor: TSQLCursor): TRowsCount;
 function TSQLConnector.RowsAffected(cursor: TSQLCursor): TRowsCount;
 begin
 begin
   CheckProxy;
   CheckProxy;
@@ -2752,17 +2759,9 @@ begin
     );
     );
 end;
 end;
 
 
-procedure TSQLConnector.LoadBlobIntoBuffer(FieldDef: TFieldDef;
-  ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction: TSQLTransaction);
-begin
-  CheckProxy;
-  FProxy.LoadBlobIntoBuffer(FieldDef, ABlobBuf, cursor, ATransaction);
-end;
-
 
 
 { TConnectionDef }
 { TConnectionDef }
 
 
-
 class function TConnectionDef.TypeName: String;
 class function TConnectionDef.TypeName: String;
 begin
 begin
   Result:='';
   Result:='';