FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cargar Imagenes En Una Tabla De Interbase
Bueno tengo el siguiente problema, estoy desarrollando una aplicación en Delphi 6 para una tienda de discos en la cual ademas de capturar los datos del disco en el modulo de compras tambien se pueda cargar una imagen(caratula) del cd comprado para posteriormente visualizarla en el catalogo de cd. Bueno el problema es que mi codigo para cargar la imagen me manda un error cuando quiere cargar la imagen los componentes que utilizo son: IBDatabase, IBTransaction, IBDataSet Y DataSource enlazo todo como de costumbre y el codigo en el boton de cargar la imagen es el siguiente:
procedure TForm1.Button1Click(Sender: TObject); var m, f: TStream; s: string; begin if OpenPictureDialog1.Execute then begin IBDataSet1.Edit; //tendria que dar error sin esto m:= IBDataSet1.CreateBlobStream(IBDataSet1.FieldByName('FOTO'), bmWrite); f:= TFileStream.Create(OpenPictureDialog1.filename, fmOpenRead); m.CopyFrom(f, f.Size); s:= AnsiUpperCase(ExtractFileExt(OpenPictureDialog1.FileName)); //Siempre en mayusculas if s='.JPEG' then s:= '.JPG'; //un caso especial IBDataSet1.FieldByName('FORMATO_FOTO').AsString:= Copy(s,2,3); //elimino el punto IBDataSet1.Post; f.Free; m.Free; end end; Despues el codigo que puse en el evento OnDataChange del componente DataSource es este: procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); var m, f: TStream; begin if IBDataSet1.FieldByName('FOTO').IsNull then Image1.Picture:= nil else begin if IBDataSet1.FieldByName('FORMATO_FOTO').AsString = 'BMP' then Image1.Picture.Graphic:= TBitmap.Create else Exit; m:= IBDataSet1.CreateBlobStream(IBDataSet1.FieldByName('FOTO'), bmRead); Image1.Picture.Graphic.LoadFromStream(m); m.Free; end; end; La primera vez que ejecute la aplicacion al darle click al boton de cargar y escoger la imagen me mando el siguiente error: Project Project1.exe raised exception class EDatabaseError with message 'IBDataSet1: Cannot modify a read-only dataset'. Process stopped. Use Step or Run to continue Entonces en la propiedad Active del componente IBDataSet la cambie a false y despues ejecute nuevamente el programa y nuevamente al momento de querer cargar la imagen me mando el siguiente error: Project Project1.exe raised exception class EDatabaseError with message 'IBDataSet1: Cannot perform this operation on a closed dataset'.Process stopped. Use Step or Run to continue Soy principiante en Delphi asi que la verdad no he podido encontrar el error quisiera que alguno de los compañeros foristas pueda ayudarme con mi problema o si alguien sabe alguna otra manera de cargar una imagen en una tabla de Interbase y luego visualizarla en un DBImage me seria de gran ayuda, espero que alguien me pueda ayudar con este problema. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cargar Imagenes con el DBIMAGE desde un QUERY | (VIH)Lestat | Conexión con bases de datos | 7 | 29-06-2005 17:03:44 |
Cargar imágenes desde un imagelist | johncook | Varios | 1 | 06-12-2004 13:44:15 |
Cargar imagenes | ramonibk | Gráficos | 7 | 26-07-2004 16:12:35 |
cargar datos a una tabla en Interbase | saul saldaña | Conexión con bases de datos | 2 | 29-06-2004 14:13:09 |
cargar imagenes desde un fichero | docarrillo | Varios | 2 | 12-07-2003 17:02:46 |
|