- Recordemos que en Power Builder (así como en otros lenguajes de programación) en indistinto asignar un string usando comillas dobles o simples (" o '), por cuestione de legibilidad y para facilitar la escritura de la consulta, es mas recomendable usar comillas dobles para definir la cadena principal y las comillas simples para definir las cadenas de la consulta, por ejemplo:
- Caracteres de escape... muy importante si lo que desean es almacenar la consulta en un campo de base de datos, para luego obtenerla en cualquier momento y usarla; en éste caso nos encontraremos con que si insertamos la consulta como el ejemplo anterior, al recuperarla y querer ejecutarla marcará un error indicando que no se encuentra la columna "hola" (a menos claro que tengamos una columa con ese nombre XD ), ésto ocurre por que al guardar la consulta en la base de datos, las comillas simples las desaparece ya que las interpreta como una cadena, y para que ésto no ocurra debemos usar un caracter de escape para indicar que la comilla simple solo es parte de la cadena principal y no que está abriendo una cadena (que complicado no?)... veamoslo de esta manera:
si usamos esta variable para guardar la consulta en la base de datos:
string miSql = " SELECT * FROM mi_tabla WHERE mi_campo = 'hola' "
lo que se guardará realmente en la base de datos es:
SELECT * FROM mi_tabla WHERE mi_campo = hola
notese que "hola" ya no tiene comillas, por lo tanto, al ejecutar dicha consulta lo mas seguro es que nos genere un error de sql, por lo tanto, lo que debemos hacer es lo siguiente:
string miSql = " SELECT * FROM mi_tabla WHERE mi_campo = ''hola'' "
Al parecer es algo confuso, pero lo que sucede es que en SQLANYWHERE el caracter de escape es una comilla simple, lo que significa que si colocamos dos comillas simples seguidas, lo que obtendremos es el caracter ' lo que dará como resultado que al obtener la consulta de la base de datos tengamos:
SELECT * FROM mi_tabla WHERE mi_campo = 'hola'
Espero que éste par de consejos hayan sido de utilidad, y bueno, cualquier duda pregunten en los comentarios o directamente a wilson.alcocer@gmail.com
No hay comentarios.:
Publicar un comentario