Thread: SERIAL with TTable in cbuilder

SERIAL with TTable in cbuilder

From
Baurjan Ismagulov
Date:
Hello,

Sorry for a slightly off-topic posting, writing in hope that some of you
might have encountered and solved the problem I'm experiencing. I've
searched cbuilder and postgres archives, but couldn't find anything
relevant.

I'm trying to insert records from a dialog box using TTable (Windows
client, ODBC). I don't have a control for my SERIAL field. When I
Table1->Post(), Borland classes raise an exception saying smth. like
"field xxx should have a value", since the autoincremented field is
declared NOT NULL. I don't want to read the sequence from the client. Is
there a way to have TTable not insert a value for that field? I've also
tried an updatable TQuery where I select all fields except the SERIAL,
but that didn't work either.

I would appreciate any help.

Thanks in advance,
Baurjan.

P.S. Please cc to me, I'm not subscribed.

Re: SERIAL with TTable in cbuilder

From
"scott.marlowe"
Date:
On Tue, 1 Oct 2002, Baurjan Ismagulov wrote:

> Hello,
>
> Sorry for a slightly off-topic posting, writing in hope that some of you
> might have encountered and solved the problem I'm experiencing. I've
> searched cbuilder and postgres archives, but couldn't find anything
> relevant.
>
> I'm trying to insert records from a dialog box using TTable (Windows
> client, ODBC). I don't have a control for my SERIAL field. When I
> Table1->Post(), Borland classes raise an exception saying smth. like
> "field xxx should have a value", since the autoincremented field is
> declared NOT NULL. I don't want to read the sequence from the client. Is
> there a way to have TTable not insert a value for that field? I've also
> tried an updatable TQuery where I select all fields except the SERIAL,
> but that didn't work either.

Try using the value DEFAULT with no ' marks around it.  like this:

insert into table (dat,nam,id) values ('2000-02-02','Marlowe',DEFAULT);

That should work


Re: SERIAL with TTable in cbuilder

From
Baurjan Ismagulov
Date:
On Fri, Oct 04, 2002 at 09:42:02AM -0600, scott.marlowe wrote:
> insert into table (dat,nam,id) values ('2000-02-02','Marlowe',DEFAULT);

Thanks much! I'll try this method, although I'm not sure whether the
fields in TTable can be set to DEFAULT. It should be possible to do that
via a custom TQuery.

For now, I'm using the folowing hack:

Table1->FieldByName("id")->Required = false;

With kind regards,
Baurjan.