ADO X FIREBIRD, .INDEX E .SEEK

FNANDOOD 23/02/2011 01:56:14
#366300
Quero saber se funciona o .index e o .seek no firebird, pois aqui retorna índice inexistente:


rst.Index = [Ô]Ind_codcbo[Ô]

[ô]Abre o Recordset
rst.Open [Ô]TB_CBO[Ô], cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect


[ô]Busca pela registro
rst.Seek .......
GREGO 23/02/2011 15:50:17
#366382
não sei se isso funciona, mas acho que é melhor você usar sql para pesquisar registros no banco

select * from tabela where campo like [ô]%maria%[ô]

MARCELO.TREZE 23/02/2011 16:31:22
#366393
olha o colega grego colocou certo o melhor é se usar query

seria algo asism

  rst.Open [Ô]SELECT * FROM TB_CBO WHERE campo=[ô][Ô] & txtconsulta & [Ô][ô][Ô], cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect 
GREGO 23/02/2011 16:36:05
#366394
e digo mais


é ainda melhor fazer isso via procedure!
EDERMIR 23/02/2011 16:39:29
#366396
Já tentou mudar a ordem dos comandos?


[ô]Abre o Recordset
rst.Open [Ô]TB_CBO[Ô], cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect

rst.Index = [Ô]Ind_codcbo[Ô]


[ô]Busca pela registro
rst.Seek .......
FNANDOOD 23/02/2011 22:31:16
#366426
Citação:

:
Já tentou mudar a ordem dos comandos?


[ô]Abre o Recordset
rst.Open [Ô]TB_CBO[Ô], cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect

rst.Index = [Ô]Ind_codcbo[Ô]


[ô]Busca pela registro
rst.Seek .......



Tentei desta forma, e da uma msg dizendo: [Ô]O provedor atual não oferece suporte para a interface necessária à funcionalidade de Índice[Ô]
LLAIA 24/02/2011 14:27:17
#366485
Ou seja, o driver que vc usa não dá suporte. Experimente o método First do objeto Recordset. Olha esse exemplo usando o banco employee que acompanha o Firebird.


rs.Open [Ô]select * from country[Ô], , adOpenKeyset

rs.Find [Ô]country=[ô]USA[ô][Ô], , adSearchForward, 0

If rs.EOF Then
MsgBox [Ô]Nada encontrado[Ô]
Else
MsgBox rs([Ô]country[Ô])
End If
FNANDOOD 25/02/2011 13:42:42
#366594
LLaia,fiquei na dúvida para que serve os índices criados no Firebird, e como eu chamo esses índices?
LLAIA 25/02/2011 20:37:20
#366627
Resposta escolhida
Citação:

:
LLaia,fiquei na dúvida para que serve os índices criados no Firebird, e como eu chamo esses índices?



Os índices semrpe serviram para o engine de qualquer banco de dados localizar mais rápido os registros. faz parte do processo de otimização. Claro que índices demais prejudicam. Tem que ter critério. Índices não são efetivos em campos com granularidade baixa, ou seja, dados que se repetem nos registros.

A DAO exige um índice para executar o Seek no Access, devido à carcterística do Access de ser apenas um arquivo estruturado de dados, e ela com o Jet faz todo o serviço. Access não é um SGDB. Em um SGBD vc pede o que quer, e o otimizador seleciona o índice adequado para a consulta em questão. Claro que é possível forçr o uso de um índice numa query também.
Tópico encerrado , respostas não são mais permitidas