Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
Алексей Петухов   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.051 c
3-1084529519
ata133
2004-05-14 14:11
2004.06.06
Выделение определенных строк в DBGrid цветом


1-1085546834
Анатолий
2004-05-26 08:47
2004.06.06
Блокирование файлов как винда блокирует некоторые свои


3-1084524463
Tup
2004-05-14 12:47
2004.06.06
Удаление древ. структуры


14-1085216332
bender
2004-05-22 12:58
2004.06.06
Как сделать PopupMenu в RxRichEdite


6-1082466371
alan2
2004-04-20 17:06
2004.06.06
Пересылка файла через Сокеты от клиента к серверу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский