|
Вопрос # 5 083/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Здравствуйте, уважаемые эксперты!
Подскажите , пожалуйста!работаю с Delphi 7+ADO+Access как сделать чтобы когда Я нажимал на кнопку на форме в Delphi у меня появлялась окно , где я указываю путь к картинке , а после этого она добавляла в БД - таблицу, в поле у меня оно наз. фото(обычное текстовое)добавился путь к файлу...
К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)
 |
Вопрос задал: stasz13 (статус: Посетитель)
Вопрос отправлен: 12 марта 2011, 23:26
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 14 марта 2011, 05:26; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 12 марта 2011, 23:49 [#1]:
Ты хочешь работать с базами данных, не зная самых азов. Это очень печально. Больше и сказать-то нечего...
Ещё 1 человек, который думает, что Delphi - это тыканье мышой по форме. Вдвойне печально. ((
Хранить картинки отдельно от базы в файлах - это не есть комильфо. И это говорю я - чел, который не работает с базами.
Книжку бы тебе хорошую. Могу посоветоавть, кстати.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
stasz13 (статус: Посетитель), 12 марта 2011, 23:58 [#2]:
давай посоветуй! ты имеешь в виду в BLOB , ну я так не знаю как домозговать, поэтому прошу совета можешь , подскажи!
|
|
min@y™ (статус: Доктор наук), 13 марта 2011, 10:00 [#3]:
Цитата (stasz13):
ты имеешь в виду в BLOB
Ну да. Даже вместе с delphi идёт исходник демо-проги с блобами. А книжек тут у нас полно. А во всём интернете - гораздо больше.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
stasz13 (статус: Посетитель), 13 марта 2011, 17:27 [#4]:
Если кто знает помогите, в свойствах компонента DBGrid --> OnDrowColumnCell --> пишу код
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
Image1.Picture.LoadFromFile(ADOTable1['фотография']);
Image1.Stretch:=true;
end;
end.
У меня две формы, выдат ошибку когда я пытаюсь на первой форме нажать Button
ошибка в неправильности ТИПОВ данных, я не знаю где ставится перевод может кто-нибудь подсказать, ну если я правильно понял конечно о типе...
ВОТ ошибка
'Could not convert variant of type (Null) into type (String)'. Process stoped. Use step of Run of to continue.
|
|
Егор (статус: 10-ый класс), 13 марта 2011, 20:52 [#5]:
ошибка потому что в базе в поле "фотография" нет информации о пути - поле пустое (NULL). если бы путь там был, картинка бы открылась. может быть
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Егор (статус: 10-ый класс), 13 марта 2011, 20:56 [#6]:
а если так:
Image1.Picture.LoadFromFile(ADOTable1['фотография'].AsString);
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
stasz13 (статус: Посетитель), 13 марта 2011, 23:23 [#7]:
картинка открывается , просто после того как я нажимаю на кнопку с переходом на Form2 она выдает ошибку,
Image1.Picture.LoadFromFile(ADOTable1['фотография'].AsString);
тоже выдает ошибку... .AsString ---так нельзя написать видимо!
|
|
Егор (статус: 10-ый класс), 14 марта 2011, 05:07 [#8]:
А, ну так и правильно ошибка вылазит - событие-то DBGrid1DrawColumnCell. Оно возникает каждый раз, когда надо отрисовать ячейку. А ячеек в таблице (DBGrid) сколько? И открыта ли база в момент начала отрисовки? И где находится курсор, на какой записи? Судя по ошибке, курсор в этот момент находится на записи, которая пуста.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Егор (статус: 10-ый класс), 14 марта 2011, 05:26 [#9]:
Можно сделать проверку - если в поле нет данных, то картинку не загружать
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if not ADOTable1['фотография'].IsNull then // или IsEmpty - не помню
begin
Image1.Picture.LoadFromFile(ADOTable1['фотография']);
Image1.Stretch:=true;
end
end;
Но мне сам код не нравится - загружать картинку из файла, а путь в базе. Путей-то много может быть, а компонент Image - один. Если картинку удалим, то опять же ошибка.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|