Ver Mensaje Individual
  #5 (permalink)  
Antiguo 17/06/2009, 16:59
Avatar de Leo54
Leo54
 
Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 15 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Me da error el apostrofe '

Cita:
Iniciado por gorka_arai Ver Mensaje
El apóstrofe en SQL "rompe" la consulta. A menudo es usado por usuarios malintencionados que mediante inyección de SQL (SQL Injection, que dicen los más versados...) pretenden reventar bases de datos ajenas.
A menudo aparece en los grupos de noticias una pregunta sobre alguien que tiene problemas a la hora de construir los criterios de una sentencia SQL, ya sea porque en esos criterios se utilizan fechas, o bien porque a lo mejor hay algún campo de texto que contiene una comilla simple como te ocurre a ti (lo cual es interpretado erróneamente por el motor de base de datos como un separador de campos o argumentos).

Me explico. Esta sentencia producirá un error de "error de sintaxis, falta operador..." porque el motor de base de datos cogerá el apóstrofe como un separador de argumentos y la sentecia SQL petará. Observa:
Código:
sDestinatario = "B's Beverages"

SQL = "SELECT * FROM Pedidos " _
& "WHERE Destinatario = '" & sDestinatario & "'"
Para resolverlo debemos sustituir la comilla simple por un par de comillas, así:
Código:
sDestinatario = "B's Beverages"
' reemplazamos las comillas simples por un par 
' de comillas
sDestinatario = Replace(sDestinatario, "'", "''")

SQL = "SELECT * FROM Pedidos " _
& "WHERE Destinatario = '" & sDestinatario & "'"
Por ello te recomiendo que te acostumbres a usar el replace para añadir comillas dobles al apóstrofe (y ya de paso evitas algo de SQL injection!!!)
Aupa.
funciono de maravilla, muchas gracias ... saludos