[Gambas-user] Postgres - obscure problem with oids

Benoît Minisini g4mba5 at gmail.com
Sat Oct 31 13:06:56 CET 2020


Le 31/10/2020 à 04:59, Bruce a écrit :
> I have a table ("tableext") which is an "extension" to the system 
> pg_catalog pg_class table. tableext relates to the pg_class on 1:1 basis 
> via the pg_class OID. Inn the tableext class that oid (called "tname")
> a) is the primary key and
> b) has a datatype of "regclass", IOW the table displays the OID as a 
> table name instead of an OID.
> That is all standard stuff in postgres whwn dealing with the catalog.
> 
> Here's my problem. In Gambas I am trying to update a row in this 
> tableext table.
> 
> I can get an updateable result using
> hBuffer = $srcConn.Edit("dd.tableext", "tname = &1::regclass", 
> txtTableName.Text)
> 
> In other words I am forcing the integer OID from the tname. That's fine 
> and I get an updatable cursor.
> 
> But when I get to the hBuffer.Update point Gambas is trying to use the 
> string tname and I cant see how to tell it to pass the ::regclass back 
> to the postgres server, A sample db.debug output of the query it is 
> trying to execute is:
> 
> UPDATE "dd"."tableext"
> SET "cat" = $$LOOKUP$$,
>      "facade" = $$Reference$$,
>      "is audited" = FALSE,
>      "strength" = $$STRONG$$,
>      "aspect" = $$Reference$$,
>      "comments" = NULL,
>      "disposition" = NULL,
>      "centity" = NULL,
>      "boclass" = $$BPGroups$$
> WHERE "tname" = $$bpgroups$$
> 
> 
> I need that last line to be
> 
> WHERE "tname" = $$bpgroups$$::regclass.
> 
> Any clues (apart from writing specific update queries which is too 
> onerous for the number of thesse I have to do).
> 
> tia
> bruce
> 

You have to write your own update request.

Regards,

-- 
Benoît Minisini


More information about the User mailing list