Главная страница
    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.058 c
3-1084527737
}|{yk
2004-05-14 13:42
2004.06.06
Никто не знает как поще преобразовать timestamp в строку типа


14-1084984315
Sabak
2004-05-19 20:31
2004.06.06
Нуженли сайт


3-1084518929
TransparentGhost
2004-05-14 11:15
2004.06.06
Где находятся SHGetSpecialFolderPath и SHGetFolderPath ?


14-1084808594
Thor
2004-05-17 19:43
2004.06.06
покупка велосипеда.


6-1079597472
Max_Ivanych
2004-03-18 11:11
2004.06.06
Помогите с кодом отсылки сообщения ы помощью idSMTP





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