Fórum Como gravar um executável no BLOB?? #55046
01/02/2006
0
Tipow, não sabia se perguntava em delphi ou aqui mas como tem mais a ver com banco...
Queria gravar um executávelzinho de uns 200 ou 300 k no banco de dados. Me disseram que dá pra gravar num BLOB. Como eu faço???
Queria gravar um executávelzinho de uns 200 ou 300 k no banco de dados. Me disseram que dá pra gravar num BLOB. Como eu faço???
Marcosrocha
Curtir tópico
+ 0
Responder
Posts
01/02/2006
Sremulador
Você pode utilizar o stream...
Responder
Gostei + 0
07/02/2006
Rtava
Costumo usar ADO para acesso ao BD. Da forma descrita abaixo dá para grava texto, imagem, executável ou qualquer outra coisa no BLOB. Com ADO pode ser feito assim:
Qualquer poste a dúvida novamente.
t+
Var Stm: TStream; fl: TFileStream; begin qrr.Open; ////////////////// SALVANDO DADOS NUM BLOB /////////////////// Stm := TStream.Create; // Cria um FileStream, lendo um determinado arquivo em disco fl := TFileStream.Create(´c:\temp\ngame.zip´, fmOpenRead); // Insere um registro qrr.Append; // Cria um campo do tipo TBlobStream, apontado para o campo Blob do banco de dados Stm := qrr.CreateBlobStream(qrr.FieldByName(´xx´), bmReadWrite); // Copia o conteúdo do arquivo aberto a partir do disco, para dentro da // variável TBlobStream, representada aqui por "Stm" Stm.CopyFrom(fl, fl.Size); // LIBERA O TBlobStream DA MEMÓRIA // Este Stream deve obrigatoriamente ser liberado antes do Post Stm.Free; qrr.Post; qrr.Requery; fl.Free; ////////////////// LENDO DADOS DE UM BLOB /////////////////// Stm := TStream.Create; // Aponta em disco o path e o nome do arquivo que deve ser criado // contendo o conteúdo do campo Blob do registro apontado fl := TFileStream.Create(´c:\temp\ngame_aaa.zip´, fmCreate); // Abre o registro para edição (OBRIGATORIAMENTE) qrr.Edit; // Cria um campo do tipo TBlobStream e carrega o conteúdo do campo // Blob do registro apontado na tabela Stm := qrr.CreateBlobStream(qrr.FieldByName(´xx´), bmReadWrite); // Atribui o conteúdo do TBlobStream ao TFileStream para que seja // possível salvá-lo em disco, com o nome apontado logo acima. fl.CopyFrom(Stm, Stm.Size); qrr.Post; Stm.Free; fl.Free; end;
Qualquer poste a dúvida novamente.
t+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)