Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Картинки в БД   Найти похожие ветки 

 
Алексей Петухов   (2004-05-16 19:38) [0]

Здравствуйте, уважаемые мастера.
Вот помощь нужна опять.
Пытаюсь сохранить картинку ы поле типа "Image" в БД MSSQL2000

(qr.FieldByName("picture") as TBlobField).LoadFromFile(OpenDialog1.FileName);

Получаю ошубку "Invalid BLOB handle in record buffer".

Подскажите, как правильно картинки в БД сохранить.

Заранее благодарю за помощ.


 
Алексей Петухов   (2004-05-17 06:03) [1]

Ребяты, поможите, кто чем может %-)


 
Silver Alex ©   (2004-05-17 10:03) [2]

а зачем ты приводишь поле к типу TBlobField, оно у тебя что ли другого типа?И вообще код лучше бы глянуть, какие компонеты используешь.Я например иногда сохраняю так

if OpenDialog.Execute then
with qUpd do
begin
  ParamByName("bmp").LoadFromFile(OpenDialog.FileName,ftGraphic);
  ParamByName("name").AsString:=Query1.FieldByname("name").AsString;
  ExecSQL;
end;

ну и SQL- запрос такой

update animals
set bmp=:bmp
where
 name=:name
все работает, ну а читать там уже просто


 
NAlexey ©   (2004-05-17 11:00) [3]

Примерно так читать:


const
 sSQL = "SELECT * FROM IDs WHERE ID = %d;
var
 BlobStream: TADOBlobStream;
 StreamSize: Integer;
 FStream: TFileStream;
begin
 with TADOQuery.Create(nil) do
 try
   Connection := MyConnection;
   SQL.Text := Format(sSQL, [MyID]);
   Active := True;
   BlobStream := TADOBlobStream.Create(TBlobField(Fields[1]), bmRead);
   try
     StreamSize := BlobStream.Size - BlobStream.Position;
     FStream := TFileStream.Create("C:\ImHere", fmCreate);
     try
       FStream.CopyFrom(BlobStream, StreamSize);
     finally
       FStream.Free;
     end;
   finally
     BlobStream.Free;
   end;  
 finally
   Free;
 end;
end;

Примерно так писать:

procedure Foo(MyID: Integer; FileStream: TStream);
const
 sSQL = "INSERT INTO IDs VALUES (:ID, :Value)";
begin
 try
   with TADOQuery.Create(nil) do
   try
     Connection := MyConnection;
     SQL.Text := "INSERT INTO IDs VALUES (:ID, :Value)";
     Parameters.Items[0].Value := MyID;
     Parameters.Items[1].LoadFromStream(FileStream, ftBlob);
     ExecSQL;
   finally
     Free;
   end;
 except
   raise;
 end;
end;

Поле в таблице тип - Image...



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
4-1082969565
DennisLNC
2004-04-26 12:52
2004.06.06
Организация фонового удаления каталогов с содержимым


3-1084141117
NoName
2004-05-10 02:18
2004.06.06
Дополнительное поле


6-1082459141
SergeySS
2004-04-20 15:05
2004.06.06
помогите с WebBrowser


3-1084458282
Desdechado
2004-05-13 18:24
2004.06.06
обработка UNION в SELECT


4-1083405942
Игорь
2004-05-01 14:05
2004.06.06
Расширения Windows