Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2016
davidmedina29 davidmedina29 is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 34
Poder: 0
davidmedina29 Va por buen camino
Error al realizar búsqueda: Incorrect sintax near '...'

gracias por tu aporte roman de verdad me ayudo mucho.

ahora tengo un ultimo detalle. resulta que tengo un boton buscar aqui les pongo el codigo del boton
Código Delphi [-]
procedure TfPeriodosNomina.cxButton1Click(Sender: TObject);
begin
with dm do
  begin
   Q_PerNomina.Close;
   Q_PerNomina.DeleteWhere;

   if (cxComboBox1.Text='Ejercicio')and(cxTextEdit1.Text<>'') then
    Q_PerNomina.AddWhere('EJERCICIO='+cxTextEdit1.Text)

   else if (cxComboBox1.Text='Periodo')and(cxTextEdit1.Text<>'') then
    Q_PerNomina.AddWhere('PERIODO='+QuotedStr(cxTextEdit1.EditValue))

    else if (cxComboBox1.Text='Mes')and (cxComboBox2.Text<>'') then
    Q_PerNomina.AddWhere('MES='+(cxComboBox2.EditValue));
    Q_PerNomina.Open;

  end;
end;

ahi tengo dos combobox el cxCombobox1 tiene 3 items
Ejercicio
Periodo
Mes

el cxCombobox2 tiene los meses
Enero
Febrero
Marzo
etc..

el detalle es que cuando busco mes me marca esste error:
Incorrect sintax near 'Enero'

alguna sugerencia se los agradeceria mucho
Responder Con Cita
  #2  
Antiguo 24-02-2016
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
Muy probablemente cxComboBox2.EditValue también debe ir con QuotedStr.

LineComment Saludos

Última edición por roman fecha: 24-02-2016 a las 04:59:29.
Responder Con Cita
  #3  
Antiguo 24-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
No sabemos que componente estas usando para realizar el query

No son los estandar de Delphi; de hecho, es la primera vez que veo el metodo "AddWhere"

El codigo esta medio extraño

1) Chequeas el valor de cxTextEdit1.Text y añades un Where Ejercicio = cxTextEdit1.Text
2) Chequeas nuevamente el valor de cxTextEdit1.Text, y añades un Where Periodo = cxTextEdit1.EditValue

??

Luego no sabemos que tipo son los campos de la BD

Por otro lado, parece ser que, o bien el componente está generando mal la consulta SQL, o bien estas usando mal el componente

Última edición por AgustinOrtu fecha: 24-02-2016 a las 03:54:11.
Responder Con Cita
  #4  
Antiguo 24-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola davidmedina29.

Por favor no pongas consultas distintas en el mismo tema, eso dificulta las búsquedas y genera inconvenientes, recuerda: Una nueva consulta = un nuevo hilo.

Moví tu consulta como un nuevo tema y un instante después roman contestaba tu pregunta (y te daba la misma recomendación) [ aquí ].

Saludos y gracias por tu colaboración
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 24-02-2016
davidmedina29 davidmedina29 is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 34
Poder: 0
davidmedina29 Va por buen camino
hola buen dia disculpa ecfisa pense que estaba relacionado con el hilo que ya tenia por eso lo puse ahi

y roman ya lo habia puesto asi con el QuotedStr pero marca este error
Código:
conversion failed when converting the varchar value '01 Enero' to data type int
asi lo puse
Código Delphi [-]
with dm do
  begin
   Q_PerNomina.Close;
   Q_PerNomina.DeleteWhere;
   if (cxComboBox1.Text='Ejercicio')and(cxTextEdit1.Text<>'') then
    Q_PerNomina.AddWhere('EJERCICIO='+cxTextEdit1.Text)

   else if (cxComboBox1.Text='Periodo')and(cxTextEdit1.Text<>'') then
    Q_PerNomina.AddWhere('PERIODO='+QuotedStr(cxTextEdit1.EditValue))

if (cxComboBox1.Text='Mes')and (cxComboBox2.Text<>'') then
    Q_PerNomina.AddWhere('MES='+QuotedStr(cxComboBox2.EditValue));
    Q_PerNomina.Open;

el periodo y el ejercicio si funciona bien el detalle es con el mes.

tengo un msQery(Q_PerNomina) y un datasource(DS_PerNomina) en un dm
tengo una bd con los campos mes, periodo y ejercicio los tres son de tipo int
tengo un cxCombobox1 con los items mes, periodo y ejercicio cuando elijo periodo y ejercicio se hace visible el cxTextedit1 y cuando elijo mes se hace visiblo el cxCombobox2 con los sig items:
01 Enero
02 Febrero
03 Marzo
04 Abril
05 Mayo
06 Junio
07 Julio
08 Agosto
09 Septiembre
10 Octubre
11 Noviembre
12 Diciembre

