IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Помогите с подгрузкой изображения в БД. С++, Помогите с подгрузкой изображения в БД. С++
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Alexander

Репутация: -  0  +


У меня есть программа, АРМ администратора компьютерного магазина, вроде когда я беру изображения из БД все нормально картинка отображается в DBImagе, но когда жму кнопку "ДОБАВИТЬ" (Добавиьт данные в таблицу) он выбивает ошибку поэтому даже проверить не могу работоспособность добавления. Помогите пожалуйто с добавлением буду очень благодарен. В архиве прикрепленном снизу вся прога с БД. ВСЕ РАЗАРХИВИРУЙТЕ В ОДНУ ПАПКУ

Сообщение отредактировано: alecsandr -


Прикрепленные файлы
Прикрепленный файл  P1.zip ( 1.72 мегабайт ) Кол-во скачиваний: 305
Прикрепленный файл  P2.zip ( 1.23 мегабайт ) Кол-во скачиваний: 295
Прикрепленный файл  P3.zip ( 147.15 килобайт ) Кол-во скачиваний: 301
Прикрепленный файл  P4.zip ( 741.19 килобайт ) Кол-во скачиваний: 298
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Ну, во-первых, вот это:
if (Form2->DataSource1->DataSet->FieldByName("Photo")==NULL)
- неправильно. У тебя никогда не поймается таким образом пустая строка. Ловить пустоту надо вот так:
if ((Form2->DataSource1->DataSet->FieldByName("Photo")->AsString).IsEmpty())


А во-вторых: не надо при добавлении новой записи в базу записывать полный путь к файлу. Достаточно только имени. Иначе сам подумай, что будет пытаться открыть LoadFromFile вот тут: LoadFromFile("photo\\" + strphoto), если в strphoto УЖЕ записан полный путь? Нехорошо, вылет программы обеспечен.

Вот так попробуй:
  if ((Form2->DataSource1->DataSet->FieldByName("Photo")->AsString).IsEmpty()) // Изменения здесь
{
Form2->ADOQuery1->Edit();
Form2->DataSource1->DataSet->FieldValues["Photo"]= "none.jpg"; // и здесь
}
strphoto = Form2->DataSource1->DataSet->FieldValues["Photo"];
Form2->DataSource1->DataSet->Post();
Form2->DBImage1->Stretch=true;
Form2->DBImage1->Picture->LoadFromFile("photo\\" + strphoto);

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 61
Пол: Мужской
Реальное имя: Alexander

Репутация: -  0  +


Цитата(IUnknown @ 5.06.2011 14:19) *

Ну, во-первых, вот это:
if (Form2->DataSource1->DataSet->FieldByName("Photo")==NULL)
- неправильно. У тебя никогда не поймается таким образом пустая строка. Ловить пустоту надо вот так:
if ((Form2->DataSource1->DataSet->FieldByName("Photo")->AsString).IsEmpty())


А во-вторых: не надо при добавлении новой записи в базу записывать полный путь к файлу. Достаточно только имени. Иначе сам подумай, что будет пытаться открыть LoadFromFile вот тут: LoadFromFile("photo\\" + strphoto), если в strphoto УЖЕ записан полный путь? Нехорошо, вылет программы обеспечен.

Вот так попробуй:
  if ((Form2->DataSource1->DataSet->FieldByName("Photo")->AsString).IsEmpty()) // Изменения здесь
{
Form2->ADOQuery1->Edit();
Form2->DataSource1->DataSet->FieldValues["Photo"]= "none.jpg"; // и здесь
}
strphoto = Form2->DataSource1->DataSet->FieldValues["Photo"];
Form2->DataSource1->DataSet->Post();
Form2->DBImage1->Stretch=true;
Form2->DBImage1->Picture->LoadFromFile("photo\\" + strphoto);



Блин он все ровно не пашет, пишет что не найден none.jpg
и останавливается на этой строчке
 Form2->DBImage1->Picture->LoadFromFile("photo\\" + strphoto);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
alecsandr   Помогите с подгрузкой изображения в БД. С++   5.06.2011 16:34
IUnknown   Ну, и где? Архив, говорю, снизу чего прикреплен? П…   5.06.2011 16:46
alecsandr   Ну, и где? Архив, говорю, снизу чего прикреплен? …   5.06.2011 16:49
IUnknown   Ну, во-первых, вот это: if (Form2->DataSource1-…   5.06.2011 18:19
alecsandr   Ну, во-первых, вот это: [code=cpp]if (Form2->D…   5.06.2011 20:14
IUnknown   Да что ж такое? Опять у меня все не так, как нуж…   5.06.2011 20:30
alecsandr   Да что ж такое? Опять у меня все не так, как ну…   5.06.2011 22:43
IUnknown   Так... Ну, у тебя весь бардак - из-за того, что пр…   5.06.2011 23:53
alecsandr   Так... Ну, у тебя весь бардак - из-за того, что п…   6.06.2011 0:01
IUnknown   Прежде, чем с этим заморачиваться - ты сделай, что…   6.06.2011 0:55
alecsandr   Прежде, чем с этим заморачиваться - ты сделай, чт…   6.06.2011 1:44
IUnknown   DFM - файлы добавь в проект, а то восстанавливать …   6.06.2011 13:01
alecsandr   DFM - файлы добавь в проект, а то восстанавливать…   6.06.2011 13:03
IUnknown   Значит, смотри, что я сделал: 1) на Form3 вместо …   6.06.2011 13:51
alecsandr   Значит, смотри, что я сделал: 1) на Form3 вместо…   6.06.2011 14:06


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 6.05.2024 17:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name