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 Temas de Hoy

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #14  
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
 



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 07:17:02.


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