Главная страница
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.05 c
3-1084772982
ss300
2004-05-17 09:49
2004.06.06
Странная Ошибка при вызове метода Post;


14-1085234701
Kolyan
2004-05-22 18:05
2004.06.06
Мы все учились понемногу.................


1-1085116734
X9
2004-05-21 09:18
2004.06.06
Динамическое создание нескольких TSpeedButton. Срочно!


14-1084979824
Nous Mellon
2004-05-19 19:17
2004.06.06
Регистрация


14-1085224655
Jel
2004-05-22 15:17
2004.06.06
Подскажите софт для редактирования mp3 без преобразования в wav