erroSQLConnection SQLTable DataSetProvider TClientData
Olá pessoal,
estou tentando realizar uma pesquisa na tabela, estou usando o delphi 7 e conectando o mysql através do DbExpress:
SQLConnection1 + SQLTable + DataSetProvider1 + TClientDataSet
Mas, ao executar o código listado abaixo o sistema enta em loop o que estou fazendo errado?
Obrigado pela ajuda.
procedure TForm1.B_DistribuirClick(Sender: TObject);
begin
Cds_Processo.Open;
Cds_Processo.First;
while not Tb_Processo.Eof do
Begin
if (Cds_Processo.Locate(´n_Guia´, StrToInt(Edit1.Text), [])) then
begin
Cds_Processo.Edit;
Cds_Processoddistribuicao.AsDateTime := StrToDate(MaskEdit1.Text);
Cds_ProcessoId_Procurador.Value := 3; //Tb_PessoalId.Value;
Cds_ProcessoId_Tipo_Distribuicao.Value := 2;
Cds_Processo.Post;
Cds_Processo.ApplyUpdates(0);
Cds_Processo.Next;
end;
end;
ShowMessage(´ Realizado passo 2 com SUCESSO!´);
end;
estou tentando realizar uma pesquisa na tabela, estou usando o delphi 7 e conectando o mysql através do DbExpress:
SQLConnection1 + SQLTable + DataSetProvider1 + TClientDataSet
Mas, ao executar o código listado abaixo o sistema enta em loop o que estou fazendo errado?
Obrigado pela ajuda.
procedure TForm1.B_DistribuirClick(Sender: TObject);
begin
Cds_Processo.Open;
Cds_Processo.First;
while not Tb_Processo.Eof do
Begin
if (Cds_Processo.Locate(´n_Guia´, StrToInt(Edit1.Text), [])) then
begin
Cds_Processo.Edit;
Cds_Processoddistribuicao.AsDateTime := StrToDate(MaskEdit1.Text);
Cds_ProcessoId_Procurador.Value := 3; //Tb_PessoalId.Value;
Cds_ProcessoId_Tipo_Distribuicao.Value := 2;
Cds_Processo.Post;
Cds_Processo.ApplyUpdates(0);
Cds_Processo.Next;
end;
end;
ShowMessage(´ Realizado passo 2 com SUCESSO!´);
end;
Valdirlucena
Curtidas 0
Respostas
Vinicius2k
19/05/2005
Colega,
Vc está baseado a condição do laço em um DataSet mas está aplicando o Next em outro DataSet.
Substitua:
Por:
PS: Vc está perdendo, e muito, em performance por utilizar TSQLTable. Se possível, migre este componente para TSQLDataSet.
Espero ter ajudado.
T+
Vc está baseado a condição do laço em um DataSet mas está aplicando o Next em outro DataSet.
Substitua:
while not Tb_Processo.Eof do
Por:
while not Cds_Processo.Eof do
PS: Vc está perdendo, e muito, em performance por utilizar TSQLTable. Se possível, migre este componente para TSQLDataSet.
Espero ter ajudado.
T+
GOSTEI 0
Valdirlucena
19/05/2005
Olá Vinicius2K,
Obrigado pela resposta mas, já tentei isso e não funcionou, continua em loop.
Obrigado pela resposta mas, já tentei isso e não funcionou, continua em loop.
Colega,
Vc está baseado a condição do laço em um DataSet mas está aplicando o Next em outro DataSet.
Substitua:
Por:
PS: Vc está perdendo, e muito, em performance por utilizar TSQLTable. Se possível, migre este componente para TSQLDataSet.
Espero ter ajudado.
T+
while not Tb_Processo.Eof do
while not Cds_Processo.Eof do
GOSTEI 0
Vinicius2k
19/05/2005
Colega,
Observe que vc tem o método Next atrelado ao resultado True do método locate.
Se o locate estiver retornando False, o Next nunca será aplicado.
Depende um pouco da lógica do seu processamento, mas acho que vc deveria retirar o Next de dentro do bloco condicionado ao resultado do locate.
T+
Observe que vc tem o método Next atrelado ao resultado True do método locate.
Se o locate estiver retornando False, o Next nunca será aplicado.
Depende um pouco da lógica do seu processamento, mas acho que vc deveria retirar o Next de dentro do bloco condicionado ao resultado do locate.
T+
GOSTEI 0