[firebase-br] DELPHI 7 X FIREBIRD 1.5 X DBEXPRESS - off topic

Antonio Carlos a.lima.silva em terra.com.br
Seg Abr 18 14:19:18 -03 2005


Uê ??? Que eu saiba o Firebird ao receber uma consulta SQL e escolhe sozinho 
o indice de busca, inclusive se nao me engano, a desempenho dele acaba 
ficando comprometido de escolhemos incorretamente os indices.

Nao entendo o porque de vc querer 'escolher' os indices, isso era algo que 
se fazia com bancos como XBase, Paradox , de sistema de arquivos.

Antonio Carlos

----- Original Message ----- 
From: "Rodrigo - Alma Informática Ltda" <desenv28 em almainformatica.com.br>
To: "FireBase" <lista em firebase.com.br>; "Carlos H. Cantu" 
<listas em warmboot.com.br>; "Pha-Lista" <lista em pha.com.br>
Sent: Monday, April 18, 2005 11:11 AM
Subject: [firebase-br] DELPHI 7 X FIREBIRD 1.5 X DBEXPRESS - off topic


> Amigos,
>
> Estou desenvolvendo uma rotina no delphi para pegar automaticamente pra 
> mim
> os nomes dos índice e jogar num radiogrup num formulário para que o 
> usuário
> selecione por qual ordenação ele deseja fazer, desde pesquisa ate
> relatórios.
>
> Só que chega num determinado ponto da rotina a mesma da o seguinte erro :
>
>    tbquery : índice de campo fora de faixa
>
> o código e este abaixo :
>
>
> procedure TForm1.FormShow(Sender: TObject);
> var
>  Counter, AtualFld, CountFld : Integer;
>  FldIndex                      : String;
> begin
>
>  with tbQuery do
>  begin
>
>    if (IndexNames <> Nil) and (IndexNames.Count > 0) then
>    begin
>       CountFld := IndexNames.Count;
>    end
>    else
>    begin
>       IndexDefs.Update;
>       CountFld := Min(4, IndexDefs.Count);
>    end;
>
>    TypeIndex := IndexFieldNames <> '';
>
>    SaveBookMark := GetBookMark;
>
>    if TypeIndex then
>       OldIndex := IndexFieldNames
>    else
>       OldIndex := IndexName;
>
>     for Counter := 0 to CountFld-1 do
>     begin
>
>     tbquery.Active := false;
>
>       if (IndexNames <> Nil) and (IndexNames.Count > 0) then
>          IndexName := IndexNames[Counter]
>       else
>          IndexName := IndexDefs[Counter].Name;
>
>        { Get Field's Index }
>        if Counter < 9 then
>           FldIndex := '&' + IntToStr(Counter+1) + '. '
>        else
>           FldIndex := '&' +  chr(90 + (9 - Counter)) + '. ';
>
>         AtualFld := 0;
>
>
>        tbquery.Active := true;
>
> o erro da aqui nesta linha de comando
> //
>          if ((IndexFields[AtualFld].FieldName = 'FAZENDA') and
>              (tbQuery.Name <> 'TBFAZENDA') and (tbQuery.Name <>
> 'TBCRIADOR')) or
>             (IndexFields[AtualFld].FieldName = 'FAZENDADOADORA') then
>            Inc(AtualFld);
> //
>
>        FldIndex := FldIndex + IndexFields[AtualFld].DisplayName; //
> DisplayLabel;
>
>        rgOrder.Items.Add(FldIndex);
>
>     end;
>
>     rgOrder.ItemIndex := 0;
>
>     tbquery.Active := false;
>
>     if TypeIndex then
>       IndexFieldNames := OldIndex
>     else
>       IndexName := OldIndex;
>
>     { Abre por Default na Segunda Chave - Geralmente de Descricao }
>     if CountFld > 1 then
>     begin
>       rgOrder.ItemIndex := 1;
>       if IndexNames <> nil then
>          IndexName := IndexNames[1]
>       else
>          IndexName := IndexDefs[1].Name;
>     end;
>
>     tbquery.Active := true;
>
>       MasterSource := MasterSource;
>  end;
>
> end;
>
>
> obs : estou utilizando componentes dbexpress
>
> Se alguém puder me ajudar ficarei grato.
>
> Abraço a todos,
>
>
> Rodrigo
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas:
> http://search.gmane.org/search.php?group=rebase
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: 
> http://search.gmane.org/search.php?group=firebase
>
> 






Mais detalhes sobre a lista de discussão lista