Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-07-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
No graba imagen en Firebird

Tenog un formulario con un TImage en el que puedo seleccionar el fichero de imagen a asignar para luego grabarlo en una tabla Firebird. Supongamos que el TImage está así:

Un vez cargado dicho TImage para grabarlo en la tabal hago esto:
Código:
for (nItem = 0; nItem < this->ComponentCount; nItem ++)
{
     Source = this->Components[nItem];
     [...]
     fPersona->Query->Close();
     if (Source->ClassNameIs("TImage"))
     {
          TImage *Imagen          = static_cast<TImage*>(Source);
          TMemoryStream *msImagen = new TMemoryStream;

          (Imagen->Picture->Bitmap)->SaveToStream(msImagen);
          msImagen->Seek(0, soFromBeginning);
          if (!lPrueba && msImagen->Size == 0)
               continue;

          if (msImagen == 0)
               fPersona->Query->SQL->Text = "DELETE FROM Instalacion WHERE Etiqueta = :Campo";
          else
          {
               if (lPrueba)
                    fPersona->Query->SQL->Text = "UPDATE Instalacion SET Imagen = :Imagen WHERE Etiqueta = :Campo";
               else
                    fPersona->Query->SQL->Text = "INSERT INTO Instalacion (Etiqueta, Imagen) VALUES (:Campo, :Imagen)";
                    fPersona->Query->ParamByName("Imagen")->LoadFromStream(msImagen, ftBlob);
          }
          fPersona->Query->ParamByName("Campo")->AsString = Source->Name;
     }
     [...]

     try
     {
          fPersona->Query->ExecSQL();
          fPersona->Query->Transaction->Commit();
     }
     catch(...)
     {
          Screen->Cursor = crArrow;
          fPersona->Query->Transaction->Rollback();
          Mensaje(-1, "Se ha producido un error en la actualización de los datos.¦" + ExtractFileName(AnsiString(__FILE__)) + FormatFloat("' - '0", __LINE__), "Volver");
          LisSitSelectItem(NULL, NULL, false);
          return;
     }
}
El problema es que ni me da error ni nada; simplemente, no graba nada.
Responder Con Cita
 



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
A pesar de la excepción, el registro se graba Angel.Matilla Firebird e Interbase 4 17-11-2015 20:21:43
BDEAdmin no graba el idapi32.cfg en Windows 7 Matorral Conexión con bases de datos 6 07-12-2010 11:04:32
Por que no graba en Win.ini alquimista API de Windows 11 23-04-2008 00:20:01
query no Graba , se cierra juanmaster Tablas planas 9 12-12-2006 23:52:21
lookup + dbgrid: no graba jonmendi Conexión con bases de datos 4 12-01-2006 08:21:53


La franja horaria es GMT +2. Ahora son las 18:17:12.


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