
17/06/2009, 16:59
|
 | | | Fecha de Ingreso: septiembre-2008
Mensajes: 3
Antigüedad: 16 años, 7 meses Puntos: 0 | |
Respuesta: Me da error el apostrofe ' Cita:
Iniciado por gorka_arai 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 |