Access con ODBC - URGENTE

23/08/2006 - 19:11 por Jaime Lucci | Informe spam
Hola a todos.

Estoy intentando ejecutar una consulta con parámetros en ACCESS 2003 desde
VB 2005. Cuando lo realizo con OleDB no tengo ningun inconveniente, el
problema me surge cuando lo quiero hacer por ODBC, que me sale el siguiente
error:

ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] Invalid SQL
statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

El código es el siguiente:

Dim CnnODBC As Odbc.OdbcConnection
Dim cmd As Odbc.OdbcCommand
'Me conecto a la base
CnnODBC = New Odbc.OdbcConnection("DSN=asd")
CnnODBC.Open()
'Establezo cual es la consulta a ejecutar
cmd = New Odbc.OdbcCommand("AgregarCliente", CnnODBC)
'Avisamos que vamos a ejecutar una "Consulta"
cmd.CommandType = CommandType.StoredProcedure
'Cargo los valores de los campos
With cmd.Parameters
.Add("paramRazonSocial", txtRazonSocial.Text)
.Add("paramDomicilio", txtDomicilio.Text)
.Add("paramNumCliente", txtNumCliente.Text)
End With
'Ejecuto el comando
cmd.ExecuteNonQuery()
'Me desconecto de la base
CnnODBC.Close()

El error me sale en la linea del execute. Calculo que el error es porque el
CommandText es el nombre de la consulta ("AgregarCliente"), y no una
sentencia SELECT, INSERT, etc.. Lo que no termino de entender porque este
mismo codigo con objetos OleDB funciona correctamente. Alguna idea de porque
con ODBC tengo problemas?

Saludos y gracias

Jaime Lucci.

Preguntas similare

Leer las respuestas

#1 Daniel Nogues
01/09/2006 - 10:41 | Informe spam
Hola Jaime,

Prueba a usar una Conection String directamente, tal como

"Driver={Microsoft Access Driver
(*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;"

para ver si funciona. Si tienes archivo de workgroup usa esta:

"Driver={Microsoft Access Driver
(*.mdb)};Dbq=C:\mydatabase.mdb;SystemDB=C:\mydatabase.mdw;"


Saludos!


"Jaime Lucci" wrote in message
news:u$
Hola a todos.

Estoy intentando ejecutar una consulta con parámetros en ACCESS 2003 desde
VB 2005. Cuando lo realizo con OleDB no tengo ningun inconveniente, el
problema me surge cuando lo quiero hacer por ODBC, que me sale el
siguiente
error:

ERROR [42000] [Microsoft][ODBC Microsoft Access Driver] Invalid SQL
statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or
'UPDATE'.

El código es el siguiente:

Dim CnnODBC As Odbc.OdbcConnection
Dim cmd As Odbc.OdbcCommand
'Me conecto a la base
CnnODBC = New Odbc.OdbcConnection("DSN=asd")
CnnODBC.Open()
'Establezo cual es la consulta a ejecutar
cmd = New Odbc.OdbcCommand("AgregarCliente", CnnODBC)
'Avisamos que vamos a ejecutar una "Consulta"
cmd.CommandType = CommandType.StoredProcedure
'Cargo los valores de los campos
With cmd.Parameters
.Add("paramRazonSocial", txtRazonSocial.Text)
.Add("paramDomicilio", txtDomicilio.Text)
.Add("paramNumCliente", txtNumCliente.Text)
End With
'Ejecuto el comando
cmd.ExecuteNonQuery()
'Me desconecto de la base
CnnODBC.Close()

El error me sale en la linea del execute. Calculo que el error es porque
el
CommandText es el nombre de la consulta ("AgregarCliente"), y no una
sentencia SELECT, INSERT, etc.. Lo que no termino de entender porque este
mismo codigo con objetos OleDB funciona correctamente. Alguna idea de
porque
con ODBC tengo problemas?

Saludos y gracias

Jaime Lucci.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida