GARANTIR DESCONTO

Fórum Generator com IBClienteDataSet #39302

09/10/2003

0

Tenho uma aplicação que usa IBX, estou utilizando o IBClienteDataSet, 1 DataSetProvider, e IBDataSet.

OBS. Meu IBClienteDataSet esta ligado no DataSource.

Mas minha pergunta é a seguinte, tenho um generator onde é o meu “autoincremento&8221; no campo código da minha tabela, mas não funciona, será que não esta funcionando por causa do ClienteDataSet? Já fiz de tudo, e nada, não há como fazer funcionar.

Em uma outra aplicação que eu uso componentes Table funciona perfeitamente meus generators, o que será que esta acontecendo, alguém poderia me ajudar, por favor.

Agradeço muito.

Fábio


Fabio.palm

Fabio.palm

Responder

Posts

09/10/2003

Afarias

|Tenho uma aplicação que usa IBX, estou utilizando o IBClienteDataSet, 1
|DataSetProvider, e IBDataSet.

NÃO use IBClientDataSet -- este componente foi descontinuado e não é mais suportado.

Utilize TClientDataSet + DataSetProvider + {seu DataSet}


|Mas minha pergunta é a seguinte, tenho um generator onde é o
|meu “autoincremento” no campo código da minha tabela, mas não
|funciona, será que não esta funcionando por causa do ClienteDataSet?

Onde vc pega o valor do Generator?? Se é na propriedade GeneratorField do IBDataSet -- então está errado -- esta propriedade não deve ser usada numa configuração usando ClientDataSet.

Se é através de uma Trigger no banco de dados... ai depende da trigger -- mas vc nunca verá o código gerado até aplicar as alterações, fechar o CDS e abrí-lo novamente.

Se quer saber do Código Gerado sem ter q fechar/abrir seu CDS use um pequeno procedimento para gerar o código. Um exemplo::

function GetNewID: Integer;
begin
Result := 0;
with IBSQL1 do
try
Transaction.StartTransaction;
SQL.Text := ´SELECT GEN_ID(nome_generator, 1) FROM RDB$DATABASE´;
ExecQuery;
Result := Fields[0].AsInteger;
finally
Transaction.Commit;
end;
end;


T+


Responder

Gostei + 0

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

Aceitar