Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

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 17: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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 20:13:01.


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