Foros del Web » Programando para Internet » ASP Clásico »

Error en cadena SQL

Estas en el tema de Error en cadena SQL en el foro de ASP Clásico en Foros del Web. Señores: Mucho les agradecere si me pudieran ayudar en encontrar el error que tengo y no detecto aun donde pueda estar. (Adjunto el codigo de ...
  #1 (permalink)  
Antiguo 26/01/2004, 16:25
 
Fecha de Ingreso: diciembre-2003
Mensajes: 13
Antigüedad: 20 años, 6 meses
Puntos: 0
Error en cadena SQL

Señores:

Mucho les agradecere si me pudieran ayudar en encontrar el error que tengo y no detecto aun donde pueda estar.
(Adjunto el codigo de mi pequeño programa para mayor comprension).

La idea es que capturo en un form (plantilla)
los datos de PAIS y quiero grabarlo en mi BD, nada mas.

Para ello, primeramente debo ver si ya dicho Pais a registrar esta guardado o no. Entonces, al hacer la cadena SQL de busqueda con el codigo de dicho pais es que me sale el sgte. mensaje de error:
"Error de sintaxis en la cláusula FROM. "

Probé tanto con:
sSQL="SELECT * FROM Pais WHERE (CodigoPais='"&pCodPais&"');"

como con:
sSQL="SELECT * FROM Pais WHERE (CodigoPais="&pCodPais&");"

...pero nada...me sigue saliendo el error.

Espero me puedan ayudar. Muchas gracias de antemano

Franco
([email protected])

<body>
<%
pNomPais=Request.form("NomPais")
pCodPais=Request.form("CodPais")

Dim sSQL,conn,RS,Temp,MiID,RsId,cSql

'-------------------INSERTAR PAIS
set conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
conn.Open "ieee3"

sSQL="SELECT * FROM Pais WHERE (CodigoPais='"&pCodPais&"');"

Response.Write sSQL & "<br>"
'set RS=conn.Execute(sSQL)
'RS.Open sSQL,conn, , , adCmdTable
RS.Open sSQL,conn,1,3,2

if not RS.EOF then
Response.Write "El pais ya fue ingresado. "
Response.Write "Por favor, escoja otro."

else
'-------------------INSERTAR PAIS
Set conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
conn.Open "ieee3"

sSQL="INSERT INTO Pais " & "(Nombre, CodigoPais)"
sSQL=sSQL & " VALUES ('"&pNomPais&"', '"&pCodPais &"')"
set RS=conn.Execute(sSQL)
'RS.Open sSQL,conn,1,3,2
Response.Write "Nombre del Pais: " &pNomPais& "<br>"
Response.Write "Codigo del Pais ingresado: " &pCodPais& "<br>"

End if

RS.Close
conn.Close
set RS=nothing
set conn=nothing

%>
</body>
</html>
  #2 (permalink)  
Antiguo 26/01/2004, 16:45
 
Fecha de Ingreso: noviembre-2003
Ubicación: Distrito Federal
Mensajes: 225
Antigüedad: 20 años, 7 meses
Puntos: 0
Prueba así
sSQL="SELECT * FROM Pais WHERE CodigoPais='"&pCodPais&"'"

Pero si CodigoPais es numerico prueba así
sSQL="SELECT * FROM Pais WHERE CodigoPais="&pCodPais

A ver que tal ??
  #3 (permalink)  
Antiguo 26/01/2004, 17:34
 
Fecha de Ingreso: diciembre-2003
Mensajes: 13
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola:

He probado con la cadena que me sugeriste pero el mensaje que sale es:

"Error de sintaxis en la cláusula FROM"

no se en que puede estar mal..tal vez una comilla simple o doble...pero donde? o tal vez otra cosa ...pero que sera?
gracias de todos modos....seguire insistiendo

Franco
  #4 (permalink)  
Antiguo 27/01/2004, 03:29
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 6 meses
Puntos: 37
Prueba la cadena que te genera el ASP, con un
response.write sSql
Luego copia la cadena y pegala en el Access (o en tu Sql Server), en access en "CONSULTAS" crear nueva consulta, "vista", "SQL". si jala alli, debe jalar desde tu asp, si no.. alli mismo te dira el error
  #5 (permalink)  
Antiguo 27/01/2004, 18:28
 
Fecha de Ingreso: diciembre-2003
Mensajes: 13
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola:

He hecho como me indicaste. Habian dos formas:

1) Partiendo de ACCESS------> para obtener la cadena SQL:

Voy a:
- consultas
- nuevo
- vista diseño
- en "mostrar tabla": escogo: tabla Pais
- Aparece la ventana de diseño de consultas: alli, para cada columna escogemos un campo de la tabla Pais. solo que para el campo CodPais de dicha tabla, le ingreso un criterio de seleccion
(en este caso, a modo de prueba, sera buscar un codigo en particular:codperu, que ya esta registrado)

Luego para obtener la cadena en SQL hago:

- Consulta
- especifica de SQL
- paso a traves
y me sale:

SELECT *
FROM Pais
WHERE CodigoPais="codperu";

- esta cadena SQL lo copio en mi programa (para probarlo)
- para ello le antepongo : sSQL="
- y al final de la cadena le agrego la comilla para cerrarlo: "
- y a codperu lo reemplazo por: &pCodPais& (mi variable que recibe dicho dato)
- resultando en :

sSQL="SELECT * FROM Pais WHERE CodigoPais="&pCodPais&";"

pero TAMPOCO funciona...sale el mismo error:
Error de sintaxis en la cláusula FROM.


2) Partiendo de la cadena SQL obtenida de Response.Write sSQL del codigo de mi programa------> para ver si funciona en ACCESS:

En primer lugar:
- de Response.Write sSQL obtengo la cadena SQL:
SELECT * FROM Pais WHERE CodigoPais=codperu
(donde codperu es un valor abitrario que ingresé por la web)

Luego, voy a:
- consultas
- nuevo
- vista diseño
- en "mostrar tabla": escogo: tabla Pais

ahora, para pegar la cadena SQL hago:
- Consulta
- especifica de SQL
- paso a traves
- me sale una pantallita y alli lo copio....
SELECT * FROM Pais WHERE CodigoPais="codperu";

(notar que agregué las comillas y el punto y coma a codperu para que funcione)

- ahora presiono el boton que tiene el simbolo de: !
pero me sale una pantalla llamada "Seleccionar origen de Datos"

y alli ya no se que hacer.....para continuar

que problema con este codigo pequeño....pero que ya me tiene cabezon..gracias de todos modos por la sugerencia

Franco
  #6 (permalink)  
Antiguo 28/01/2004, 18:19
 
Fecha de Ingreso: enero-2004
Ubicación: iquitos
Mensajes: 164
Antigüedad: 20 años, 4 meses
Puntos: 0
prueba con esta sentencia
sSQL="SELECT * FROM Pais
WHERE (CodigoPais=' " & pCodPais & "');"
__________________
javier
  #7 (permalink)  
Antiguo 09/02/2004, 16:15
 
Fecha de Ingreso: diciembre-2003
Mensajes: 13
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola:
Ya lo solucioné usando la cadena:

sSQL = "SELECT CodigoPais FROM Pais WHERE CodigoPais ='" + pCodPais + "'"
(todo va en una sola linea)

Gracias por las sugerencias enviadas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:09.