Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-06-2004
Avatar de cbrrr
cbrrr cbrrr is offline
Miembro
 
Registrado: jun 2004
Posts: 57
Poder: 23
cbrrr Va por buen camino
Código Delphi [-]
  dm1.Query1.sql.Text('SELECT logo, nombre || ' + QuotedStr(' ') + 
             ' || ciudad AS ename FROM equipos WHERE nombre = :kequipo');
Mírate la ayuda de la función, verás que te dice que entrecomilla el texto que le pasas como parámetro
__________________
Si no tienes algo que decir más importante que el silencio, cállate
Responder Con Cita
  #2  
Antiguo 12-06-2004
azaagh azaagh is offline
Miembro
 
Registrado: jun 2004
Posts: 34
Poder: 0
azaagh Va por buen camino
malas noticias: eso ultimo que me has puesto
Código Delphi [-]
dm1.Query1.sql.Text('SELECT logo, nombre || ' + QuotedStr(' ') + ' || ciudad AS ename FROM equipos WHERE nombre = :kequipo');
tambien da error de missing operator or semicolon nolontiendo
Responder Con Cita
  #3  
Antiguo 12-06-2004
Avatar de cbrrr
cbrrr cbrrr is offline
Miembro
 
Registrado: jun 2004
Posts: 57
Poder: 23
cbrrr Va por buen camino
Perdón, cierto, la propiedad Text no funciona así, sustituye el Text por Add o bien

Código Delphi [-]
 dm1.Query1.sql.Text := 'SELECT logo, nombre || ' + QuotedStr(' ') +             
         ' || ciudad AS ename FROM equipos WHERE nombre = :kequipo';
__________________
Si no tienes algo que decir más importante que el silencio, cállate
Responder Con Cita
  #4  
Antiguo 12-06-2004
azaagh azaagh is offline
Miembro
 
Registrado: jun 2004
Posts: 34
Poder: 0
azaagh Va por buen camino
me alegra saberlo!!
solo me faltaba los errores de los querys para terminar el proyecto...

nove, y yo llevo 2 dias pensando que era de la otra forma!!!

pero weno, ya solo me queda que funcione y los retoques finales!

gracias a todos los k me aveis ayudados esta semana!!!

espero no necesitar mas vuestra ayuda!!! (no me gusta nada programar)

PD: os pondre en los creditos

editado:
PD: me equivoqué... ..tengo un ultimo fallo..lo comento en otro hilo

Última edición por azaagh fecha: 12-06-2004 a las 11:56:25.
Responder Con Cita
  #5  
Antiguo 12-06-2004
Avatar de __marcsc
__marcsc __marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 24
__marcsc Va por buen camino
Vamos a ver, ataquemos el problema des del principio...

Te estás confundiendo porqué Delphi y SQL utilizan el mismo operador para denotar un string.

Imaginate que tu quieres escribir un SQL de este estilo

Código SQL [-]
SELECT *
FROM equipos 
WHERE nombre = 'Pepito'

Ok, hasta aquí no problem. El problema viene cuando tu, utilizando código fuente Delphi, quieres generar esta sentencia.

Lo que tu, por lo que veo, intentarías es

Código Delphi [-]
Query1.SQL.Add('SELECT * FROM equipos WHERE Nombre = 'Pepito');

Este código no compila. Porqué?

Vale, hagamos una suposición. Imaginate que las cadenas en Delphi se denotan con " y no con ' . Verdad que sería lógico escribir:

Código Delphi [-]
Query1.SQL.Add("SELECT * FROM equipos WHERE Nombre = 'Pepito' ");

Pues aquí está el problema: que confundes lo que son los carácteres de string que forman parte de la sentencia SQL y los que forman parte de Delphi porqué se denotan igual.

En el código que no compila, no lo hace por lo siguiente, el compilador detecta un string, y un identificador no válido:

'SELECT * FROM equipos WHERE Nombre = '//este es el string que interpreta
Pepito' //esto se queda colgado y hace que no compile

lo que hay que hacer en delphi para poder utilizar el carácter ' dentro de un string en código es ponerlo dos veces. Por esto el código correcto en Delphi es:

Código Delphi [-]
Query1.SQL.Add('SELECT * FROM equipos WHERE Nombre = ''Pepito''');

Para lo que sirve la función QuotedStr es para no tener que escribir todas estas comillas, lo que hace es agregarte el carácter ' al principio y final del string. (esto ya te lo contaba en un mensaje anterior, y lo puedes mirar en el help de Delphi)

Por esto, el código más leible es

Código Delphi [-]
Query1.SQL.Add('SELECT * FROM equipos WHERE Nombre = ' + QuotedStr('Pepito'));

Espero que te sirva el rollo.

Saludos!

EDIT: Coño, vaya despiste con la propiedad Text... Sin comentarios...

Última edición por __marcsc fecha: 12-06-2004 a las 12:12:23.
Responder Con Cita
  #6  
Antiguo 12-06-2004
azaagh azaagh is offline
Miembro
 
Registrado: jun 2004
Posts: 34
Poder: 0
azaagh Va por buen camino
muy bien explicado, ahora lo pillo... ahora que ya funciona....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:04:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi