FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Crear tabla en tiempo de ejecución...
Hola a todos!
Estoy aquí nuevamente ya que necesitaría que me den una mano con lo siguiente. Estoy tratando de cargar unos datos desde una tabla Paradox a un objeto para luego utilizarlos en otro procedimiento. En realidad estoy empezando a tratar con el tema de objetos y haciendo algunas pruebas. Lo que quiero hacer es que la aplicación sea totalmente independiente de la cantidad de tablas que cree, nombres, ubicacion, etc. Hasta ahora vine bien, hasta que me di cuenta que había un campo Blob dando vueltas, me explayo: La clase la cree de la sig.manera (resumiendo): Código:
Type TDatos = class public codigo, marca, rubro, producto : string; imagen : TMemoryStream; //para el campo blob end; Lo que hago es ir leyendo uno a uno los registros de una tabla y asignándolos a cada campo de TDatos para luego mostrarlos en TEdits o lo que fuere. No doy mucho detalle de esto, ya que el problema viene mas adelante. Los datos los asigno al objeto de la sig.manera: Código:
FDatos.codigo:=Tabla.Fields.Fields[0].AsString; FDatos.marca:=Tabla.Fields.Fields[1].AsString; FDatos.rubro:=Tabla.Fields.Fields[2].AsString; FDatos.producto:=Tabla.Fields.Fields[3].AsString; Si la tabla ya la tenía creada mediante el componente de la paleta BDE, no había problemas, hacía: Código:
TablaIMAGEN.SaveToStream(FDatos.imagen); Pero acá se me generó este problema, ya que al hacerlo durante la ejecución, no me genera los campos y no puedo realizar ese procedimiento. Es muy probable que me haya mandado una macana al crear la tabla o tal vez que me haya metido en un embrollo por nada. Si alguien tiene una sugerencia será muy bienvenida. Muchas gracias a todos. Un abrazo. Walter Última edición por Walterdf fecha: 28-10-2006 a las 06:17:27. |
#2
|
||||
|
||||
Lo único que se me ocurre, es que no hayas creado el memoryStream en el constructor de tu objeto, y por tanto obtengas access violations. Tal y como lo veo sería algo así:
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
Mil gracias por responder pero el problema no pasa por access violations ya que el stream lo cree en el contructor del objeto. El problema está en la creación de la tabla en ejecución, no reconoce ningún campo como Blob.
Un abrazo y gracias nuevamente. Walter |
#4
|
|||
|
|||
Bueno, ya pude solucionar el tema de pasar el blob de la tabla al campo del objeto, de todos modos me sirvió lo anterior ya que había metido la pata con la inicialización del objeto.
Pongo el código que utilicé para cargar los datos de los campos del objeto con los de la tabla: Código:
function TdmFiguras.Cargar(var FDatos : TDatos) : boolean; var Stream : TMemoryStream; begin Stream := TMemoryStream.Create; FDatos.codigo:=dmTablas.Tabla.Fields.Fields[0].AsString; FDatos.marca:=dmTablas.Tabla.Fields.Fields[1].AsString; FDatos.rubro:=dmTablas.Tabla.Fields.Fields[2].AsString; FDatos.producto:=dmTablas.Tabla.Fields.Fields[3].AsString; Stream.LoadFromStream(dmTablas.Tabla.CreateBlobStream(dmTablas.Tabla.FieldByName('FIGURA'),bmRead)); FDatos.imagen:=Stream; result := true; end; Walter |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
crear tabla(.bd) | noipa | Varios | 9 | 26-01-2006 15:47:45 |
crear una Tabla | miguelml | Varios | 2 | 04-11-2005 17:59:34 |
crear tabla cds?¿ | acl_gandalf | Conexión con bases de datos | 3 | 21-09-2005 16:44:54 |
Crear tabla Access a partir de tabla FoxPro | Tecnic2 | Conexión con bases de datos | 6 | 01-09-2004 13:37:43 |
Crear tabla | andrestsas | Conexión con bases de datos | 2 | 04-08-2003 20:11:48 |
|