se que el error es porque no puedo insertar str en un campo que es int pero es lo que quiero saber
alguna sugerencia
Responder Con Cita
  #6  
Antiguo 24-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Es el mismo problema que veniamos ya tratando antes

Código Delphi [-]
if (cxComboBox1.Text='Mes')and (cxComboBox2.Text<>'') then
    Q_PerNomina.AddWhere('MES='+QuotedStr(cxComboBox2.EditValue));

En tu base tenes un int, le estas mandando 02 Enero, es logico que te de error
Responder Con Cita
  #7  
Antiguo 24-02-2016
davidmedina29 davidmedina29 is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 34
Poder: 0
davidmedina29 Va por buen camino
hola Agustin gracias por responder, si entiendo pero mi duda es que se puede aplicar ahi para que en ves de enero busque el el numero del mes
Responder Con Cita
  #8  
Antiguo 24-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Es que es lo mismo cuando tenias que grabar, creo que quedaba ComboBox.ItemIndex + 1
Responder Con Cita
  #9  
Antiguo 24-02-2016
davidmedina29 davidmedina29 is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 34
Poder: 0
davidmedina29 Va por buen camino
de hecho ya lo intente asi
Código Delphi [-]
if (cxComboBox1.Text='Mes')and (cxComboBox2.ItemIndex <>'')  then
    Q_PerNomina.AddWhere('MES='+QuotedStr(cxComboBox2.EditValue));

y me marca error no me deja correrlo
me marca
incopatibles type 'String' and 'Integer'
Responder Con Cita
  #10  
Antiguo 24-02-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Porque la funcion QuotedStr solo sirve para strings, no sirve para Integers
Responder Con Cita
  #11  
Antiguo 24-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por davidmedina29 Ver Mensaje
de hecho ya lo intente asi
Código Delphi [-]
  if (cxComboBox1.Text='Mes')and (cxComboBox2.ItemIndex <>'')  then
    Q_PerNomina.AddWhere('MES='+QuotedStr(cxComboBox2.EditValue));

y me marca error no me deja correrlo
me marca
incopatibles type 'String' and 'Integer'
También revisa lo que remarque en color rojo. La propiedad ItemIndex es de tipo Integer, no tiene ningún sentido comparar si su valor es una cadena vacía.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 24-02-2016
davidmedina29 davidmedina29 is offline
Miembro
NULL
 
Registrado: feb 2016
Posts: 34
Poder: 0
davidmedina29 Va por buen camino
si entiendio que mi combobox esta en string y debo guardar un campo int pero ese es el punto no se como solucionar que al buscar busque el numero del 1 al 12 en la bd y no el texto de enero a diciembre.

gracias por responder compañeros
Responder Con Cita
  #13  
Antiguo 24-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
Empezado por davidmedina29 Ver Mensaje
si entiendio que mi combobox esta en string y debo guardar un campo int
...
Primero tenes que tener en claro que:
  • ComboBox.ItemIndex: Devuelve el índice actualmente seleccionado y es un valor de tipo Integer
  • ComboBox.Items[ComboBox.ItemIndex]: Devuelve el ítem actualmente seleccionado y es un valor de tipo String

Cita:
...
pero ese es el punto no se como solucionar que al buscar busque el numero del 1 al 12 en la bd y no el texto de enero a diciembre.
La verdad es que no te entiendo claramente, espero que lo que consultas sea esto:
Código Delphi [-]
...
  tu_Query.Close;
  tu_Query.SQL.Text := 'SELECT * FROM TU_TABLA WHERE MES = :MESNRO';
  tu_Query.ParamByName('MESNRO').AsInteger := ComboBox.ItemIndex;  //(*)
  tu_Query.Open;
...
(*) Es una sintáxis genérica, desconozco los componentes que usas ( ¿ Son UniDac ? ), tendrás que hacer los ajustes necesarios.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Realizar busqueda en firebird miguelgalindo87 Firebird e Interbase 9 01-06-2012 23:17:45
Realizar una busqueda en php (dreamweaver) ledesma78 PHP 4 07-11-2008 15:15:54
Realizar Busqueda en la BD knnibal Conexión con bases de datos 10 02-11-2008 20:26:54
realizar busqueda con un SP fedelphi Firebird e Interbase 5 29-11-2006 21:28:25
Como realizar una busqueda? danytorres Varios 1 12-01-2004 17:14:43


La franja horaria es GMT +2. Ahora son las 23:46:18.


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