ADOBD PARA SQL

JOHNHEY 19/12/2012 08:07:58
#416174
Para ADODB faço da seguinte forma:
   
Dim rs As New ADODB.Recordset

Call abreconexao

Conex.CursorLocation = adUseClient

rs.Open [Ô]select * from TBPais[Ô], Conex, adOpenDynamic, adLockOptimistic
rs.MoveNext

if rs.eof then
rs.movelast
end if

txtregisto.Text = rs([Ô]registo[Ô])
txtnome.Text = rs([Ô]nome[Ô])


Como faço a mesma linha para SQL??
FEDERHEN 19/12/2012 08:18:01
#416175
No exemplo que você postou é ADODB com SQL, pois você estra usando uma conexão ADODB e [Ô]select * from TBPais[Ô] é SQL.

Não entendi a tua dúvida !!!

JOHNHEY 19/12/2012 08:36:50
#416176
Eu não estou a usar, esse foi um modelo que encontrei na net em uma duvida de um colega e ele diz no final do tópico que funcionou e postou esse codigo, o que preciso é o seguinte:

O que preciso fazer são os botões próximo registo, registo anterior e mover para o primeiro e mover para o ultimo.
já tenho em um classe geral uma conexão:

  
Public Sub abreconexao()
linha = Application.StartupPath & [Ô]\SIAF.mdf[Ô]
myConnectionString = [Ô]Data source=.\SQLEXPRESS;AttachDbFilename=[Ô] & linha & [Ô];Integrated Security=True;User Instance=True[Ô]

con = New SqlConnection(myConnectionString)
Con.Open()
End Sub
OMAR2011 19/12/2012 09:27:47
#416178
Estou colocando este código de acordo peguei e verifiquei que foi o melhor para movimentação de registros.Vale a pena usar para tal objetivo.
Basta adaptar para seu projeto.Qual dúvida,poste de novo.

Título da Dica: Conexão ADO um pouco mais profissional e usando Command

Postada em 22/4/2003 por ®ogerVB
--------------------------------------------------------------------------------
Neste exemplo de conexão estou usando o ADO 2.7, e 3 TextBox, com os nomes TxtCodigo, TxtNome e TxtObs,
e 4 CommandButton com os nome CmdPrimeiro, CmdAnterior, CmdProximo e CmdUltimo para a movimentação no banco!
Depois de adicionado esse objetos pode e a referencia pode copiar o seguinte código:

Public Conexao As ADODB.Connection
Private RsTabela As ADODB.Recordset
Private Cmd As ADODB.Command
_______________________________________________________________________

Private Sub Atualizar()
TxtCodigo.Text = RsTabela([Ô]codigo[Ô])
TxtNome.Text = RsTabela([Ô]nome[Ô])
TxtObs.Text = RsTabela([Ô]obs[Ô])
End Sub
_______________________________________________________________________

Private Sub CmdAnterior_Click()
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Conexao
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]select * from tabela where codigo=(select max(codigo) from tabela where codigo < ?)[Ô]
Cmd.Parameters(0).Value = TxtCodigo.Text
Set RsTabela = Cmd.Execute

If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
Set Cmd = Nothing
End Sub
_______________________________________________________________________

Private Sub CmdPrimeiro_Click()
Set RsTabela = New ADODB.Recordset
RsTabela.Open [Ô]Select * From Tabela where codigo=(select min(codigo) from tabela)[Ô], Conexao, adOpenDynamic

If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
End Sub
_______________________________________________________________________

Private Sub CmdProximo_Click()
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Conexao
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]select * from tabela where codigo=(select min(codigo) from tabela where codigo > ?)[Ô]
Cmd.Parameters(0).Value = TxtCodigo.Text
Set RsTabela = Cmd.Execute

If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
Set Cmd = Nothing
End Sub
_______________________________________________________________________

Private Sub CmdUltimo_Click()

Set RsTabela = New ADODB.Recordset
RsTabela.ActiveConnection = Conexao
RsTabela.CursorLocation = adUseClient
RsTabela.CursorType = adOpenDynamic
RsTabela.Open [Ô]Select * From Tabela where codigo=(select max(codigo) from tabela)[Ô]

If Not RsTabela.EOF Then
Atualizar
End If
RsTabela.Close
Set RsTabela = Nothing
End Sub
_______________________________________________________________________

