DataSetProvider e ClientDataSet
01/10/2004
0
Prezados Amigos,
Estou com um problema, pois utilizo os seguintes componentes na seguinte ordem: IBDataSet1, DataSetProvider, ClientDataSet e DataSource que funcionam muito bem, mas quando eu coloco o sistema na rede, quando um usuário (cliente) acessa o sistema nas telas que tem esse formuláro e insere um registro funciona numa boa mas se um outro usuario acessar o sistema ao mesmo tempo e for tentar acessar um registro, o sistema deste usuario entra em LOOP infinito como solucionar ester problema.
Aos que tentarem muito obrigado e aos que conseguirem agradeço também,
Att,
Zenas.
Estou com um problema, pois utilizo os seguintes componentes na seguinte ordem: IBDataSet1, DataSetProvider, ClientDataSet e DataSource que funcionam muito bem, mas quando eu coloco o sistema na rede, quando um usuário (cliente) acessa o sistema nas telas que tem esse formuláro e insere um registro funciona numa boa mas se um outro usuario acessar o sistema ao mesmo tempo e for tentar acessar um registro, o sistema deste usuario entra em LOOP infinito como solucionar ester problema.
Aos que tentarem muito obrigado e aos que conseguirem agradeço também,
Att,
Zenas.
Zenas
Curtir tópico
+ 0
Responder
Posts
01/10/2004
Afarias
|mas se um outro usuario acessar o sistema ao mesmo tempo e for
|tentar acessar um registro, o sistema deste usuario entra em LOOP
|infinito como solucionar ester problema.
Acessar apenas?? Não alterar?? Sua transação está em WAIT ou NOWAIT?? o que é exatamente esse ´loop infinito´?? Suas transações estão fechando?? Qual seu código??
T+
|tentar acessar um registro, o sistema deste usuario entra em LOOP
|infinito como solucionar ester problema.
Acessar apenas?? Não alterar?? Sua transação está em WAIT ou NOWAIT?? o que é exatamente esse ´loop infinito´?? Suas transações estão fechando?? Qual seu código??
T+
Responder
01/10/2004
Zenas
procedure TCadastro_PMS.Btn_InserirClick(Sender: TObject);
begin
IBDataSet1.Close;
IBDataSet1.SelectSQL.Clear;
IBDataSet1.SelectSQL.Add(´SELECT * FROM pms WHERE n_pms is null ´);
IBDataSet1.Open;
IBDataSet2.Open;
IBQueryMateriais.Open;
IBQueryProjeto.Open;
IBQueryBloco.Open;
IBQueryFornecedor.Open;
ClientDataSet1.Open;
ClientDataSet2.Open;
ClientDataSet1.Insert;
desabilita_bottons;
//Panel2.Enabled := True;
PageControl1.Pages[0].Enabled := True;
ClientDataSet1DATACADASTRO.Value := date;
ClientDataSet1USUARIO.AsString := Login.IBQueryUsuarioNOMELOGIN.AsString;
ClientDataSet1APROV_FORN1.Value := ´BLOQUEADO´;
ClientDataSet1APROV_FORN2.Value := ´BLOQUEADO´;
ClientDataSet1APROV_FORN3.Value := ´BLOQUEADO´;
//IBDataSet1TIPO_PMS.AsString := ´CEG´;
ClientDataSet1STATUS.Value := ´BLOQUEADO´;
DBLookupComboBox1.SetFocus;
end;
Se dois usuarios clicam no botão inserir ao mesmo tempo um dos sistema fica travado, se tentar mexer com o mouse ele já não funciona.
Att,
Zenas
begin
IBDataSet1.Close;
IBDataSet1.SelectSQL.Clear;
IBDataSet1.SelectSQL.Add(´SELECT * FROM pms WHERE n_pms is null ´);
IBDataSet1.Open;
IBDataSet2.Open;
IBQueryMateriais.Open;
IBQueryProjeto.Open;
IBQueryBloco.Open;
IBQueryFornecedor.Open;
ClientDataSet1.Open;
ClientDataSet2.Open;
ClientDataSet1.Insert;
desabilita_bottons;
//Panel2.Enabled := True;
PageControl1.Pages[0].Enabled := True;
ClientDataSet1DATACADASTRO.Value := date;
ClientDataSet1USUARIO.AsString := Login.IBQueryUsuarioNOMELOGIN.AsString;
ClientDataSet1APROV_FORN1.Value := ´BLOQUEADO´;
ClientDataSet1APROV_FORN2.Value := ´BLOQUEADO´;
ClientDataSet1APROV_FORN3.Value := ´BLOQUEADO´;
//IBDataSet1TIPO_PMS.AsString := ´CEG´;
ClientDataSet1STATUS.Value := ´BLOQUEADO´;
DBLookupComboBox1.SetFocus;
end;
Se dois usuarios clicam no botão inserir ao mesmo tempo um dos sistema fica travado, se tentar mexer com o mouse ele já não funciona.
Att,
Zenas
Responder
Clique aqui para fazer login e interagir na Comunidade :)