Consulta a sql server desde visual Basic

jmlabernia
07 de Diciembre del 2004

Hola a todos!!

Bueno, a ver si alguien puede ayudarme.... tengo poca idea de vb, soy novatillo, y quizás sea una tonteria lo que voy a preguntar, xo es que no consigo obtener una tupla en una base de datos y escribir cada campo en un textfield diferente!!!

Lo que a mi me gustaría es realizar una Query de tipo “select”, y guardar el resultado en una especie de estructura. Luego había pensado escribir cada campo de esta estructura en un textfield diferente en un formulario.

Tengo poca idea de bd con vb, así que leí en una página como conectarlo a través de ADO. Así es como escribo valores de un formulario en mi bd:

Private Sub Command1_Click()
' Por si ya estaba abierta...
Set cnn = Nothing
Set rst = Nothing

' Crear los objetos
Set cnn = New ADODB.Connection
Set rst = New ADODB.Recordset

' abrir la base usando las credenciales de Windows
cnn.Open "Provider=SQLOLEDB; " & _
"Initial Catalog=Prueba; " & _
"Data Source=PORTATIL_CHM; " & _
"integrated security=SSPI; persist security info=True;"

' abrir el recordset indicando la tabla a la que queremos acceder

rst.Open "insert into alumnos (id_alumno, passw, nombre, apellidos, email) values ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')", cnn, adOpenDynamic, adLockOptimistic

End Sub

Pero cuando hago un ‘rst.Open “select lo que sea.......’ me da error, no me deja con el .Open. Además, dónde se quedaría el resultado de la select??

Si alguien sabe como ayudarme con ADO y el tipo de código que tengo, se lo agradecería mucho. O también sino como podría configurar esta conexión los parámetros de conexión que muestro arriba con DAO que me lo escriba xfavor!!! Porque tengo entendido que cambiando este código a DAO quizás fuera más fácil todo esto..... Muchisimas gracias de antemano. Un saludo!!!!

mvallejos
07 de Diciembre del 2004
Estás usando mal el objeto

Set Rst = cnn.execute("insert into alumnos (id_alumno, passw, nombre, apellidos, email) values ('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text & "','" & Text4.Text & "','" & Text5.Text & "')"

Si bien esto no es un Select, si querés hacer una query y colocarla en textos

Dim Cnn as New ADODB.Connection
Dim Rs as New ADODB.Recordset

cnn.Open "Provider=SQLOLEDB; " & _
"Initial Catalog=Prueba; " & _
"Data Source=PORTATIL_CHM; " & _
"integrated security=SSPI; persist security info=True;"

Rs.Open <Sql>,cnn,AdOpenStatic

Luego, vas repartiendo los campos en distintos textos

Text1.Text = Rst!<Campo1>
Text2.Text = Rst!<Campo2>
.................................................
TextN.Text = Rst!<CampoN>

Espero que sirva

Saludos desde Argentina