Private Sub Form_Load()
[ô]abre banco
Set Conexao = New ADODB.Connection
Conexao.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0; Data Source= [Ô] & App.Path & [Ô]\banco.mdb[Ô]
Frame1.Enabled = False
CmdPrimeiro_Click
End Sub
JOHNHEY 19/12/2012 10:04:29
#416181
Ok, mas não sei alterar para SQL, algumas coisas sei mas outras não.

exemplo:
  
Public Conexao As ADODB.Connection acho que esse fica assim: Public Conexao As SqlConnection
Private RsTabela As ADODB.Recordset esse eu não sei se esta certo: Private RsTabela As Dataset
Private Cmd As ADODB.Command acho que esse fica assim: Private Cmd As SqlCommand


Mas não sei se esta certo.

E essa linha abaixo também não sei como fica em SQL

RsTabela.CursorLocation = adUseClient
RsTabela.CursorType = adOpenDynamic


MARCELO.TREZE 19/12/2012 10:45:58
#416182
O Titulo do Tópico não condiz com a duvida, sua duvida é [txt-color=#0000f0][Ô]Como criar botões de navegação?[Ô][/txt-color]

bom esta é uma duvida muito frequente ultimamente no fórum e estou pensando em até criar um arquivo a respeito.

Mas vamos lá:

Primeiro gostaria de expressar a minha forma de pensar sobre o assunto, pois eu particularmente não gosto deste método, veja bem eu já o usei quando comecei a programar em DAO, porém pense bem, se você for usar o método de navegação em poucos registro não terá problema algum em encontrar o registro que procura, mas e se o seu banco de dados contiver 1.000.000 (Hum Milhão) de registros, você vai ficar clicando em próximo até o [Ô]dedo cair[Ô]. meio primitivo este método não acha?

Atualmente uso um grid e um textbox e preencho o grid conforme vou digitando exemplo, se eu digitar A no textbox apenas os registros que começam com A serão listados, se eu colocar o R em seguida serão listadas todas as que começam com AR, e desta lista escolho o que procuro, muito mais pratico, pelo menos é o que eu acho.

porém você deseja navegar nos registro então siga estes procedimentos

No general do form declare os recordsets

    Dim RST As ADODB.Recordset
Dim CNN As ADODB.Connection
Dim strCnxn As String


no load do form abra a conexão

    Set CNN= New ADODB.Connection

strCnxn = [Ô]Coloque sua string de conexão aqui[Ô]

CNN.Open strCnxn
[txt-color=#007100][ô] Defina o recorset[/txt-color]
Set RST = New ADODB.Recordset
[txt-color=#007100] [ô] Defina o cursor location como cliente para ativar a propriedade AbsolutePosition[/txt-color]
RST.CursorLocation = adUseClient
[txt-color=#007100][ô] Agora iremos abrir a tabela desejada[/txt-color]
RST.Open [Ô]sua_tabela[Ô], CNN, adOpenStatic, adLockReadOnly, adCmdTable
[txt-color=#007100][ô] pronto estamos prontos para navegar entre os registros[/txt-color]


coloque agora nos botões de navegação

   [txt-color=#007100][ô] Primeiro[/txt-color]
RST.MoveFirst


   [txt-color=#007100][ô]Ultimo[/txt-color]
RST.MoveLast


   [txt-color=#007100][ô]Proximo[/txt-color]
RST.MoveNext
If RST.EOF Then
MsgBox [Ô]Fim dos Registros![Ô]
RST.MoveLast
End If


   [txt-color=#007100][ô]Anterior[/txt-color]
RST.MovePrevious
If RST.BOF Then
MsgBox [Ô]Inicio dos registros![Ô]
RST.MoveFirst
End If



espero que eu tenha sido claro o suficiente, e tenha ajudado



JOHNHEY 19/12/2012 11:49:07
#416183
Mas eu não posso fazer em um módulo a declaração dos recordsets e uma função para abrir a conexão?, assim em toda a parte do programa que eu precisar basta chamar.
MARCELO.TREZE 19/12/2012 12:17:16
#416186
eu dei uma explicação superficial do assunto, mas claro que você pode criar um módulo de conexão, desde que da maneira como eu expliquei.

OMAR2011 19/12/2012 12:41:39
#416188
Qual vb esta usando?
JOHNHEY 19/12/2012 13:09:12
#416191
visual studio 2010
MARCELO.TREZE 19/12/2012 13:16:15
#416192
e sacanagem comigo ultimamente todo mundo de vb.net quer postar em vb6, desisto......volto ano que vem se o mundo não acabar.


feliz natal a todos e um prospero ano de 2013.



Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas