Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Sobre El Entrecomillado De Las Versiones SQL
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Sobre El Entrecomillado De Las Versiones SQL 
 
Estoy haciendo una aplicación que puede manejar bases SQLITE y MySQL.
Cuando intento hacer una consulta, me encuentro con que según el driver una sentencia sql es válida para uno pero no para otro.
Para eso están los accesos estándar de gambas diréis. Pero no he conseguido que me funcionen

He probado, con todas las variantes que se me han ocurrido de comillas y sin ellas, algo como esto:

r = conexion.exec("select distinct `&1` from `&2` order by `&3`",var1,var2,var3)


Pero siempre acaba dando error por el tema de las comillas. El mensaje no es muy explícito, por lo que no sé muy bien en qué momento poner qué comillas.
Al final lo he solucionado con esto:
  SELECT CASE LCase(comun.conDatos.type)
    CASE "mysql"
        r = conexion.exec("select distinct `" & var1 & "` from " & var2 & " order by `" & var3 & "`")
    CASE "sqlite3"  
        r = conexion.exec("select distinct " & var1 & "  from " & var2 & " order by " & var3)
  END SELECT
 

Que funciona bien, pero no me gusta. ¿Tendré que hacerlo en todas las consultas?¿Si añado oto driver tendré que modificar el código otra vez en todas las consultas?
¿Alguien sabe cómo deben ir las comillas dichosas?

Edito para añadir que las comillas son necesarias por cuanto es un programa que se supone que puede manejar cualquier base de datos, no sólo las diseñadas por mí, con lo que los campos pueden llevar caracteres extraños en su nombre (e-mail) y cosas así, que las bases de datos no admiten si no van entrecomillados.
 




===================
No podemos regresar
 
última edición por shordi el Martes, 25 Enero 2011, 10:20; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sobre El Entrecomillado De Las Versiones SQL 
 
Hola shordi

En tu primer ejemplo te sobran las comillas (backtics) alrededor del comodín &n. gambas se encarga de su correcto formateo al hacer la sustitución.

r = conexion.exec("select distinct &1 from &2 order by &3;",var1,var2,var3)


Si no es así, entonces es un bug en gambas que debería ser reportado a la lista.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sobre El Entrecomillado De Las Versiones SQL 
 
Y si uno de los drivers no soporta el entrecomillado según el estándar SQL, entonces habría que reportarlo como un bug del driver. Que yo sepa MySql, al menos InnoDB, soporta estas ' ' y estas ` `.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sobre El Entrecomillado De Las Versiones SQL 
 
Probé con y sin comillas, con comillas dobles y simples, con acentos graves y sin ellos. Siempre fallaba o con el uno o con el otro.
Por lo que pude deducir (los mensajes que emite son muy poco explícitos) gambas tiende a rodear los nombres con comillas simples ' pero no lo hace bien siempre. Internamente añade el nombre de la base de datos en el formato del basedatos.tabla, pero al añadir el entrecomillado se le queda algo así como basedatos.'tabla' lo cual no es correcto.
Será un bug... Pero a las alturas que estamos de desarrollo de gambas 3 no sé si vale la pena reportarlo. Me conformaría con que alguno me confirmara el bug, a ver si voy a ser yo el que tiene el bug, no el gambas.

Saludos
 




===================
No podemos regresar
 
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 Todas Las Versiones A La Vez geaplanet Instalación 1 Lunes, 19 Julio 2010, 19:08 Ver último mensaje
fabianfv
No hay nuevos mensajes Git: Marcar Versiones jsbsan Mundo Linux 2 Jueves, 22 Septiembre 2016, 23:11 Ver último mensaje
jguardon
No hay nuevos mensajes Kernel De Linux. Versiones Shell Mundo Linux 0 Miercoles, 28 Noviembre 2018, 20:13 Ver último mensaje
Shell
No hay nuevos mensajes Entrecomillado En Shell Bash Shell Mundo Linux 2 Viernes, 14 Junio 2019, 13:26 Ver último mensaje
Shell
 

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