Campo BLOB no Sql Server!!

14/02/2005

0

Olá pessoal,

Estou com um problema: Preciso gravar e visualizar imagens scanneadas (jpg) em uma tabela (já com outras informações) no Sql Server 2000 utilizando o Delphi. Acho que terei que utilizar campos BLOB. Não tenho idéia de como fazer isso.

Se alguém souber ou possuir um exemplo, ficaria muito agradecido!!!

Abraços!!


Leogalindo

Leogalindo

Responder

Posts

15/02/2005

Bon Jovi

Use DBImage:

procedure TForm1.EscolheImagem(Imagem: TDBImage);
var
  oJPEG: TJPEGImage;
  oDialogo: TOpenPictureDialog;
  oPicture: TPicture;
begin
  if not Assigned(Imagem) then
    Exit;

  if (not Assigned(Imagem.DataSource)) or (Imagem.DataField = ´´) then
    Exit;

  if not Assigned(Imagem.DataSource.DataSet) then
    Exit;

  if not (Imagem.DataSource.DataSet.Active) then
    Exit;
     
  oDialogo := TOpenPictureDialog.Create(nil);
  try
    oDialogo.Options := [ofOverwritePrompt, ofHideReadOnly, ofEnableSizing];
    oDialogo.Filter := ´Imagens (*.jpg;*.jpeg;*.bmp)|*.jpg;*.jpeg;*.bmp´;
    oPicture := TPicture.Create;
    try
      oJPEG := TJPEGImage.Create;
      try
        if oDialogo.Execute then
        begin
          oPicture.LoadFromFile(oDialogo.FileName);
          oJPEG.Assign(oPicture.Graphic);
          if not (Imagem.DataSource.DataSet.State in dsEditModes) then
            Imagem.DataSource.DataSet.Edit;
          Imagem.Picture.Graphic.Assign(oJPEG);
        end;
      finally
        FreeAndNil(oJPEG);
      end;
    finally
      FreeAndNil(oPicture);
    end;
  finally
    FreeAndNil(oDialogo);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EscolheImagem(DBImage1);
end;



Responder

19/04/2022

Paulo Oliveira

Usando:
PHP
SQL Server

Estou tentando converter uma foto que está em campo blob e Hexadecimal, mas quando faço um Select

$sql  = 'SELECT id, foto  ';
$sql .= '  FROM tabela';
$sql .= ' WHERE  id = 10 ';

$stmt = $msconn->prepare($sql);
$stmt->execute();

while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
	if($row['foto']!=''){
		  $id = $row['id'];
		  $fot = substr($row['foto'],2);
		  echo '<textarea cols=60 id="opiniao" rows="10" name="foto" wrap="hard" id="f_foto">'.$row['foto'].'</textarea><br>';
		  $binary = pack("H" . strlen($fot), $fot);
		  $arquivo = "img/profile/foto".$id.".jpeg";
		  file_put_contents($arquivo, $binary);

		  $foto = 'img/profile/foto'.$id.'.jpeg';

		  echo '<img src="'.$foto.'" /><br>';
		  echo $foto.'<br>';
	}
}


Mas está saindo caracteres estanhos em vez dos hexadecimais:

�����JFIF���������C�




  ���C  

����,"��������������
�������}�!1AQa"q2���#B��R��$3br�
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������������������
������w�!1AQaq"2�B���� #3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ��?��-��h9����s�W�O�i��8 T���K�q@�N'4

���Z���(OZwL�)���)�M+�HV*<!���[�t�V�����<�'bZ23�T �+^H U%�9��63ۚ��OJ�$%s���)��K�ʻ���p�{��u�%�?�]l�=*���8���'�HX�B�=j�_Z��-#��
`_�̙1�v=i��Q�T�ѝ�


No qual deveria estar algo neste sentido:

FFD8FFE000104A46494600010200000100010000FFDB0043000302020302020303030304030304050805050404050A070706080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F171816141812141514FFDB00430103040405040509050509140D0B0D1414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414FFC0001108019E012C03012200021101031101FFC4001F0000010501010101010100000000000000000102030405060708090A0BFFC400B5100002010303020403050504040000017D01020300041105122131
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar