Fórum cdskit: cannot perform this operation on a closed dataset #374971
16/09/2009
0
ola galera tenho esse funcao...
esssa procedure...
enfim, deveria me retornar o ultimo valor do generator! mais deu esse erro aí! em outro form os msm codigo funcionaram, mais com outro generator.
alguem podia me ajudar? :idea: se tiverem intendido :shock:
Function RetornaChave(Indice: String;incremento:integer): Integer;
begin
dm.cdsid.Close;
dm.Cdsid.CommandText:=´SELECT GEN_ID(´ + Indice +´,´+inttostr(incremento)+´) AS ID_RET FROM RDB$DATABASE´;
dm.cdsId.Open;
if dm.CdsId.IsEmpty then
raise Exception.Create(´Não foi criado nenhum valor.´)
else
result := dm.CdsId.FieldByName(´ID_RET´).AsInteger;
end;
esssa procedure...
procedure Tfrmcadkit.BitBtn5Click(Sender: TObject);
begin
messagebox(frmcadkit.Handle,´Deseja novo registro?´,´Atenção´, mb_YesNo+mb_iconinformation);
if messagebox(frmcadkit.handle,´Deseja novo registro?´,´Atenção´, mb_YesNo+mb_iconinformation) =(mryes) then
begin
dm.cdskit.Append;
editcodigo.Text:=inttostr(retornachave(´GEN_KITS_ID´, 1));
editcod.SetFocus;
end
else
if messagebox(frmcadkit.Handle,´Deseja novo registro?´,´Atenção´, mb_YesNo+mb_iconinformation)=(mrno) then
begin
editcod.SetFocus;
end;
end;
enfim, deveria me retornar o ultimo valor do generator! mais deu esse erro aí! em outro form os msm codigo funcionaram, mais com outro generator.
alguem podia me ajudar? :idea: se tiverem intendido :shock:
Thiagoangra2
Curtir tópico
+ 0
Responder
Posts
30/09/2009
Djfabioninja
Fala Thiago, blz?
Voce não mencionou em qual momento está obtendo o erro, mas vou tentar ajudar com o que entendi:
O erro que vc está tendo (cannot perform this operation on a closed dataset) tá dizendo (não se pode fazer esta operação em um dataset fechado).
Pois bem, na sua função, voce dá um close no dataset, muda a instrução e em seguida dá o open. Acredito que isso esteja funcionando certinho. Um detalhe que deve ser atentado é que o dataset que está retornando o erro é o CDSKIT. Na sua procedure voce dá um APPEND no CDSKIT, se ele não estiver setado como OPEN anteriormente ele irá retornar esse erro mesmo, justamente porque ele (´nao pode fazer esta operação em um dataset fechado´). Experimente dar um OPEN antes do APPEND só pra testar.
Espero ter ajudado.
Voce não mencionou em qual momento está obtendo o erro, mas vou tentar ajudar com o que entendi:
O erro que vc está tendo (cannot perform this operation on a closed dataset) tá dizendo (não se pode fazer esta operação em um dataset fechado).
Pois bem, na sua função, voce dá um close no dataset, muda a instrução e em seguida dá o open. Acredito que isso esteja funcionando certinho. Um detalhe que deve ser atentado é que o dataset que está retornando o erro é o CDSKIT. Na sua procedure voce dá um APPEND no CDSKIT, se ele não estiver setado como OPEN anteriormente ele irá retornar esse erro mesmo, justamente porque ele (´nao pode fazer esta operação em um dataset fechado´). Experimente dar um OPEN antes do APPEND só pra testar.
Espero ter ajudado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)