Programando Delphi/Interbase em Rede

Delphi

09/06/2004

Tenho as seguintes procedures: mas estou com seguinte problema

e o problema que a estacao A grava o id = 90 se a estacao B aperta o botao
incluir ao mesmo tempo
vai ficar com id=91,ate ai tudo normal, mas quando a estacao A digita
alguma coisa no campo
NOme e aperta o botao salvar, nao aparece para a Estacao B se fazer uma
pesquisa (no grido)

Esta ai minha procedure


procedure Tffuncionario.spIncluiClick(Sender: TObject);
var
qryinclui : TIBQuery;
begin
contador:=´´;
pnlAtrib.Enabled := true;
qryinclui := TIBQuery.Create(nil);
qryinclui.Database:=dmmenu.IBDatabase1;


with qryauxiliar, sql do
begin
close;
clear;
add(´select max(idfunc)+1 as codigo from funcionario´);
open;
if fieldbyname(´codigo´).asstring = ´´ then
contador:=´1´
else
contador := qryauxiliar.fieldbyname(´codigo´).AsString;
end;
with qryinclui,sql do begin
close;
clear;
add(´insert into funcionario(idfunc)´);
add(´values(´´´+contador+´´´)´);
execsql;
add(´commit´);
end;

with qry do begin
sql.Text := ´select * from funcionario where idfunc = ´´´+contador+´´´´;
open;
qry.Edit;
end;
end;


procedure salvar
begin
if MessageDlg(´Deseja Salvar:´ + edtKey.Text + ´?´, mtConfirmation,
[mbYes, mbCancel], 0) = mrCancel then exit;
try
dmmenu.IBTransaction1.StartTransaction;
Qry.Post;
Qry.ApplyUpdates;
qry.SQL.add(´commit´);
dmmenu.IBTransaction1.CommitRetaining;

end;


Evandro_araujo

Evandro_araujo

Curtidas 0

Respostas

Xisto

Xisto

09/06/2004

Pra dizer a verdade nao sei se entendi bem seu codigo, mas tente fazer estas alteracoes e teste.


with qryauxiliar, sql do 
begin 
close; 
clear; 
add(´select max(idfunc)+1 as codigo from funcionario´); 
open; 
if fieldbyname(´codigo´).asstring = ´´ then 
contador:=´1´ 
else 
contador := qryauxiliar.fieldbyname(´codigo´).AsString; 
end; 
with qryinclui,sql do begin 
close; 
clear; 
add(´insert into funcionario(idfunc)´); 
add(´values(´´´+contador+´´´)´); 
execsql; 
add(´commit´); 
ExecSql; //Aqui
end; 

with qry do begin 
sql.Text := ´select * from funcionario where idfunc = ´´´+contador+´´´´; 
open; 
qry.Edit; 
end; 
end; 


procedure salvar 
begin 
if MessageDlg(´Deseja Salvar:´ + edtKey.Text + ´?´, mtConfirmation, 
[mbYes, mbCancel], 0) = mrCancel then exit; 
try 
dmmenu.IBTransaction1.StartTransaction; 
qry.SQL.add(´commit´); // Aqui
qry.ExecSql; // Aqui
Qry.Post; 
Qry.ApplyUpdates; 
dmmenu.IBTransaction1.CommitRetaining; 

end;



GOSTEI 0
POSTAR