Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problemas con consulta (https://www.clubdelphi.com/foros/showthread.php?t=47286)

UREÑA 23-08-2007 18:19:39

problemas con consulta
 
hola amigos buen dia

lo que pasa es que tengo una consulta pero no se me logra cumplir la condicion
Código SQL [-]
 frm_DataModule.qry_Selec_Materia.Open;
 frm_DataModule.qry_Selec_Materia.SQL.Clear;
 frm_DataModule.qry_Selec_Materia.SQL.Add('SELECT ID_MATERIA, NOMBRE FROM MATERIA');
 frm_DataModule.qry_Selec_Materia.SQL.Add('WHERES (((MATERIA.CLAVE_AA) = '+VarToStr(frm_CapAlum1.combo_Nucleo.KeyValue)+') OR (MATERIA.NUCLEO_FORMACION) ='+QuotedStr('TRONCO COMUN')+' ) ');
 frm_DataModule.qry_Selec_Materia.SQL.Text;
 frm_DataModule.qry_Selec_Materia.Close;

 while not (frm_DataModule.qry_Selec_Materia.Eof) do

creo que la cadena "tronco comun" no me la esta tomando en cuenta para que pueda entrar al while.lo he corrido y en el text me lo muestra con comillas simples y tengo entendido que un string va con doble que no?

espero y entiendan lo que les quise decir:rolleyes: y me puedan ayudar
muchas gracias mis amigos del foro

jhonny 23-08-2007 18:24:29

Que tal si le cambias WHERES por WHERE?

UREÑA 23-08-2007 18:48:34

ups que pena nunca me habia sentido tan avergonzado tengo que leer mejor:rolleyes:

oye jony ya lo cambie y no sirvio que creees que sea?
ya cheque el query y el datasource y estan bien:(

jhonny 23-08-2007 19:11:22

Cita:

Empezado por UREÑA (Mensaje 225522)
ups que pena nunca me habia sentido tan avergonzado tengo que leer mejor

Pues tranquilo, a muchos nos a sucedido varias veces ;).

Cita:

Empezado por UREÑA (Mensaje 225522)
oye jony ya lo cambie y no sirvio que creees que sea?
ya cheque el query y el datasource y estan bien

Pues la verdad creí que era lo del wheres, pero ahora que lo cambias y sigue sin funcionar y que ademas no muestra ningun error, ¿No sera que rm_CapAlum1.combo_Nucleo.KeyValue te lo esta enviando como NULL?, pruebalo y nos cuentas.

ContraVeneno 23-08-2007 19:22:40

Vamos a ver... primero abres la consulta y luego la cambias.... :confused:
frm_DataModule.qry_Selec_Materia.Open;

después de que la cambias, no la vuelves a abrir.... :confused:

Y luego mandas llamar a la instrucción ".Text" pero no va dentro de ningún mensaje...:confused:
frm_DataModule.qry_Selec_Materia.SQL.Text;

y luego la cierras... :confused:
frm_DataModule.qry_Selec_Materia.Close;

Yo recomendaría:

Código Delphi [-]
with  frm_DataModule.qry_Selec_Materia do begin
 if active then close; 
 SQL.Clear; 
 SQL.Add('SELECT ID_MATERIA, NOMBRE FROM MATERIA');
 SQL.Add('WHERE (MATERIA.CLAVE_AA = '+VarToStr(frm_CapAlum1.combo_Nucleo.KeyValue));
 SQL.Add('OR MATERIA.NUCLEO_FORMACION ='+QuotedStr('TRONCO COMUN')+') '); 
 Open;
 First;
 while not (Eof) do begin
  ....
  Next;
 end; //while
end; //with

jhonny 23-08-2007 19:25:46

Cita:

Empezado por ContraVeneno (Mensaje 225539)
Vamos a ver... primero abres la consulta y luego la cambias.... :confused:

Vaya¡¡¡, ContraVeneno si que tienes razón, yo no habia notado ese "pequeñito" detalle :)

UREÑA 23-08-2007 21:02:16

amigos me marca un error

le estube picando quise usar el vartostr en ves del quotedstr
pero no jala, el error es el siguiente:

conversion error from.string""

gracias y disculpen la molestia:o

UREÑA 23-08-2007 21:14:09

ya pude:rolleyes:

cambie
Código SQL [-]
frm_DataModule.qry_Selec_Materia.SQL.Add('WHERE (MATERIA.CLAVE_AA = '+VartoStr(frm_CapAlum1.combo_Nucleo.KeyValue));

por

frm_DataModule.qry_Selec_Materia.SQL.Add('WHERE (MATERIA.CLAVE_AA = '+QuotedStr(frm_CapAlum1.combo_Nucleo.KeyValue));
gracias una vez mas:D


La franja horaria es GMT +2. Ahora son las 00:36:03.

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