Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 20
thelibmx Va por buen camino
Cita:
Empezado por Delfino Ver Mensaje
La cosa es mas sencilla q esto :
un campo Blob persistente tiene los metodos LoadFromFile y LoadFromStream, o bien haces un cast a la clase TBlobField, si el campo no es persistente,

Código Delphi [-]
CampoBlob.LoadFromFile(..);
(Dataset.FieldByName('NombreBlob') as TBlobField).LoadFromSream(..);




te quedas con el q mas te conviene de los dos..
ok, gracias delfino, mira me da pena decir esto pero soy super nuevo en eso de los campos blob, mas o menos intento entender como es que se lleva ese proceso pero no me queda claro, cuando pones campoblob.loadfromstream campoblob se refiere al nombre del campo donde se va insertar el archivo ¿? o a que, yo ocupo un tquery para insertar los datos, me es util ese query o tengo que agregar algun componente¿? eso es lo que no me queda claro, o donde debo agregar la linea para que suba el archivo a la hora de hacer el insert, mi codigo es el que esta arriba, no se si puedas apoyarme un poco o darme una pista, de antemano gracias por tu ayuda
__________________
En movimiento...
Responder Con Cita
  #2  
Antiguo 14-12-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 24
sitrico Va por buen camino
Bueno mira no se si ayude o complique la cosa a estas alturas pero te recomiendo lo siguiente:

Modifica la sentencia SQL asi:

Original:
Código Delphi [-]
Querygestion.SQL.add('insert into tabla_prueba(llave,nombre,archivoblob) values '+
      Edit1.Text+','''+tdEditAsunto.Text+''','+QuotedStr(blob)+')');

Modificada:
Código Delphi [-]
Querygestion.SQL.add('insert into tabla_prueba(llave,nombre,archivoblob) values '+
      '(:llave,:nombre,:archivoblob)');

De esa manera usarás parametros para manipular los datos en SQL (el nombre del campo precedido de dos puntos ":")

Luego (creo) que puedes hacer:

Código Delphi [-]
Querygestion.ParamByName('llave').asinteger := unentero;
Querygestion.ParamByName('nombre').AsString := uncharacter
Querygestion.ParamByName('archivoblob').AsString := memo.text

Tambien tengo por ahi un codigo para el loadfromfile y loadfromstream pero no en este equipo prueba y si te sirve mañana te puedo poner más información.
__________________
Sitrico

Última edición por sitrico fecha: 14-12-2007 a las 03:12:04.
Responder Con Cita
  #3  
Antiguo 14-12-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 20
thelibmx Va por buen camino
muchas gracias sitrico, pues ahorita no puedo probar el codigo por que estoy en mi casa pero llegando al trabajo lo pruebo y te digo que tal, veo que el archivoblob, esta asignado a un memotext, supongo que eso es para subir un archivo de texto, me parece que si quisiera hacerlo con cualquier tipo de archivo tendria que ser un loadstream, ojala puedas postear el otro codigo, de antemano muchas gracias por la atencion y pues por la ayuda
__________________
En movimiento...
Responder Con Cita
  #4  
Antiguo 15-12-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 24
sitrico Va por buen camino
No pude enviarlo hoy pero encntré este ejemplo:

Código Delphi [-]
procedure TForm1.loadPic;
var
  jpeg: TJPEGImage;
  Stream: TMemoryStream;
  BlobField: TBlobField;
begin
  BlobField := table1.DataSet.FieldByName('Bild') as TBlobField;
  jpeg := TJPEGImage.Create;
  try
    if  (Image1.Picture.Graphic is TJPegImage) then  begin
       jpeg.Assign (ImageFoto.Picture.Bitmap);
    end;
    Stream := TMemoryStream.Create;
    try
       jpeg.SaveToStream (Stream);
      DataSourceForm.DataSet.Edit;
      BlobField.LoadFromStream (Stream);
    finally
      Stream.Free;
    end;
  finally
    jpeg.Free;
  end;
end;

El TBlobField es más o menos equivalente al Querygestion.ParamByName(BlobField).
__________________
Sitrico
Responder Con Cita
  #5  
Antiguo 17-12-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 20
thelibmx Va por buen camino
Question

[quote=sitrico;252575]Bueno mira no se si ayude o complique la cosa a estas alturas pero te recomiendo lo siguiente:

Modifica la sentencia SQL asi:

Original:

Código Delphi [-]Querygestion.SQL.add('insert into tabla_prueba(llave,nombre,archivoblob) values '+
Edit1.Text+','''+tdEditAsunto.Text+''','+QuotedStr(blob)+')');





Modificada:

Código Delphi [-]Querygestion.SQL.add('insert into tabla_prueba(llave,nombre,archivoblob) values '+
'(:llave,:nombre,:archivoblob)');





De esa manera usarás parametros para manipular los datos en SQL (el nombre del campo precedido de dos puntos ":")

Luego (creo) que puedes hacer:


Código Delphi [-]
Querygestion.ParamByName('llave').asinteger := unentero;
Querygestion.ParamByName('nombre').AsString := uncharacter
Querygestion.ParamByName('archivoblob').AsString := memo.text




quote]
con ese codigo manda un mensaje de "table is read only" ya verifique en las propiedades del ttable y la propiedad read only esta desactivada, cheque en el tdatabase haber si podria haber alguna propiedad ahi y no encontre algo que pudiera afectar, alguna sugerencia o comentario que me pudieran dar?


gracias
__________________
En movimiento...
Responder Con Cita
  #6  
Antiguo 17-12-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
Cita:
Empezado por thelibmx Ver Mensaje
con ese codigo manda un mensaje de "table is read only" ya verifique en las propiedades del ttable y la propiedad read only esta desactivada, cheque en el tdatabase haber si podria haber alguna propiedad ahi y no encontre algo que pudiera afectar, alguna sugerencia o comentario que me pudieran dar?


gracias
Creo que necesitarás un TUpdateSQL si es que estás utilizando un componente TQuery.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #7  
Antiguo 17-12-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 20
thelibmx Va por buen camino
Question

en efecto si estoy utilizando un tquery.

El TUpdateSQL es un componente que no he ocupado aun, lo uso en sustitucion del tquery? o como lo pongo en marcha? eh buscado un poco en los foros y creo que lo tendria qe ligar al t query pero no se muy bien, sigo buscando sobre tupdatesql, si pones un poco de codigo me serviria de ayuda a entender mejor agradezco tu ayuda D&W, vaya que estoy sufriendo con subir archivos a la base de datos
__________________
En movimiento...
Responder Con Cita
  #8  
Antiguo 17-12-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 21
Chris Va por buen camino
primero, el TUpdateSQL tiene es un componente que normalmente, se encuentra dentro de la misma paleta que el TQuery. El TQuery tiene una propiedad lladada UpdateObject, en esta es donde relacionas el TQuery con el TUpdateSQL.

Ahora, tendrás que ingresar secuencias SQL en el TUpdateSQL, para esto haz doble-clic en modo de diseño sobre el componente TUpdateSQL, donde se te mostrará una ventana en donde las podrás ingresar. Trae opciones para que el sistema te las genere automáticamente. Puedes buscar más ayuda al respecto en la ayuda de Delphi o aca en los foros.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #9  
Antiguo 21-12-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 20
thelibmx Va por buen camino
Question

ya agregue el tupdatesql, modifique un poco el codigo puse entonces mi codigo es asi
Código:
 
procedure TFrmenuu.BitBtn1Click(Sender: TObject);
begin
if OpenDialog.Execute then
begin
Olecontainer1.CreateObjectFromFile(PChar(OpenDialog.FileName),false);
vertbar.max:= Olecontainer1.Height;
horzbar.max:= Olecontainer1.Height;
Panelcontenedor.Visible:=true;
showmessage(OpenDialog.FileName);
Querygestion.Active:=true;
Querygestion.Insert;
QuerygestionLlave.Value :=strtoint(Edit1.Text);
QuerygestionNOMBRE.Value :=tdEditAsunto.Text;
QuerygestionARCHIVOBLOB.loadFromFile(OpenDialog.FileName);
Querygestion.Post;
showmessage('agregado');
//fin del boton de carga de documento
end;
end;
sorry por usar esas etiquetas pero no habia etiquetas de delphi
ese codigo genera este error:
general sql error. Error while executing the query; ERROR: no existe el tipo <<lo>>.
si alguien tiene una pista se los agradecere
__________________
En movimiento...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insertar y recuperar una imagen en un campo blob bluegene Lazarus, FreePascal, Kylix, etc. 1 30-03-2007 20:07:21
Insertar y recuperar una imagen en un campo blob bluegene MySQL 0 30-03-2007 20:01:43
Insertar datos en archivo word desde aplicacion Delphi JulioGO Servers 1 24-02-2007 22:43:16
insertar registro en campo blob con asp oarias Firebird e Interbase 0 09-02-2007 18:42:50
¿Como Guardar un Bmp/Jpg en un campo BLOB desde Delphi? LuCkY_007 MySQL 4 18-01-2007 12:05:26


La franja horaria es GMT +2. Ahora son las 08:11:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi