Club Delphi  
    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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2006
andre navarrete andre navarrete is offline
Miembro
 
Registrado: ago 2004
Ubicación: santiago, chile.
Posts: 14
Poder: 0
andre navarrete Va por buen camino
Cool Problemas tratando de conformar la sintaxis de una consulta SQL

Amigos me pueden decir como saber la sintaxis correcta para los edit.

En codigo delphi:

Código Delphi [-]
 QUERY1.SQL.Text:='select * from TABLA where FECHA between 'edit1.text' and 'edit2.text';

Gracias.

Última edición por dec fecha: 14-08-2006 a las 21:18:40.
Responder Con Cita
  #2  
Antiguo 14-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tú lo que tienes que saber son dos cosas:

1. Edit.Text es un string
2. En Delphi, dos strings se concatenan con el operador +:

Código Delphi [-]
S := 'Hola ';
T := ' ClubDelphi';

ShowMessage(S + T); // mostrará 'Hola ClubDelphi'

Medítalo un poco y sabrás como resolver tu problema y cualquier otro de este tipo que se te presente.

// Saludos
Responder Con Cita
  #3  
Antiguo 14-08-2006
andre navarrete andre navarrete is offline
Miembro
 
Registrado: ago 2004
Ubicación: santiago, chile.
Posts: 14
Poder: 0
andre navarrete Va por buen camino
Cool gracias pero

amigo, gracias pero en los edit tengo fechas ingresas con el siguiente formato '10/08/2006' que seria lo mismo que un edit1.text, por ejemplo.
no quiero sumar nada, solo quiero hacer la consulta entre parametros de fecha que me los da el usuario, osea que me muestre solo las fechas cuyo rango esta en los edit.

te agradeseria mucho la uyuda.

gracias.
Responder Con Cita
  #4  
Antiguo 15-08-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Roman no se refiere a lo que esta ingresado en los edits; se refiere a la forma de como concatenar dos cadenas, en este caso, a como concatenar tu cadena SQL con las cadenas de los edit.Text

Lo cuál se hace con el operador +

así que respetando el punto de vista de Roman:
Medítalo un poco y sabrás como resolver tu problema y cualquier otro de este tipo que se te presente.
__________________

Responder Con Cita
  #5  
Antiguo 15-08-2006
andre navarrete andre navarrete is offline
Miembro
 
Registrado: ago 2004
Ubicación: santiago, chile.
Posts: 14
Poder: 0
andre navarrete Va por buen camino
amigos, lo tengo claro, el problema es que se ocupa si son este tipo de comilla (') o comillas dobles ("), para definir las +.
gracias.
Responder Con Cita
  #6  
Antiguo 15-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
En Delphi siempre se usa la comilla simple (apóstrofe dicen que se llama ). Te sugiero que uses la función QuotedStr que pasada un String, le añade dos comillas simples.

Código Delphi [-]
 str := 'Comillas';
 str := Quotedstr(str); //----> str  = ''Comillas''  (ojo son comillas simples... pero 2 juntas)

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 15-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hay momentos en que hay que detenerse a pensar un poquito. Dices que

Cita:
Empezado por andre navarrete
no quiero sumar nada, solo quiero hacer la consulta entre parametros de fecha que me los da el usuario
pero tú aquí tienes varios problemas. La consulta SQL que mandas al servidor es una cadena de texto que manejas en Delphi con el tipo de datos string. Tal como tú la quieres, dicha cadena está formada por varias partes:

  • 'select * from TABLA where FECHA between '
  • edit1.text <--- el contenido del control
  • ' and '
  • edit2.text <--- el contenido del control


Para ensamblar o concatenar estas partes, debes sumarlas, por más que pienses que esto no es una cuestión de sumar. Simplemente escribiendo una tras otra, como en

Cita:
Empezado por andre navarrete
Código Delphi [-]
'select * from TABLA where FECHA between 'edit1.text' and 'edit2.text';
no sirve. Cosa que ya sabes y por eso preguntas. Pero no descartes así de fácil las respuestas que se te dan.

Con esto y con lo que ya te indican los compañeros respecto al QuotedStr, tienes más que suficiente para resolver el problema.

// Saludos
Responder Con Cita
  #8  
Antiguo 16-08-2006
andre navarrete andre navarrete is offline
Miembro
 
Registrado: ago 2004
Ubicación: santiago, chile.
Posts: 14
Poder: 0
andre navarrete Va por buen camino
gracias, y mil disculpas por tantas preguntas, estoy pasando por un mal momento y puedeser por eso que estoy un poco volado.
de todas formas garcias, lo analizare.
saludos.
Responder Con Cita
  #9  
Antiguo 16-08-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
para mi deberia ser asi
'select * from TABLA where FECHA between '+edit1.text+' and '+edit2.text+';
perdonen mi ignorancia si me equioco es por tratar de ayudar
saludos
Responder Con Cita
  #10  
Antiguo 16-08-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
de hecho si tienes un error al final de la linea para emprezar... además, te haría falta usar la función antes mencionada para colocar comillas en los valores
__________________

Responder Con Cita
  #11  
Antiguo 07-09-2006
juanfergl juanfergl is offline
Miembro
 
Registrado: ago 2006
Posts: 23
Poder: 0
juanfergl Va por buen camino
Chequea esto

select * from TABLA where FECHA between '''+edit1.text+''' and '''+edit2.text+''';

Cualquier cosa grita

Pero te aconsejo algo asi

query.sql.clear;
query.sql.add('Select tusCampos from tuTabla where CampoFecha between :fecha1 and :fecha2');
query.parambyname('fecha1').asdatetime:=strtodate(edit1.text);
query.parambyname('fecha2').asdatetime:=strtodate(edit2.text);
query.open;

y voala
Responder Con Cita
  #12  
Antiguo 07-09-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
No es por incomodar, pero a esto:
Código Delphi [-]
'select * from TABLA where FECHA between '''+edit1.text+''' and '''+edit2.text+''';

le hace falta una comilla al final:

Código Delphi [-]
'select * from TABLA where FECHA between '''+edit1.text+''' and '''+edit2.text+'''';
__________________

Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Estoy triste... Elenita La Taberna 45 07-08-2006 22:51:10
Que estoy Haciendo mal jostrix PHP 1 01-11-2004 01:29:16
estoy confundido Alejo MySQL 2 22-09-2004 16:23:55


La franja horaria es GMT +2. Ahora son las 05:46:09.


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