LOCALIZAR UM REGISTRO NO SQL 2000

JOSECPD 11/11/2009 17:48:23
#327459
Ola Pessoa
Gostaria de saber como localizo um registro na base de dados SQL 2000
na base acess eu uso essa rotina ai abaixo.
Mycon2.Open [Ô]PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] + DBName + [Ô];[Ô]
MyTable2.Open [Ô]Lancamento[Ô], Mycon2, adOpenKeyset, adLockOptimistic, adCmdTableDirect
MyTable2.Index = [Ô]Ficha[Ô]

MyTable2.Seek Array(vexercicio, vnumero, vtipo), adSeekFirstEQ
If MyTable2.EOF Then
MyTable2.AddNew
MyTable2([Ô]exercicio[Ô]) = vexercicio
MyTable2([Ô]numero[Ô]) = vnumero
MyTable2([Ô]tipo[Ô]) = vtipo
MyTable2([Ô]conta_c[Ô]) = vcontad
MyTable2([Ô]valor[Ô]) = vvalor
MyTable2.Update
Else
MyTable2([Ô]conta_c[Ô]) = vcontad
MyTable2([Ô]valor[Ô]) = vvalor
MyTable2.Update
End If

Como faria isso no SQL 2000
se alguem puder me ajuar eu agradeço
obrigado.
MARCOSLING 12/11/2009 18:21:26
#327560
dim v_rs as adodb.recordset

set v_rs= Mycon2.execute([Ô]select campo1, campo2, campo3 from tabela where campo1=valor1[Ô])

if v_rs.eof then
Mycon2.execute([Ô]insert into tabela (campo1, campo2, campo3) values (valor1, valor2, valor3)[Ô])
else
Mycon2.execute([Ô]update tabela set campo2=valor2, campo3=valor3 where campo1=valor1[Ô])
end if

a grosso modo seria isso.
TECLA 23/11/2009 20:51:04
#328435
Qual é a ESTRUTURA da tabela em que se deseja efetuar a consulta?
Ou melhor, qual é o CAMPO a ser pesquisado?
JOSECPD 26/11/2009 15:37:12
#328618
eu tenho uma indice com o nome de Ficha na minha tabela
e quero buscar pelo indice.
MARCOSLING 26/11/2009 15:58:45
#328619
Então é só colocar o campo que vc procura na clausula where...
TECLA 26/11/2009 16:30:10
#328623
Citação:

TECLA escreveu:
Qual é a ESTRUTURA da tabela em que se deseja efetuar a consulta?
Ou melhor, qual é o CAMPO a ser pesquisado?



[txt-size=2]?[/txt-size]
JOSECPD 02/12/2009 10:18:26
#328969
usar essa consulta eu sei,
eu gostaria de fazer a pequisa pelo indice criado no meu Banco de Dados
o indice como no exemplo abaixo do no banc de dados Acess
MyTable2.Index = [Ô]Ficha[Ô]
MyTable2.Seek Array(vexercicio, vnumero, vtipo), adSeekFirstEQ
If MyTable2.EOF Then
msgbox [Ô]NAO CADASTRADO[Ô]
Else
val1=iif(mytable2(10)<>[Ô][Ô],mytable2(10),0)
end if

Sera que alguem podia me ajudar
Obrigado
MARCOSLING 02/12/2009 11:50:46
#328979
Citação:

JOSECPD escreveu:
usar essa consulta eu sei,
eu gostaria de fazer a pequisa pelo indice criado no meu Banco de Dados
o indice como no exemplo abaixo do no banc de dados Acess
MyTable2.Index = [Ô]Ficha[Ô]
MyTable2.Seek Array(vexercicio, vnumero, vtipo), adSeekFirstEQ
If MyTable2.EOF Then
msgbox [Ô]NAO CADASTRADO[Ô]
Else
val1=iif(mytable2(10)<>[Ô][Ô],mytable2(10),0)
end if

Sera que alguem podia me ajudar
Obrigado



Qual é a razão de vc querer fazer a pesquisa pelo índice?
JOSECPD 02/12/2009 18:21:01
#329012
e que eu ja tenho o indice criado no meu banco de Dados e gostaria de saber como usar
no sql 2000.


MARCOSLING 02/12/2009 18:49:32
#329013
Então voce poderá utilizar o Table Hint

através dos table hints podemos especificar que índice queremos que o query do Sql Server utilize para uma determinada query, utilizando a cláusula index.

ex.: select * from tabela with (index=nome_do_indice)

para mais detalhes pesquise sobre o table hint no book online do sqlserver
Tópico encerrado , respostas não são mais permitidas