Tem algum problema com SQLQuery do DBExpress?

09/06/2008

0

Pessoal estou tentando fazer uma ligação mestre/detalhe e se eu ligar um sqlquery + dsprovider + clientdataset para fazer o detalhe aponta para este erro aqui
[b:68e38813f2]xsqlda index out of range[/b:68e38813f2]

Agora se eu usar o SQLDataSet + DSProvider + CDSDataSet funciona.

Tem alguma diferença entre um componente e o outro?

Estou usando Delphi 7 + DBExpress


Adriano_servitec

Adriano_servitec

Responder

Posts

09/06/2008

Adriano_servitec

Outra duvida também diz a respeito de um programa meu multicamadas (´n-tier´)

Se eu fizer esta consulta la no servidor

with cdsAltDEAR do
   begin
     Close;
     Params[0].AsString := maskAltContDear.Text;
     Open;
     if not IsEmpty then
     begin
       maskAltContDear.Text := Params[0].AsString;
     end
     else
     begin
       Dc_MessageDlg(´Nº do Controle: ´+maskAltContDear.Text+´ não encontrada.´+13+
                     ´Digite outro Nº do Controle no formato 9999/AAAA Ex:(0001/2008).´, mtInformation, [MbOk],0);
       maskAltContDear.SetFocus;
     end;
   end;

Demora um pouco para trazer a busca, agora se eu fizer a mesma busca local se torna bem rápido.

Lembrando que esta tabela tambem é um mestre/detalhe ligado nas propriedades MasterSource - MasterFields e IndexFieldsName

Qual é o motivo desta demora?

O pior é que eu não entendi pq se eu fizer via SQL passando por parâmetros em vez de Mestre/Detalhe ligando as propriedades fica super rápido a consulta vindo lá do servidor

with cdsAltDEAR do
  begin
    Close;
    Params[0].AsString := maskAltContDear.Text;
    Open;
    if not IsEmpty then
    begin
      maskAltContDear.Text := Params[0].AsString;//Params.ParamByName(´pgerarchave´).AsString;
      with cdsAltTB_Proprietario do
      begin
        Close;
        Params[1].AsString := maskAltContDear.Text;
        Open;
      end;
    end
    else
    begin
      Dc_MessageDlg(´Nº do Controle: ´+maskAltContDear.Text+´ não encontrada.´+13+
                    ´Digite outro Nº do Controle no formato 9999/AAAA Ex:(0001/2008).´, mtInformation, [MbOk],0);
      maskAltContDear.SetFocus;
    end;
  end;


Será que em sistemas multicamadas não é aconselhável usar as propriedades
[b:247b936314]MasterSource - MasterFields e IndexFieldsName [/b:247b936314]


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar