+ Implemented GetSchemaInfoSQ

+ Added support for OID and constand fields

git-svn-id: trunk@1239 -
This commit is contained in:
joost 2005-09-30 22:02:24 +00:00
parent 3a5895be0f
commit a978896d7f

View File

@ -30,6 +30,8 @@ type
Nr : string;
end;
{ TPQConnection }
TPQConnection = class (TSQLConnection)
private
FCursorCount : word;
@ -59,6 +61,7 @@ type
function StartdbTransaction(trans : TSQLHandle; AParams : string) : boolean; override;
procedure RollBackRetaining(trans : TSQLHandle); override;
procedure UpdateIndexDefs(var IndexDefs : TIndexDefs;TableName : string); override;
function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; override;
public
constructor Create(AOwner : TComponent); override;
published
@ -85,12 +88,14 @@ ResourceString
const Oid_Bool = 16;
Oid_Text = 25;
Oid_Oid = 26;
Oid_Name = 19;
Oid_Int8 = 20;
Oid_int2 = 21;
Oid_Int4 = 23;
Oid_Float4 = 700;
Oid_Float8 = 701;
Oid_Unknown = 705;
Oid_bpchar = 1042;
Oid_varchar = 1043;
Oid_timestamp = 1114;
@ -300,6 +305,7 @@ begin
Oid_varchar,Oid_bpchar,
Oid_name : Result := ftstring;
Oid_text : REsult := ftmemo;
Oid_oid : Result := ftInteger;
Oid_int8 : Result := ftLargeInt;
Oid_int4 : Result := ftInteger;
Oid_int2 : Result := ftSmallInt;
@ -310,6 +316,9 @@ begin
Oid_Time : Result := ftTime;
Oid_Bool : Result := ftBoolean;
Oid_Numeric : Result := ftBCD;
Oid_Unknown : Result := ftUnknown;
else
Result := ftUnknown;
end;
end;
@ -689,5 +698,41 @@ begin
qry.free;
end;
function TPQConnection.GetSchemaInfoSQL(SchemaType: TSchemaType;
SchemaObjectName, SchemaPattern: string): string;
var s : string;
begin
case SchemaType of
stTables : s := 'select '+
'relfilenode as recno, '+
'''' + DatabaseName + ''' as catalog_name, '+
''''' as schema_name, '+
'relname as table_name, '+
'0 as table_type '+
'from '+
'pg_class '+
'where '+
'(relowner > 1) and relkind=''r''' +
'order by relname';
stSysTables : s := 'select '+
'relfilenode as recno, '+
'''' + DatabaseName + ''' as catalog_name, '+
''''' as schema_name, '+
'relname as table_name, '+
'0 as table_type '+
'from '+
'pg_class '+
'where '+
'relkind=''r''' +
'order by relname';
else
DatabaseError(SMetadataUnavailable)
end; {case}
result := s;
end;
end.