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

> Внимание!

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

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


Пионер
**

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

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


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

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


Прикрепленные файлы
Прикрепленный файл  P2.zip ( 1.23 мегабайт ) Кол-во скачиваний: 253
Прикрепленный файл  P1.zip ( 1.72 мегабайт ) Кол-во скачиваний: 245
Прикрепленный файл  P3.zip ( 147.15 килобайт ) Кол-во скачиваний: 225
Прикрепленный файл  P4.zip ( 741.19 килобайт ) Кол-во скачиваний: 243
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 5.06.2011 14:19
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  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 
 К началу страницы 
+ Ответить 
alecsandr
сообщение 5.06.2011 16:14
Сообщение #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 12:34
IUnknown   Ну, и где? Архив, говорю, снизу чего прикреплен? П...   5.06.2011 12:46
alecsandr   Ну, и где? Архив, говорю, снизу чего прикреплен? ...   5.06.2011 12:49
IUnknown   Ну, во-первых, вот это: if (Form2->DataSource1-...   5.06.2011 14:19
alecsandr   Ну, во-первых, вот это: [code=cpp]if (Form2->D...   5.06.2011 16:14
IUnknown   Да что ж такое? Опять у меня все не так, как нуж...   5.06.2011 16:30
alecsandr   Да что ж такое? Опять у меня все не так, как ну...   5.06.2011 18:43
IUnknown   Так... Ну, у тебя весь бардак - из-за того, что пр...   5.06.2011 19:53
alecsandr   Так... Ну, у тебя весь бардак - из-за того, что п...   5.06.2011 20:01
IUnknown   Прежде, чем с этим заморачиваться - ты сделай, что...   5.06.2011 20:55
alecsandr   Прежде, чем с этим заморачиваться - ты сделай, чт...   5.06.2011 21:44
IUnknown   DFM - файлы добавь в проект, а то восстанавливать ...   6.06.2011 9:01
alecsandr   DFM - файлы добавь в проект, а то восстанавливать...   6.06.2011 9:03
IUnknown   Значит, смотри, что я сделал: 1) на Form3 вместо ...   6.06.2011 9:51
alecsandr   Значит, смотри, что я сделал: 1) на Form3 вместо...   6.06.2011 10:06


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

 



- Текстовая версия 18.06.2025 19:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"