Criando campo auto-incremento utilizando Generator no Firebi
Olá a todos
Fiz o exemplo de uma video-aula da clube delphi, mas não esta dando certo, da erro ´Field value requerid´, não consigo nem trocar de registro no grid, mas no exemplo do Everson funciona blz
alguem sabe o q pode estar errado.
francisco Nussbaum
Fiz o exemplo de uma video-aula da clube delphi, mas não esta dando certo, da erro ´Field value requerid´, não consigo nem trocar de registro no grid, mas no exemplo do Everson funciona blz
alguem sabe o q pode estar errado.
francisco Nussbaum
Nussbaum
Curtidas 0
Respostas
Ariovaldo
13/04/2006
Bom vamos tentar ajudar:
- Você deve ter criado o Generator Correto!
- Também deve ter criado a Triger na Tabela que dispara o Generator!
- Acredito que o que deve tar faltando é vc ligar o seu Generator no Seu DataSet ( Propriedade Generator Fields.
- Você deve ter criado o Generator Correto!
- Também deve ter criado a Triger na Tabela que dispara o Generator!
- Acredito que o que deve tar faltando é vc ligar o seu Generator no Seu DataSet ( Propriedade Generator Fields.
GOSTEI 0
Nussbaum
13/04/2006
Blz!
Bom vc poderia me explicar um pouco sobre a Propriedade Generator Fields que vc citou?
Esta em qual componente?
SQLDataSet ou ClientDataSet?
faz diferença estou usando o Delphi 2005. no caso não achei esta propriedade, tenho que fazer atravez de linha de codigo.
Agradeço a ajuda, sou um pobre universitario que tem Java como base na facul e estou começando em uma empresa em delphi
Bom vc poderia me explicar um pouco sobre a Propriedade Generator Fields que vc citou?
Esta em qual componente?
SQLDataSet ou ClientDataSet?
faz diferença estou usando o Delphi 2005. no caso não achei esta propriedade, tenho que fazer atravez de linha de codigo.
Agradeço a ajuda, sou um pobre universitario que tem Java como base na facul e estou começando em uma empresa em delphi
GOSTEI 0
Titanius
13/04/2006
Blz!
Bom vc poderia me explicar um pouco sobre a Propriedade Generator Fields que vc citou?
Esta em qual componente?
SQLDataSet ou ClientDataSet?
faz diferença estou usando o Delphi 2005. no caso não achei esta propriedade, tenho que fazer atravez de linha de codigo.
Agradeço a ajuda, sou um pobre universitario que tem Java como base na facul e estou começando em uma empresa em delphi
O GeneratorField, se não me engano tem somente no IBX, no ClientDataSet ou no DBX não tem esta opção... o que você pode fazer para pegar o Valor do generator e incrementar ele, eh isso:
select gen_id(NOME_GENERATOR, INC)
Onde:
NOME_GENERATOR = Nome do seu Generator
INC = Valor integer para incrementar o generator em questao.
Espero ter ajudado
[]s
GOSTEI 0
Nussbaum
13/04/2006
Olá titanius
Bom fiz assim no banco de dados, usando IBExpert
/////////
CREATE table CLIENTES (CODIGO integer NOT null PRIMARY key,
NOME VARCHAR(25) NOT null,
FONE VARCHAR(18));
CREATE GENERATOR GEN_CLIENTES;
CREATE trigger TRG_CLIENTES_INS
FOR CLIENTES before insert position 0
as
begin
if (NEW.CODIGO IS NULL) then
NEW.CODIGO = gen_id(GEN_CLIENTES, 1);
end
/////////
como utilizo pelo dbexpress com os componentes de acesso?
Bom fiz assim no banco de dados, usando IBExpert
/////////
CREATE table CLIENTES (CODIGO integer NOT null PRIMARY key,
NOME VARCHAR(25) NOT null,
FONE VARCHAR(18));
CREATE GENERATOR GEN_CLIENTES;
CREATE trigger TRG_CLIENTES_INS
FOR CLIENTES before insert position 0
as
begin
if (NEW.CODIGO IS NULL) then
NEW.CODIGO = gen_id(GEN_CLIENTES, 1);
end
/////////
como utilizo pelo dbexpress com os componentes de acesso?
GOSTEI 0
Titanius
13/04/2006
Dessa forma, o codigo somente sera gerado quando o registro for comitado para o banco... funciona perfeitamente, mas para utilidades que voce precise antecipadamente do codigo, este tipo de funcao nao funciona... entedeu?
Pra rodar no DBX, vc precisa desta vinculacao
SQLConnection -> SQLDataset -> DataSetProvider > ClientDataSet -> DataSource
na respectiva ordem...
[]s
Pra rodar no DBX, vc precisa desta vinculacao
SQLConnection -> SQLDataset -> DataSetProvider > ClientDataSet -> DataSource
na respectiva ordem...
[]s
GOSTEI 0