|
|
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
Имею: Простая таблица с БЛОБ полем. На форме DBImage. В поле ВЛОВ вставляю картинку. Проблема: Не могу записать все картинки кроме *.bmp Например *.jpg в базе не записывается? Помогите. Использую Delphi7 с Interbase7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 22:56 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
jpg в базу пишется, только компонент тупой и не опознает ее... я это обошел обычным TImage и некоторым кол-вом кода. Поищи, тут даже был код с анализом bmp это или jpg... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 06:40 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
Создаем поток BlobStream и пишеи туда .bmp, .jpg, .gif, .avi, .mp3, .kgbcccp ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 10:30 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
Проще воспользоваться методом LoadFromFile соответсвующего блоб-поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 12:53 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
to StarWind to Малиновский Владимир Не могли бы вы мне дать примеры ваших реализаций? Сам я уже запутался, к сожалению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2003, 23:12 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
это будет выгрузка с БД в TImage.... если бы не ленился, то нашел бы на этом форуме и более универсальную функцию.... Код: plaintext 1. 2. 3. думаю как загрузить обратно догадаешься? или хотябы догадаешься что можно просто поискать на форуме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 03:26 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
to StarWind Я этот и др. форумы все обшарил. Ни один пример не работает! Ты то сам то пробовал? У меня стоит Delphi7, Interbase7, ibx708del to All Неужели вот у всех оно работает? Ну дайте нормальный, т.е. вами откомпилированный пример пожалуйста. Мне кажется проблема в том, что Interbase7 глючит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2003, 23:38 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
1 а может у тебя руки кривые??? Если что, я это выдернул из моего же работающего проекта. Именно на этот кусок возложены обязанности по демонстрации фотографий из базы данных... А что хоть за ошибка? Поди AV? тогда хочется спросить, у тебя объект Photo.Picture.Graphic создан? Или голова у тебя исключительно для того чтобы шапку носить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 03:04 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
Спокойнее, господа! Даю полный работающий код для IBX Delphi 7. (spMain_Add - IBStoredProc) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 13:45 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
to StarWind Твой пример говорит: "это будет выгрузка с БД в TImage.... " -Я говорю что это не проблема для меня. Мой вопрос говорит: "В поле ВЛОВ вставляю картинку. Проблема: Не могу записать все картинки кроме *.bmp" Ты говориш: "jpg в базу пишется..." Я спрашиваю " КАК???"!!!!!!! Все варианты перепробовал. Повторяю!!!! "демонстрации фотографий " - НЕ НАДО!!! А надо: Записать картинку в БЛОБ поле. PS. голова у меня для того чтобы носить шапку! А мозги, чтобы вдалбить тебе это. PS2. Без обид! Ты сам начал оскарблять. to _DmG_ Спасибо за пример, не сомневаюсь в том что он у вас работает. Но у меня проблема именно в том, где идет непосредственное присвоение значения в базу. т.е. не могли бы вы дать тот кусок примера хранимой процедуры, где значение блоб поля записывается в поле базы Interbase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2003, 22:51 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
чтоб мне это вдалбить? ну что ты... мне не нужно этого вдалбливать... я просто буду игнорировать этот топик... PS Знаешь какая между нами разница, то что у меня работает все... а ты паришься.... А в моем ответе содержался явный намек на ответ на вопрос как рашить загрузку... надо было лишь открыть хелп... Тоесть подумать головой Так что все таки у тебя голова у тебя только для шапки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 03:17 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
>Ты говориш: "jpg в базу пишется..." > >Я спрашиваю " КАК???"!!!!!!! Все варианты перепробовал. Я сразу оговорюсь, что Дельфина использую крайне редко. Ниже приведенная процедура как раз записывает в формате jpeg в БД картинку из TImage. По крайней мере у меня работало Написано на пятом Дельфине и больше года назад. procedure SavePhoto(Query:TIBCustomDataSet;fieldname:string;Image1:TImage); var bmp:TBitmap; jpg:TJpegImage; blob:TIBBlobStream; Begin bmp:=TBitMap.create; jpg:=TJpegImage.Create; try blob:=TIBBlobStream(Query.CreateBlobStream(Query.FieldByName(fieldname), bmReadWrite)); blob.Truncate; if Image1.picture.graphic<>nil then if not Image1.picture.graphic.Empty then begin bmp.width:=Image1.picture.Graphic.width; bmp.height:=Image1.picture.Graphic.height; bmp.Canvas.Draw(0,0,Image1.picture.Graphic); jpg.Assign(bmp); jpg.SaveToStream(blob); end; finally bmp.free; jpg.free; blob.free; end End; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2003, 06:15 |
|
||
|
В поле ВЛОВ вставляю картинку.
|
|||
|---|---|---|---|
|
#18+
Решил! Основная проблема в том, что я подключая uses windows...; даже не думал о том что, важна очередность юнита windows: в нем есть запись TBitmap = tagBITMAP; поэтому так: uses windows, ...; - работает a так: uses ..., windows; - не работает. Ну а дальше все так: В окне просмотра: при DataSource1DataChange: ... var Mo_Blob: TStream; ... if DataSource.State=dsBrowse then begin try Mo_Blob:= DataSet.CreateBlobStream(DataSet.FieldByName('B5'), bmRead); if Mo_Blob.Size <> 0 then begin try with DataSet do begin case FieldByName('B1').AsInteger of 1: E_B5.Picture.Bitmap.LoadFromStream(Mo_Blob); 2: E_B5.Picture.Icon.LoadFromStream(Mo_Blob); 3: E_B5.Picture.Metafile.LoadFromStream(Mo_Blob); else begin E_B5.Picture.Graphic:=TJPEGImage.Create; E_B5.Picture.Graphic.LoadFromStream(Mo_Blob); end; end; end; finally Mo_Blob.Free; end; E_B5.Visible:= true; end; except end; end; В окне редактирования: procedure TFE_ListIn1.Mp_LoadImage; var Mo_Blob: TStream; begin Mo_Blob:= DataSet.CreateBlobStream(DataSet.FieldByName('B5'), bmRead); try with DataSet do begin case FieldByName('B1').AsInteger of 1: E_B5.Picture.Bitmap.LoadFromStream(Mo_Blob); 2: E_B5.Picture.Icon.LoadFromStream(Mo_Blob); 3: E_B5.Picture.Metafile.LoadFromStream(Mo_Blob); else E_B5.Picture.Graphic.LoadFromStream(Mo_Blob); end; end; finally Mo_Blob.Free; end; end; procedure TFE_ListIn1.Mp_SaveImage; var Mo_Blob: TStream; begin Mo_Blob:= DataSet.CreateBlobStream(DataSet.FieldByName('B5'), bmWrite); try try with DataSet do if E_B5.Picture.Graphic is TBitmap then begin E_B5.Picture.Bitmap.SaveToStream(Mo_Blob); FieldByName('B1').AsInteger:= 1; end else if E_B5.Picture.Graphic is TIcon then begin E_B5.Picture.Icon.SaveToStream(Mo_Blob); FieldByName('B1').AsInteger:= 2; end else if E_B5.Picture.Graphic is TMetafile then begin E_B5.Picture.Metafile.SaveToStream(Mo_Blob); FieldByName('B1').AsInteger:= 3; end else begin E_B5.Picture.Graphic.SaveToStream(Mo_Blob); FieldByName('B1').AsInteger:= 4; end; except with DataSet do FieldByName('B1').AsInteger:= 0; end; finally Mo_Blob.Free; end; end; И еще проблема: Я в обеих окнах в Image1 загрузил в десигн режиме картинки *.jpg Они все равно перезаписываются, т.е. не показываются. Но если мне этого не делать, то программа перестает работать в jpegами. Хотя уже все у меня работает, т.е. уже не критично Вот еще код, кому надо, чтение и запись в файл: procedure TFE_ListIn1.Button_Picture1Click(Sender: TObject); begin if OpenDialog_Picture.Execute then begin E_B5.Picture.LoadFromFile(OpenDialog_Picture.FileName); Mp_SaveImage; end; end; procedure TFE_ListIn1.Button_Picture2Click(Sender: TObject); begin E_B5.Refresh; SaveDialog_Picture.DefaultExt:= ''; SaveDialog_Picture.FilterIndex:= 1; SaveDialog_Picture.FileName:= ''; if E_B5.Picture.Graphic is TBitmap then begin SaveDialog_Picture.DefaultExt:= '*.bmp'; SaveDialog_Picture.FilterIndex:= 4; end else if E_B5.Picture.Graphic is TIcon then begin SaveDialog_Picture.DefaultExt:= '*.ico'; SaveDialog_Picture.FilterIndex:= 5; end else if E_B5.Picture.Graphic is TMetafile then begin SaveDialog_Picture.DefaultExt:= '*.wmf'; SaveDialog_Picture.FilterIndex:= 7; end else begin SaveDialog_Picture.DefaultExt:= '*.jpeg'; SaveDialog_Picture.FilterIndex:= 3; end; if SaveDialog_Picture.Execute then begin if FileExists(SaveDialog_Picture.FileName) then if MessageDlg(Format(Mf_GetLangStr('zMyFilterG18',true), [SaveDialog_Picture.FileName]), mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit; E_B5.Picture.SaveToFile(SaveDialog_Picture.FileName); end; end; где фильтры SaveDialog_Picture и OpenDialog_Picture были такими: All (*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)|*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf|JPEG Image File (*.jpg)|*.jpg|JPEG Image File (*.jpeg)|*.jpeg|Bitmaps (*.bmp)|*.bmp|Icons (*.ico)|*.ico|Enhanced Metafiles (*.emf)|*.emf|Metafiles (*.wmf)|*.wmf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 02:39 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32328046&tid=1579612]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
7ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 369ms |

| 0 / 0 |
