Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Comilla Simple Y Las Consultas SQL
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Comilla Simple Y Las Consultas SQL 
 
Hola, estoy seguro que se toparon con el problema del uso de comilla simple como carácter en los textos que quieren recuperar o introducir en las base de datos, el chr(39).

Yo de momento venia reemplazándolo antes de usarlo en las consultas SQL, incluso hice una función de adecuación de textos para trabajarlos con SQL.
¿Se puede hacer alguna otra cosa?
Es que ahora estoy con el tema de las canciones, los artistas etc, y muchos de estos nombres tienen comilla simple en el nombre y ademas en ingles usan todo el tiempo este caracter.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comilla Simple Y Las Consultas SQL 
 
Hola Tincho:

Muestra un ejemplo con comilla simple que te de problema.
¿ No puedes concatenarlo ?.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comilla Simple Y Las Consultas SQL 
 
Citar:
Yo de momento venia reemplazándolo antes de usarlo en las consultas SQL, incluso hice una función de adecuación de textos para trabajarlos con SQL.
¿Se puede hacer alguna otra cosa?

Sí. Usa los objetos de gambas para bases de datos. No tendrás ningún problema.

dim rs as result

rs=laConexion.edit("mitabla", "campoClave = &1", clave)
rs!micampo1=mivalor1_que_contiene_comilla_simple
rs!micampo2=mivalor2
etc.
rs.update()
 

Más o menos...

Más aún, un pequeño truco que yo uso en todos mis programas: Llama a tus controles que contengan datos de la BD igual que los campos de la BD, es decir si tienes un campo "autor" llama al textbox que lo muestra "autor". Luego haces ésto.
dim rs as result
dim ctrl as control
dim fld as resultfield

rs=laConexion.edit("mitabla", "campoClave = &1", clave)
for each fld in rs.fields          'por cada campo del result
     for each control in me.controls   'comprobamos si existe un control
         if fld.name=ctrl.name then      'que se llame igual . Entonces
              try rs[fld.name]=ctrl.Value 'buscamos el Value por si es un número, fecha, etc.
              if error then                         'si hay error no tiene propiedad Value, entonces
                   rs[fld.name]=ctrl.Text    'grabamos el Text en su lugar
              endif
         endif
     next
next
rs.update
 

Si lo conviertes en función y lo pones en un módulo, ya nunca más tienes que preocuparte por la grabación de datos de ninguna tabla. Con pasarle a la función como parámetro el form, la tabla y la clave, te vale para grabar cualquier registro de cualquier tabla en cualquier base de datos.

Saludos


Saludos
 




===================
No podemos regresar
 
última edición por shordi el Domingo, 06 Noviembre 2016, 11:09; editado 2 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comilla Simple Y Las Consultas SQL 
 
Con la misma idea puedes rellenar los datos de cualquier formulario también, claro, símplemente llamas a los controles igual que a los campos y llamas a la función de rellenar el form. Te vale para cualquier tabla, campo, database y proyecto.

Si te interesa, te puedo pasar el módulo que uso para todo esto (añadir registro, editar, eliminar, etc. etc.)

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comilla Simple Y Las Consultas SQL 
 
shordi escribió: [Ver mensaje]
Sí. Usa los objetos de gambas para bases de datos. No tendrás ningún problema.
dim rs as result
rs=laConexion.edit("mitabla", "campoClave = &1", clave)
rs!micampo1=mivalor1_que_contiene_comilla_simple
rs!micampo2=mivalor2
etc.
rs.update()
 


Si esta bien esto, yo estaba usando sentencias sql directamente, por la velocidad que presta pero, esto es practico la verdad, porque ademas el código sirve para todas los tipos de bases de datos.
Citar:

Más aún, un pequeño truco que yo uso en todos mis programas: Llama a tus controles que contengan datos de la BD igual que los campos de la BD, es decir si tienes un campo "autor" llama al textbox que lo muestra "autor". Luego haces ésto.
dim rs as result
dim ctrl as control
dim fld as resultfield
rs=laConexion.edit("mitabla", "campoClave = &1", clave)
for each fld in rs.fields          'por cada campo del result
     for each control in me.controls   'comprobamos si existe un control
         if fld.name=ctrl.name then      'que se llame igual . Entonces
              try rs[fld.name]=ctrl.Value 'buscamos el Value por si es un número, fecha, etc.
              if error then                         'si hay error no tiene propiedad Value, entonces
                   rs[fld.name]=ctrl.Text    'grabamos el Text en su lugar
              endif
         endif
     next
next
rs.update
 


Esto esta también interesante, la limitación que le veo al método es cuando se usan claves foráneas, y el campo garda un entero en ves del texto.
Pero se puede adaptar por supuesto para usar el .tag de un combobox valor del campo de la base de datos y cargar en su lista todos los textos del campo de la tabla foránea, por ejemplo.
Habria que trabajarlo un poco pero es un método limpio y practico. Lo analizare.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comilla Simple Y Las Consultas SQL 
 
shordi escribió: [Ver mensaje]
Con la misma idea puedes rellenar los datos de cualquier formulario también, claro, símplemente llamas a los controles igual que a los campos y llamas a la función de rellenar el form. Te vale para cualquier tabla, campo, database y proyecto.
Si te interesa, te puedo pasar el módulo que uso para todo esto (añadir registro, editar, eliminar, etc. etc.)
Saludos.

Si, por supuesto que me interesa. porque la tabla, la clave y los nombres de los campos son parámetros que se conocen de antemano, así que se podría implantar, me atrevo a decir, sin tocar el resto del código.
¿Tu módulo contempla las claves foráneas?

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Comilla Simple Y Las Consultas SQL 
 
Acabo de subir un hilo con un ejemplo del módulo y algunos de los controles que lo complementan. Es una versión reducida del que utilizamos en el curro, que el original se encarga de más cosas (grabar los logs y cosas así). Espero que en la labor de poda y simplificación no se me haya colado ningún error.
Lo tienes aquí:
https://foro.gambas-es.org/viewtopic.php?f=5&t=5926
 




===================
No podemos regresar
 
última edición por shordi el Domingo, 06 Noviembre 2016, 23:28; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Consultas jousseph Bases de Datos 39 Lunes, 05 Noviembre 2012, 02:57 Ver último mensaje
jousseph
No hay nuevos mensajes ¿Ya No Se Reconocen Las Consultas PRAGMA ... shordi Bases de Datos 2 Viernes, 15 Agosto 2014, 12:48 Ver último mensaje
shordi
No hay nuevos mensajes Formularios Y Consultas. Un Poco De Orden. Shell Bases de Datos 18 Martes, 02 Junio 2015, 09:00 Ver último mensaje
shordi
No hay nuevos mensajes Obtengo Consultas De Una Bd Que No Existe?... v3ctor General 4 Jueves, 15 Diciembre 2016, 01:37 Ver último mensaje
whisper
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron