![]() |
Problema urgente con un datasource
Bueno, lo primero de todo pedir disculpas por adelantado si incumplo alguna norma del foro, acabo de registrarme y aún no he tenido tiempo de revisar normativas ni hilos anteriores.
Os cuento mi problema, a ver si alguien puede echarme una mano. En una aplicación tengo un DBGrid al cual asocio un DataSource u otro según que botón se pulse. Pulsando otro botón ('Nuevo') libero el grid (datasource.free). Entre ambas acciones el programa realiza una consulta SQL. El Problema: Tras algunos cambios de DataSource la asignación empieza a fallar y el DBGrid se queda en blanco. Siguiendo la ejecución línea a línea he visto que el fallo viene porque al enviar el DataSource a la función que realiza el cambio, el valor enviado se convierte en 'Nil'. CambiarTabla(DM.DtsTabla1); // Llamada a la función. CambiarTabla(Datos : TDataSource); begin DBGrdTablas.DataSource := Datos; // Asignación. end; La verdad es que no se me ocurre porque puede pasar, ya que lo extraño es que a veces funciona y a veces no. ¿Alguna idea? |
Hola Yago, bienvenido al foro.
Cuando haces Datasource.Free, en realidad lo que estás haciendo es destruir la instancia del DataSource, es decir, la estas liberando de la memoria y no podrás referenciarla más adelante, ¿Ese es el comportamiento que esperas?. De acuerdo con lo que yo entiendo, lo que quieres es asociar diferentes Datasource a un DBGrid, en el caso en que quieras dejar el DBGrid sin asociación a un Datasource utiliza lo siguiente:
Espero haber entendido tu problema. Saludos |
Diooos... vaya burro que estoy hecho :(
Has entendido perfectamente lo que quería hacer. Esto me pasa por usar código sin saber bien lo que hace. Muchísimas gracias por tu ayuda, me salvas el curso ;) |
La franja horaria es GMT +2. Ahora son las 03:05:46. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi