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

Rodrigo - Alma Informática Ltda desenv28 em almainformatica.com.br
Seg Abr 18 11:11:39 -03 2005


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






Mais detalhes sobre a lista de discussão lista