Главная страница
    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.033 c
14-1084755803
ИМХО
2004-05-17 05:03
2004.06.06
Кодеки для MPG


14-1085222466
Vlad
2004-05-22 14:41
2004.06.06
Тейксер и Пачеко


1-1085637375
ilnarab
2004-05-27 09:56
2004.06.06
Вопрос по ListBox


1-1085325898
vajo
2004-05-23 19:24
2004.06.06
TreeView


3-1084804174
opoloxai
2004-05-17 18:29
2004.06.06
Пароль *.mdb-файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский