problema con SELECT, pregunta de novato

06/05/2005 - 01:34 por Jorge Díaz | Informe spam
Buenas tardes, tengo un problema con una consulta SQL, resulta que tengo
esta sentencia:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart="&
01 &")")

y me da el error :

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de
datos en la expresión de criterios.
/default.asp, línea 201

entiendo que es por diferencia de tipos de datos ya probe encerrando el
01 en comillas, en parentesis y nada, he bajado unos manuales pero casi
siempre hacen referencia a todos los datos de la tabla (o sea sin la
clausula where).
En la tabla de Access el campo tipoart es caracter.

Que puede estar mal en esta sentencia

Muchas Gracias por su valioso tiempo

Preguntas similare

Leer las respuestas

#1 Mario Peña
06/05/2005 - 02:01 | Informe spam
Creo que te sobra un parentesis, y te faltarian unas comillas sencillas:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart= '"&
01 & "' ")

"Jorge Díaz" escribió en el mensaje
news:
Buenas tardes, tengo un problema con una consulta SQL, resulta que tengo
esta sentencia:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart="&
01 &")")

y me da el error :

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de
datos en la expresión de criterios.
/default.asp, línea 201

entiendo que es por diferencia de tipos de datos ya probe encerrando el
01 en comillas, en parentesis y nada, he bajado unos manuales pero casi
siempre hacen referencia a todos los datos de la tabla (o sea sin la
clausula where).
En la tabla de Access el campo tipoart es caracter.

Que puede estar mal en esta sentencia

Muchas Gracias por su valioso tiempo
Respuesta Responder a este mensaje
#2 Jorge Díaz
06/05/2005 - 02:10 | Informe spam
Funcionó!!!!
Agradezco mucho tu ayuda

Saludos


Mario Peña escribió:
Creo que te sobra un parentesis, y te faltarian unas comillas sencillas:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart= '"&
01 & "' ")

"Jorge Díaz" escribió en el mensaje
news:

Buenas tardes, tengo un problema con una consulta SQL, resulta que tengo
esta sentencia:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart="&
01 &")")

y me da el error :

Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de
datos en la expresión de criterios.
/default.asp, línea 201

entiendo que es por diferencia de tipos de datos ya probe encerrando el
01 en comillas, en parentesis y nada, he bajado unos manuales pero casi
siempre hacen referencia a todos los datos de la tabla (o sea sin la
clausula where).
En la tabla de Access el campo tipoart es caracter.

Que puede estar mal en esta sentencia

Muchas Gracias por su valioso tiempo





Respuesta Responder a este mensaje
#3 Jorge Díaz
06/05/2005 - 03:29 | Informe spam
El error ya no me lo está dando, pero no me muestra nada de información
que crees que estará sucediendo?

te pongo el código:

<%
Set RS = ConexionBD.Execute("select * from detarticulos where tipoart=
'"& 04 & "' ")
do while not RS.EOF
Response.Write("<P>T&iacute;tulo: " & RS("titulo") & "<BR>")
Response.Write("Autor: " & RS("autor") & "</P>")
RS.MoveNext
Loop
%>

en la tabla artículos tengo registros que cumplen esta condición y no me
muestra ninguna

Saludos


Mario Peña escribió:

Creo que te sobra un parentesis, y te faltarian unas comillas sencillas:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart=
'"&
01 & "' ")

Respuesta Responder a este mensaje
#4 Jorge Díaz
06/05/2005 - 16:27 | Informe spam
tienes razón Matías, realmente lo que he hecho es asignarle simplemente
en forma plana, o sea tipoart = "01", ahora fijate (y perdona que
abuse), ya lo cree de esa forma, ahora el problema es que no puedo
mostrar en la página un código que vi en el foro para que en el articulo
quede un link, revisamelo por favor porque yo ya no se por donde darle.
El código es el siguiente:

<%
Set RS = ConexionBD.Execute("select * from detarticulos where
detarticulos.tipoart= '01'")
do while not RS.EOF
Response.Write "<a href=""paginadestino.asp?ID=" & RS("id") &
RS("id")""")></a> <BR>"
RS.MoveNext
Loop
%>

lo que quiero con este código es que se cree un link para poder enviarle
los datos a "paginadestino.asp" y no logro conseguirlo

Gracias nuevamente

Matias Iacono escribió:
En realidad el enfoque es equivocado.

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart= '"&
01 & "' ")

En tu caso, estas tratando a 01 como si fuera una variable, ya que intentas
concatenarla con tu consulta. 01 no puede ser una variable por restricciones
del lenguaje, asi que es tratada como un numero, si no te da error es por
milagro :D

En tu caso, lo puedes solucionar de dos maneras:

Creando una variable que contenga datos, como por ejemplo:

Variable1 = "01"

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart= '"&
Variable1 & "' ")

En este caso, se asigna el valor 01 en formato texto a la variable Variable1
y en la consulta se concatena.

O si no:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart=
'01'")

Simplemente no concatenas y creas la consulta plana.

Saludosm

Respuesta Responder a este mensaje
#5 Matias Iacono
06/05/2005 - 17:16 | Informe spam
En realidad el enfoque es equivocado.

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart= '"&
01 & "' ")

En tu caso, estas tratando a 01 como si fuera una variable, ya que intentas
concatenarla con tu consulta. 01 no puede ser una variable por restricciones
del lenguaje, asi que es tratada como un numero, si no te da error es por
milagro :D

En tu caso, lo puedes solucionar de dos maneras:

Creando una variable que contenga datos, como por ejemplo:

Variable1 = "01"

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart= '"&
Variable1 & "' ")

En este caso, se asigna el valor 01 en formato texto a la variable Variable1
y en la consulta se concatena.

O si no:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart=
'01'")

Simplemente no concatenas y creas la consulta plana.

Saludosm

Matías Iacono
Microsoft MVP ASP/ASP.net - DCE3

Profile: http://aspnet2.com/mvp.ashx?MatiasIacono
"Jorge Díaz" escribió en el mensaje
news:ev$
El error ya no me lo está dando, pero no me muestra nada de información
que crees que estará sucediendo?

te pongo el código:

<%
Set RS = ConexionBD.Execute("select * from detarticulos where tipoart= '"&
04 & "' ")
do while not RS.EOF
Response.Write("<P>T&iacute;tulo: " & RS("titulo") & "<BR>")
Response.Write("Autor: " & RS("autor") & "</P>")
RS.MoveNext
Loop
%>

en la tabla artículos tengo registros que cumplen esta condición y no me
muestra ninguna

Saludos


Mario Peña escribió:

Creo que te sobra un parentesis, y te faltarian unas comillas sencillas:

Set RS = ConexionBD.Execute("select * from detarticulos where tipoart=
'"&
01 & "' ")

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida