Delphi - combobox

 
Vista:

combobox

Publicado por franklin (32 intervenciones) el 23/10/2008 19:42:12
Buenas Sres tengo un problema con un combobox y un boton de busqueda con lo siguiente para realizar un busque por nombre o por apellidos y me da un error y me dice que hay un error.
si pueden ayudar tambien me interesaria hacer lo sin el query.

por favor ayudenme

Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from table1 Where 1=1');
If ComboBox1.ItemIndex in [0,1] then
Query1.SQL.Add( 'Nombre = '+QuotedStr(Edit1.text));
if ComboBox1.ItemIndex in[1,2] then
Query1.SQL.Add('Apellidos = '+QuotedStr(Edit1.text));
Query1.Open;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:combobox

Publicado por pacopaz (104 intervenciones) el 23/10/2008 22:14:07
Intenta con esto:

Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from table1 Where');
If ComboBox1.ItemIndex in [0,1] then
Query1.SQL.Add( ' and Nombre = '+QuotedStr(Edit1.text));
if ComboBox1.ItemIndex in[1,2] then
Query1.SQL.Add(' and Apellidos = '+QuotedStr(Edit1.text));
Query1.Open;

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox

Publicado por franklin (32 intervenciones) el 24/10/2008 00:05:43
Aun no me funciona me dice que tiene un error sintactico en la clausula where, de sql.

en el query estoy usando las sentencia select * from table1.

Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from table1 Where');
If ComboBox1.ItemIndex in [0,1] then
Query1.SQL.Add( 'and Nombre = '+QuotedStr(Edit1.text));
if ComboBox1.ItemIndex in[1,2] then
Query1.SQL.Add('and Apellidos = '+QuotedStr(Edit1.text));
Query1.Open;

que estoy haciendo mal,
Se puede usar el combobox sin el query???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:combobox

Publicado por E.T. (1244 intervenciones) el 24/10/2008 00:10:23
Tu mismo pudiste haber deducido la causa:

Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from table1 Where 1=1');
If ComboBox1.ItemIndex in [0,1] then
Query1.SQL.Add( 'and Nombre = '+QuotedStr(Edit1.text));
if ComboBox1.ItemIndex in[1,2] then
Query1.SQL.Add('and Apellidos = '+QuotedStr(Edit1.text));
Query1.Open;

en la clausula where te faltó poner 1=1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox

Publicado por franklin (32 intervenciones) el 24/10/2008 18:55:05
Gracias muchachos por la ayuda.
todo correbien pero aun hay un preblemita es que solo me busca por nombre y por apellido no.

yotra cosa, me puede esplicar que signigica 'Select * from table1 Where 1=1'
[0,1] y [1,2], es que soy nuevo en esto de la programacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:combobox

Publicado por E.T. (1244 intervenciones) el 24/10/2008 23:20:01
[0,1] y [1,2] son conjuntos, por ejemplo, si el indice del combo box está dentro del conjunto

combobox.itemindex in [0,1], si el indice es 0 o 1 la condición es verdadera.

Lo otro es algo complejo de explicar:

El 1=1, del where, es irrelevante en la consulta, pero ayuda a ahorrarte condiciones IF de abajo, por ejemplo si no pusieramos el 1=1 tendrías que hacer algo como esto:

Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from table1 Where');
If ComboBox1.ItemIndex in [0,1] then
Query1.SQL.Add( 'Nombre = '+QuotedStr(Edit1.text));
if ComboBox1.ItemIndex = 1 then
Query1.SQL.Add('and Apellidos = '+QuotedStr(Edit1.text))
else
Query1.SQL.Add('Apellidos = '+QuotedStr(Edit1.text))
Query1.Open;

El 1=1 te ahorra una linea de codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:combobox

Publicado por franklin (32 intervenciones) el 24/10/2008 23:39:40
Ahora, bien que puede hacer ya que la consulto solo me busca por nombres y no por apellido, ya que cuando pongo en el combo el apellido no me consulta, y si le un nombre con seleccionando el nombre me lo busca. que se puede hacer??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar