Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-03-2010
r1d2m3 r1d2m3 is offline
Miembro
 
Registrado: nov 2009
Posts: 88
Poder: 15
r1d2m3 Va por buen camino
¿como usar un campo blob para almacenar un archivo en mysql?

Hola colegas, estoy con el siguiente inconveniente, debo grabar en una base de datos MySQL, un documento (tipo rtf), y, hasta donde he podido avanzar, debo hacerlo bajo un campo tipo blob, hasta aquí todo bien, pero al intentar enviarlo a la bd, tengo un problema de definición del parámetro y me tira un error. Les muestro el código que estoy usando y luego les transcribo el error.

Código Delphi [-]
  procedure GrabarTexto(varIDTexto:Integer; varStream:TStream);
    var
      cmdActDatos:TADOQuery;


    begin
      cmdActDatos:=TADOQuery.Create(nil);
      cmdActDatos.Connection:=cnn;
      cmdActDatos.Parameters.CreateParameter('nroRs', ftInteger, pdInput, 10, False);
      cmdActDatos.Parameters.CreateParameter('descripBreve', ftString, pdInput, 30, False);
      cmdActDatos.Parameters.CreateParameter('pltTexto', ftBlob, pdInput, 10000 , false); //en este línea es donde salta el siguiente error: la aplicación utiliza un valor de tipo no válido para la operación actual.
      cmdActDatos.SQL.Add('insert into tabmaetextos (nroRs, descripBreve, pltTexto) Values (:nroRs, :descripBreve, ltTexto)');
      cmdActDatos.Parameters.ParamByName('nroRs').Value := varIDTexto;
      cmdActDatos.Parameters.ParamByName('descripBreve').Value := 'Probando textos';
      cmdActDatos.Parameters.ParamByName('pltTexto').LoadFromStream(varStream, ftBlob);
      cmdActDatos.ExecSQL;

    end;

pido disculpas por lo rudimentario del código, pero se trata de un prototipo que después será emprolijado a los efectos de protegerlo contra fallos, también vi por otros hilos que no se recomienda guardar documentos en las bd, comparto la opinión pero en este caso, los documentos siempre serán de muy bajo peso, razón por la cual la bd no crecerá fuera de control.

Gracias y quedo a la espera de vuestros comentarios.
Responder Con Cita
  #2  
Antiguo 26-03-2010
r1d2m3 r1d2m3 is offline
Miembro
 
Registrado: nov 2009
Posts: 88
Poder: 15
r1d2m3 Va por buen camino
Hola colegas, he visto varias lecturas de este hilo pero aún no tengo alguna respuesta, por las dudas esté mal ubicado en este foro, pido a algún moderador que lo pase a OOP, tal vez allí alguien se haya topado con este problema, lo haya resuelto, y me pueda tirar un cable. No quiero copiarlo y pegarlo en otro foro ya que no se si esto es correcto, por otro lado, si este procedimiento es correcto, avisenme y lo hago así.

Gracias y saludos.
Responder Con Cita
  #3  
Antiguo 22-04-2010
manuc manuc is offline
Miembro
 
Registrado: abr 2010
Posts: 165
Poder: 15
manuc Va por buen camino
Hola r1d2m3,

No se si habrás encontrado ya una solución, pero te comento.

lo que podrías hacer es iniciar el query con una consulta select y posteriormente insertar el registro.

Código Delphi [-]
cmdActDatos.close;
cmdActDatos.commandText = 'SELECT * tabmaetextos WHERE ...';
cmdActDatos.open;
cmdActDatos.insert;
cmdActDatos.fieldbyname('nroRs').asInteger := xx;
cmdActDatos.fieldbyname('descripBreve').asString := 'xx';
cmdActDatos.fieldbyname('ltTexto').LoadFromStream(varStream, ftBlob);
cmdActDatos.post;

Ya me cuentas si te vale.

Un saludo.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como usar AJAX en .Net para cargar un archivo en un DIV? flystar .NET 1 24-12-2009 18:18:46
Almacenar y usar consultas vistas y procedimientos en campos blob sitrico Firebird e Interbase 6 07-09-2007 05:19:05
PDF en un campo blob de mysql jjaen26 SQL 0 21-09-2006 21:49:30
Problemas al almacenar imagen en campo blob Manuel Gráficos 4 15-06-2006 22:52:02
Cómo declarar un campo blob en interbase para almacenar un *.jpg jaderl Firebird e Interbase 1 20-10-2004 16:50:02


La franja horaria es GMT +2. Ahora son las 13:23:53.


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