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-04-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Problema con evento oncloseup

Me he creado un dblookupcombobox que me saca los nombres de una tabla en concreto. Lo que quiero hacer es que cuando seleccione un elemento de esa lista acto seguido me aparezca en el mismo form en un dbedit el resultado de esa consulta. Los campos en cuestion son de tipo A (string). Para hacer lo siguiente me he creado un evento oncloseup de ese dblookupcombobox donde ejecuto el siguiente código :

Código Delphi [-]
procedure TForm13.DBLookupComboBox1CloseUp(Sender: TObject);
var direc:string;
var v:string;
begin
v:=dblookupcombobox1.Text;
showmessage(v);
query3.Close;
query3.SQL.clear;
query3.SQL.Add('Select NOME FROM MAEOBRA WHERE DESCRIPCION=:"'+dblookupcombobox1.Text+'"');
query3.open;
direc:=query3.Fields[0].AsString;
showmessage(direc);
dbedit1.Text:=direc;
end;

Cuando muestro un mensaje con el valor de v si que me lo saca bien, pero si intento usar ese valor, cuando llega a la consulta me devuelve siempre el mismo tipo de error, por ejemplo : Query3: Field 'PROYES CASTELLON,S.L.' is of an unknown type.

La consulta es muy simple, supongo que la entendereis bien.

Debe haber algun fallo con el tipo de datos o algo, pero no consigo saber lo que falla, ya que otras consultas de este tipo me han funcionado sin problemas.

Saludos.
Responder Con Cita
  #2  
Antiguo 24-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
Código Delphi [-]
query3.SQL.Add('Select NOME FROM MAEOBRA WHERE DESCRIPCION=:"'+dblookupcombobox1.Text+'"');
para que le pones dos puntos?
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 24-04-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Ya esta solucionado, era eso y otra cosilla que me faltaba.
Es que estando todo el día programando a veces se te escapan errores tontos que no ves.

Una consulta, ahora una vez selecciono una opción en el combo si que me lo coje bien y me muestra los resultados de la consulta que se ejecuta en el evento oncloseup en un dbgrid. Mi duda ahora es si es posible que en vez de que me lo muestre en un dbgrid, si se podrían meter todo lo que me devuelve en un dblookupcombobox (solo es una columna).

Gracias

Última edición por snowlis fecha: 24-04-2007 a las 18:48:52.
Responder Con Cita
  #4  
Antiguo 24-04-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Puedes mostrarlo relacionando el Query con el ComboBox mediante las propiedades ListSource, ListField y KeyField.
Responder Con Cita
  #5  
Antiguo 24-04-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Ya, ya se me había ocurrido, pero eso sería su usará la propiedad sql de la query para hacer la consulta y yo lo hago todo mediante código, haciendo lo así :
Código Delphi [-]
query3.Close;
query3.SQL.clear;
query3.SQL.Add('Select NOME FROM MAEOBRA WHERE DESCRIPCION="'+dblookupcombobox2.Text+'"');
query3.Open;
Entonces de esta manera en el listfield por ejemplo no saca nada.

Lo he probado como dices tu, que es asignando un datasource a la query y luego con un dblookupcombobox mediante esas propiedades si que tendría que funcionar, pero no. He probado metiendole en la propiedad sql la consulta y luego desde el código lo ejecuto simplemente con un open. No da ningun tipo de error pero es como si la consulta sql que meto con código, al metersela a la propiedad sql de la query es como si no la detectará, ya que no funciona. La consulta es la que teneis en el código de arriba.
Hay que adaptarla de alguna manera o que es lo que puede suceder ?
Responder Con Cita
  #6  
Antiguo 24-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
y así?? luego de que has activado el query3
Código Delphi [-]
with tuOtroLookup do
begin
   listField := query3.Fields[0].fieldName;
   keyField := query3.Fields[0].fieldName;
end;
__________________
self.free;
Responder Con Cita
  #7  
Antiguo 24-04-2007
[basti] basti is offline
Miembro Premium
 
Registrado: ago 2004
Posts: 388
Poder: 20
basti Va por buen camino
Si lo haces por código, también puedes asignar las propiedades por código. Primero tienes que tener un TDataSource (DataSource1 en el ejemplo) relacionado con el Query, luego:

Código Delphi [-]
  with DBLookupComboBox1 do
  begin
    listSource := DataSource1;
    listField := 'NOME';
    KeyField := 'NOME';
  end;

edito : Se me ha adelantado drogerman...
Responder Con Cita
  #8  
Antiguo 25-04-2007
snowlis snowlis is offline
Miembro
 
Registrado: nov 2006
Posts: 30
Poder: 0
snowlis Va por buen camino
Gracias, haciendolo por código de la manera que me habeis dicho los 2 me funciona de maravilla .

Gracias de verdad, nunca te acuestas sin saber una cosa nueva de delphi
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
Evento de un boton juanpe Varios 4 19-02-2007 15:54:53
Problema con Delete en el evento OnKeyDown Durbed Varios 5 12-01-2007 14:54:29
Llamar evento desde otro evento nachito_tuc OOP 1 23-08-2006 21:37:43
Problema con evento AfterEdit de una grilla cybergerman OOP 0 14-07-2006 17:10:13
Problema con evento onNewRecord novaten Conexión con bases de datos 5 14-04-2005 22:07:04


La franja horaria es GMT +2. Ahora son las 00:56:08.


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