none
ASP: Guardar una instruccion SQL como texto dentro de un UPDATE o INSERT RRS feed

  • Debate general

  • Hola, como estan? A ver quien puede ayudarme, necesito guardar una instruccion SQL como texto dentro de una base de datos Acces.

    El tema que cuando armo el UPDATE o el INSERT me da error, me toma la instruccion SQL que pongo a guardar como texto, dentro de la instruccion INSERT O UPDATE entonces me da error.

    mi instruccion es la siguiente: "UPDATE tblListas SET Lista='" & cstr(strLista) & "',SQL1='" & cstr(strSQL) & "' WHERE id=" & intID

    Es para un programa de emailing, entonces yo quiero que cada lista de mailing, al seleccionarla, ejecute el sql que guardo y a ese resultado, envie el emailing.

    El update es porque estoy actualizando el SQL a guardar, lo mismo me pasa con el insert, cuando quiero agregar una nueva lista.

    Saludos!!

    miércoles, 6 de mayo de 2015 4:05

Todas las respuestas

  • En principio lo que estás haciendo debería funcionar, salvo en el caso de que la consulta SQL que estás guardando contenga dentro comillas. Fíjate en que haces esto:

    ...SQL1='" & cstr(strSQL) & "' ...

    Si el strSQL tuviera algo entre comillas, esas comillas cerrarían las comillas que lo rodean y la sentencia quedaría incorrecta.

    El remedio simple consiste en duplicar las comillas internas:

    ...SQL1='" & cstr(strSQL).Replace("'", "''") & "' ...

    Pero una solución todavía mejor consistiría en parametrizar la sentencia (cosa que de todas maneras deberías estar haciendo como buena práctica en general), y de esta manera el propio driver se encargará de escapar las comillas y cualquier otro carácter que pueda estorbar.

    miércoles, 6 de mayo de 2015 5:29