Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
Como almaceno un Stream en una Tabla?

Como almaceno un Stream en una Tabla?, y si se puede como y el campo de que tipo deberia ser.


Thank's
Responder Con Cita
  #2  
Antiguo 21-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Tendrías que usar un campo BLOB o como sea que se llame este tipo de campos en la base de datos que olvidaste mencionar cuál es.

Delphi tratará este campo como un TBlobField que tiene métodos LoadFromStream y SaveToStream para leer u guardar un stream.

// Saludos
Responder Con Cita
  #3  
Antiguo 21-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
No veo inconveniente para almacenarlo en un campo blob. De hecho, el TBlobField cuenta con los métodos LoadFromStream y SaveToStream.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 21-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
No entiendo

En las tablas de Paradox no hay Blog, como le hago,
Responder Con Cita
  #5  
Antiguo 21-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que te funcionará el tipo Binary. Igualmente Delphi lo trata como TBlobField.

// Saludos
Responder Con Cita
  #6  
Antiguo 21-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
Incompatible de datos!!!????

Bueno, ya hice la tabla y todo, pero cuando le asigno la variable "Archivo", me dice

Código:
  incompatible type 'String' and 'TFileStream'
o sea, incompatible de datos, la pregunta es porque?, si segun lo de ahorita es un BlobField.

¿Que hice mal?

Código:
procedure TfrmMoveData.Button1Click(Sender: TObject);
Const
  DirI = 'D:\nux.mp3'; DirD = 'C:\nux.mp3';
Var
  Archivo, Destino : TFileStream;
  Tamano1, Tamano2 : Integer;
  Buffer : Array [0..9999] of Char;
begin
  Try
	Archivo := TFileStream.Create(DirI, fmOpenRead);
	Tamano1 := Archivo.Size;
 
	Destino := TFileStream.Create(DirD, fmCreate or fmOpenWrite and fmShareDenyWrite);
 
	While Destino.Size < Archivo.Size Do Begin
	  Tamano2 := Archivo.Read(Buffer,SizeOf(Buffer));
	  Destino.Write(Buffer, Tamano2);
	End;

	With TMoveData Do Begin
	  Append;
	  TMoveDataStream.Value := Archivo;
	  ApplyUpdates;
	  Post;
	End;

  Finally
	Archivo.Free;
	Destino.Free;
  End;

end;
Responder Con Cita
  #7  
Antiguo 21-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Value es una propiedad de tipo string. Funcionará así:

Código Delphi [-]
With TMoveData Do 
Begin
  Append;
  TMoveDataStream.LoadFromStream(Archivo);
  ApplyUpdates;
  Post;
End;

No se si hará falta primero posicionar Achivo al inicio, supongo que si.

Como verás, LoadFromStream es un método que tanto roman como yo habiamos mencionado ya antes.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 22-06-2005
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Hola:

Esto carga una foto en un campo blob de InerBase por medio de un stream. Mira a ver si hay algo que te interese.

Código Delphi [-]
procedure TFPalabras.TBCargaFotoClick(Sender: TObject);
var
  m, f: TStream;
  s: string;
begin
  //se abre picturedialog para cargar fichero foto que se coja
  if dlgOpenPicture.Execute then
    begin
      //modo edición
      DM.IBDSPalNue.Edit;
      //stream a partir campo Blob que contendrá la imagen
      m:= DM.IBDSPalNue.CreateBlobStream(DM.IBDSPalNueFOTO, bmWrite);
      //stream para acceder al archivo gráfico
      f:= TFileStream.Create(dlgOpenPicture.filename, fmOpenRead);
      //copiar de un stream a otro
      m.CopyFrom(f, f.Size);
      //coger formato foto y ponerlo en campo correspondiente
      s:= AnsiUpperCase(ExtractFileExt(dlgOpenPicture.FileName));
      if s='.JPEG' then
        s:= '.JPG';
      DM.IBDSPalNueFORMATOFOTO.AsString:= Copy(s,2,3);
      DM.IBDSPalNue.Post;
      DM.IBDSPalNue.Edit;
      //destruir streams
      f.Free;
      m.Free;
    end
end;
Responder Con Cita
  #9  
Antiguo 22-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
Luego de Guardar, Intento leerlo pero no puedo!

Luego de Guardar, Intento leerlo pero no puedo!, como le hago

Última edición por juliopag1 fecha: 22-06-2005 a las 16:02:48.
Responder Con Cita
  #10  
Antiguo 22-06-2005
juliopag1 juliopag1 is offline
Miembro
 
Registrado: abr 2004
Posts: 42
Poder: 0
juliopag1 Va por buen camino
Ya, resolvi mi problema!

Gracias, era un error de logica mia.

Gracias
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 10:05:25.


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