Abrir una SQL con ADO

15/09/2003 - 23:49 por carlos | Informe spam
Hola
he comenzado a trabajar con ADO y estaba acostun¡mbrado a abrir una SQL con
DAO, pero en ADO sólo se abrir tablas, ¿Cómo debo contruir la cadena de
conexión?


gracias


-
carlos
rsalo@apdo.com
-

Preguntas similare

Leer las respuestas

#1 Softjaen
16/09/2003 - 06:07 | Informe spam
"carlos" escribió:

he comenzado a trabajar con ADO y estaba acostun¡mbrado a abrir una SQL
con DAO, pero en ADO sólo se abrir tablas, ¿Cómo debo contruir la cadena
de conexión?




Hola, Carlos:

No entiendo muy bien lo que quieres decir con que sólo puedes abrir tablas.
Al no indicar la base de datos que utilizas, supongo que será Microsoft
Access.

Si tú tienes una consulta SQL almacenada en la base de datos de Access y la
quieres abrir, simplemente la abrirías como si de otra tabla se tratara:

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset

' Establecemos la conexión
'
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source = C:\bd1.mdb"
.Open
End With

' Abrimos el objeto Recordset
'
Set rst = New ADODB.Recordset
With rst
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "Consulta de Clientes", cnn, , , adCmdTable
End With

MsgBox rst.RecordCount

Si por el contrario lo que deseas es ejecutar una consulta SQL, escríbela en
el argumento «Source» del método «Open» del objeto «Recordset»:

rst.Open "SELECT * FROM Clientes", cnn, , , adCmdText

Aparte de la instrucción SQL, lo único que cambia es el argumento «Options»,
el cual será «adCmdText» (para consultas SQL), mientras que será
«adCmdTable» (para tablas o consultas almacenadas de Access). Para conocer
dichos valores, consulta en la ayuda de ADO la enumeración
«CommandTypeEnum».

Un saludo.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#2 carlos
19/09/2003 - 00:56 | Informe spam
Gracias, pero una aclaración:
¿La sql puede ser del tipo?: SELECT * FORM CLIENTES WHERE CODCLIENTE = " &
me.codicl & ";"


Gracias


-
carlos

-


"Softjaen" escribió en el mensaje
news:

"carlos" escribió:

> he comenzado a trabajar con ADO y estaba acostun¡mbrado a abrir una SQL
> con DAO, pero en ADO sólo se abrir tablas, ¿Cómo debo contruir la cadena
> de conexión?
>

Hola, Carlos:

No entiendo muy bien lo que quieres decir con que sólo puedes abrir


tablas.
Al no indicar la base de datos que utilizas, supongo que será Microsoft
Access.

Si tú tienes una consulta SQL almacenada en la base de datos de Access y


la
quieres abrir, simplemente la abrirías como si de otra tabla se tratara:

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset

' Establecemos la conexión
'
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source = C:\bd1.mdb"
.Open
End With

' Abrimos el objeto Recordset
'
Set rst = New ADODB.Recordset
With rst
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "Consulta de Clientes", cnn, , , adCmdTable
End With

MsgBox rst.RecordCount

Si por el contrario lo que deseas es ejecutar una consulta SQL, escríbela


en
el argumento «Source» del método «Open» del objeto «Recordset»:

rst.Open "SELECT * FROM Clientes", cnn, , , adCmdText

Aparte de la instrucción SQL, lo único que cambia es el argumento


«Options»,
el cual será «adCmdText» (para consultas SQL), mientras que será
«adCmdTable» (para tablas o consultas almacenadas de Access). Para conocer
dichos valores, consulta en la ayuda de ADO la enumeración
«CommandTypeEnum».

Un saludo.

Enrique Martínez
[MS MVP - VB]



Respuesta Responder a este mensaje
#3 Softjaen
19/09/2003 - 01:20 | Informe spam
"carlos" escribió:

¿La sql puede ser del tipo?: SELECT * FORM CLIENTES WHERE CODCLIENTE = " &
me.codicl & ";"




Siempre y cuando que el tipo de dato correspondiente al valor de «me.codicl»
sea el mismo que el del campo «CODCLIENTE», no hay ningún problema para
ejecutar ese tipo de consulta:

Tipo Numérico
rst.Open "SELECT * FROM CLIENTES WHERE CODCLIENTE = " & _
me.codicl, cnn, , , adCmdText

Tipo Alfanumérico
rst.Open "SELECT * FROM CLIENTES WHERE CODCLIENTE = (')" & _
me.codicl & "(')", cnn, , , adCmdText

En éste último caso, cuando la vayas a ejecutar quita los paréntesis. Los he
puesto para que puedas observar con claridad la comilla simple que deberás
de añadir si el tipo de campo es de texto.

Un saludo.

Enrique Martínez
[MS MVP - VB]
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida