PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Delphi ADO Postgre (Problema com auto incremento) #367019

10/12/2008

0

[b:c6e5a73fea]Pessoal, estou com problema na inserção de registro em tabelas com campo autoincremento
[/b:c6e5a73fea]
Minha tabela é a mais simples possivel:
create table teste (ID serial, descricao varchar(20))

Utilizo:
- Delphi 2007 com Update 3
- PostgreSQL Database Server 8.3
- PostgreSQL ODBC Driver ´psqlodbc_08_03_0400´
- Windows XP SP3

O problema ocorre quando insiro um registro qualquer nessa tabela, e logo após o Post, ela não me retorna o novo ID incluído. Segue abaixo meu código:

[color=green:c6e5a73fea][i:c6e5a73fea]ADOConnection1.Close;
ADOConnection1.LoginPrompt:= False;
ADOConnection1.ConnectionString:= ´Driver={PostgreSQL ANSI};Server=localhost;Port=5432;Database=meudb;Uid=postgres;Pwd=minhasenha´;
ADOConnection1.Connected:= True;

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(´SELECT * FROM TESTE´);
ADOQuery1.Open;

ADOQuery1.Append;
ADOQuery1.FieldByName(´DESCRICAO´).AsString:= ´XXX´;
ADOQuery1.Post;[/i:c6e5a73fea][/color:c6e5a73fea]

Neste momento, eu deveria obter o valor do campo ID, mas ele só me retorna o valor ZERO. O mesmo não ocorre com o MySQL ou SQL Server.

Obs.: Passei pela mesma situação no Oracle, porém consegui resolver ajustando um parâmetro na query, mas no postgre não obtive êxito. O parâmetro ajustado foi o seguinte:

[color=green:c6e5a73fea][i:c6e5a73fea]ADOQuery1.Properties[´Update Resync´].Value:= adResyncInserts + adResyncAutoIncrement;
[/i:c6e5a73fea][/color:c6e5a73fea]
Obs.: Esse parâmetro é passado após o ADOQuery1.Open;


Edunascimento

Edunascimento

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar