Fórum Erro no Incremento #41103
21/12/2003
0
Estou tentando usar a função postada aqui pelo Nobre A. Farias, mas não estou conseguindo.
A função fica no datamodule.
function TDMFolha.GetNewID(const AGenerator: string; Tabela:TIBDataSet): Integer;
const SQLText = ´select gen_id(¬s, 1) from rdb$database´;
begin
Result:=0;
with Tabela do
begin
SelectSQL.CommaText :=Format(SQLText, [AGenerator]);
Transaction.StartTransaction;
try
ExecSQL;
Result := Fields[0].AsInteger;
finally
Transaction.Commit;
end;
end;
end;
Evento OnNewRecord:
IBEmpresa.FieldByName(´CODIGO´).AsInteger := GetNewID(´GEN_EMPRESA_ID´,IBEmpresa);
Só que ela me retorna alguns erros, primeiro me diz q a transação já está ativa, e depois me dá erro de violação de endereço na memoria, eu acho.
Estou usando:
1 - TIBDatabase (Ativado ao abrir o programa...)
2 - TIBTransaction (Ativado ao abrir o programa...)
3 - TIBDataSet (Ativado ao clicar em Incluir...)
4 - TDataSource (Ligado ao TIBDataSet...)
O que estou fazendo de errado, e como posso corrigir meus erros, tornando meu programa consistente e seguro para o cliente?.
As sugestões e dicas serão bem vindas.
A função fica no datamodule.
function TDMFolha.GetNewID(const AGenerator: string; Tabela:TIBDataSet): Integer;
const SQLText = ´select gen_id(¬s, 1) from rdb$database´;
begin
Result:=0;
with Tabela do
begin
SelectSQL.CommaText :=Format(SQLText, [AGenerator]);
Transaction.StartTransaction;
try
ExecSQL;
Result := Fields[0].AsInteger;
finally
Transaction.Commit;
end;
end;
end;
Evento OnNewRecord:
IBEmpresa.FieldByName(´CODIGO´).AsInteger := GetNewID(´GEN_EMPRESA_ID´,IBEmpresa);
Só que ela me retorna alguns erros, primeiro me diz q a transação já está ativa, e depois me dá erro de violação de endereço na memoria, eu acho.
Estou usando:
1 - TIBDatabase (Ativado ao abrir o programa...)
2 - TIBTransaction (Ativado ao abrir o programa...)
3 - TIBDataSet (Ativado ao clicar em Incluir...)
4 - TDataSource (Ligado ao TIBDataSet...)
O que estou fazendo de errado, e como posso corrigir meus erros, tornando meu programa consistente e seguro para o cliente?.
As sugestões e dicas serão bem vindas.
Martins
Curtir tópico
+ 0
Responder
Posts
21/12/2003
Martins
Desculpem!!
Esqueci de mencionar que usando o GeneratorField do IBDataset (on NewRecord) ele fica beleza, o (on server) só pode ser visto pelo servidor?
E seu eu estiver usando o programa de forma multi-usuário isso não pode causar uma violação na chave primária?
Conto com vcs para me ajudarem.
Esqueci de mencionar que usando o GeneratorField do IBDataset (on NewRecord) ele fica beleza, o (on server) só pode ser visto pelo servidor?
E seu eu estiver usando o programa de forma multi-usuário isso não pode causar uma violação na chave primária?
Conto com vcs para me ajudarem.
Responder
Gostei + 0
22/12/2003
Afarias
Leia completamente o tópico abaixo::
http://delphiforum.icft.com.br/forum/viewtopic.php?t=30060
se ainda assim restar alguma dúvida, vc nos traz ok?!
T+
http://delphiforum.icft.com.br/forum/viewtopic.php?t=30060
se ainda assim restar alguma dúvida, vc nos traz ok?!
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)