Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, no es assign() es assigned(). La primera copia dos objetos. La segunda comprueba que el argumento pasado como puntero no sea null. Saludos.
Responder Con Cita
  #2  
Antiguo 30-10-2008
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 22
Bauhaus1975 Va por buen camino
Hola, me refería a la linea:
form1.TJvDBLookupList.Field.Assign(prueba);
Que es donde salta la excepción...
Responder Con Cita
  #3  
Antiguo 30-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
¿Son de los mismos tipos?¿o Fields es TFieldList? Si se puede acceder a Field de manera array (Field[0]) entonces son distintos tipos. De todas maneras, prueba con una asignacion directa (form1.TJvDBLookupList.Field = prueba) y comprueba antes si prueba no es null (if prueba = nil then showmessage(''))
Responder Con Cita
  #4  
Antiguo 30-10-2008
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 22
Bauhaus1975 Va por buen camino
Son TField.
La sentencia form1.TJvDBLookupList.Field = prueba; no puede ejecutarse porque '.Field' es de sólo lectura...
Responder Con Cita
  #5  
Antiguo 30-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Si es de solo lectura...tampoco le tendrias que poder hacer un assign en teoria. De todas maneras, has comprobado que prueba no sea nil antes del assign? ¿Y para que sirve la propiedad .Field? si es de solo lectura, probablemente sera por algun motivo.
Responder Con Cita
  #6  
Antiguo 30-10-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Es extraño que sea tipo TField. Si TJvDBLookupList es analogo al TDBLookupListBox, tendria que ser un tipo string...

EDITO : TDBLookUpListBox.DataField tambien es de tipo TField.

Última edición por coso fecha: 31-10-2008 a las 22:47:17.
Responder Con Cita
  #7  
Antiguo 31-10-2008
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 22
Bauhaus1975 Va por buen camino
Hola de nuevo. Algo he avanzado al menos.
Resulta que cómo sigo bastante 'verde' con Delphi no había visto la propiedad 'DataField', la cual he usado para signar el campo (Field) 'TIPO' de la query. Ahora al menos esta sentencia no da problemas. Otra cosa: He cambiado el TJvDBLookupList por un TDBListBox, ya que sólo necesito mostrar todos los valores de un campo en la lista y no quiero complicarme.

Lo peor es que (ahora) no soy capaz de hacer que se carguen los datos en la lista. He revisado y todo parece bien conectado.

¿Hay algo que me falta o algún paso es incorrecto?
Añado la sección de código implicada:


Código Delphi [-]
{
-La idea es cargar en la lista lo almacenado en el campo 'Tipo' de la tabla 'Tipos'-
dbListTipos -> Lista asociada al sgte DataSource
dsTipos -> Asociado a la query
ibqObtenerTipos -> la query (SELECT DISTINCT(Tipo) as Tipo FROM Tipos)
}
self.dbListTipos.ReadOnly := true;
self.dbListTipos.DataField := 'TIPO';
// Ejecutamos la query
try
with DM.dmPrincipal do
begin
// Preparamos la transacion
if (ibtPrincipal.InTransaction) then
if (not ibtPrincipal.Active) then
begin
ibtPrincipal.StartTransaction;
ibtPrincipal.Active:=true;
ibtPrincipal.Rollback;
end;
// Realizamos la petición de datos
self.dsTipos.DataSet.Close;
dmComunData.ibqObtenerTipos.Close;
dmComunData.ibqObtenerTipos.Active := true;
dmComunData.ibqObtenerTipos.Open;

self.dsTipos.DataSet.Open();
// Mostramos el formulario
self.ShowModal; // Al mostrar el formulario no se carga nada
end;
finally
showmessage('ERROR DE BBDD');
end;






Haciendo un debug, he visto que la query efectivamente devuelve los registros existentes en la BBDD, pero la lista no carga nada...

Gracias de nuevo y un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Asignar datos origen a gráfico en tiempo de ejecución g_rojo Gráficos 4 07-12-2007 01:44:19
Asignar evento OnDrawColumnCell en tiempo de ejecución gluglu OOP 6 01-06-2007 13:14:58
Asignar propiedades de Ttable en tiempo de ejecución coleleon Tablas planas 3 30-11-2005 23:22:39
Asignar evento Oncalcfield en tiempo de ejecucion el_barto Conexión con bases de datos 5 06-09-2005 00:08:46
Asignar la ruta de tablas en tiempo de ejecucion tortelini Varios 2 19-03-2005 12:13:53


La franja horaria es GMT +2. Ahora son las 21:06:28.


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
Copyright 1996-2007 Club Delphi