[firebase-br] INDEX_NAME FROM ALL_INDEXES do Oracle para o FireBird

Paulo Ricardo magi0314 em terra.com.br
Qui Dez 2 20:20:54 -03 2004


Como faço para poder pegar os nomes de indices das tabelas no Firebird.
Tenho a função abaixo para Oracle. Como muda-la para poder funcionar com o Firebird.
Qualquer ajuda eu agradeço.


'enche combobox (txtIndices) com os indices da tabela do módulo
Public Sub EncheLstIndices(F As Form)
 Dim i As Integer, vgCatTab As ADODB.Recordset
 With txtIndices
  .Clear                                          'esvazia a combo de indices
  vgNIndOrdem$ = ""
  .AddItem LoadGasString(140)                     'Nenhum...
  If Len(F.vgUltimaOrdem$) > 0 Then
   .AddItem F.vgUltimaOrdemComTit$                'Definido pela filtragem/ordenacao
  Else
   .AddItem LoadGasString(143)                    'a definir
  End If
  RsOpen vgCatTab, "SELECT INDEX_NAME FROM ALL_INDEXES WHERE UPPER(TABLE_NAME) = '" + UCase$(F.vgIdentTab) + "'"
  If vgCatTab.RecordCount > 0 Then                'se achou indice
   Do While Not vgCatTab.EOF                      'corre todos eles
    If InStr(vgCatTab!Index_Name, "~") = 0 Then   'despresa os invisíveis
     .AddItem PegaTituloIndice$(vgCatTab!Index_Name) 'e adiciona na lista
     vgNIndOrdem$ = vgNIndOrdem$ + vgCatTab!Index_Name + "|"
    End If
    vgCatTab.MoveNext
   Loop
  End If
  vgCatTab.Close                                     'fecha tabela
  Set vgCatTab = Nothing
 End With
End Sub



Mais detalhes sobre a lista de discussão lista