Помогите с подгрузкой изображения в БД. С++, Помогите с подгрузкой изображения в БД. С++ |
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 мегабайт ) Кол-во скачиваний: 226 P1.zip ( 1.72 мегабайт ) Кол-во скачиваний: 218 P3.zip ( 147.15 килобайт ) Кол-во скачиваний: 205 P4.zip ( 741.19 килобайт ) Кол-во скачиваний: 218 |
IUnknown |
6.06.2011 9:51
Сообщение
#2
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Значит, смотри, что я сделал:
1) на Form3 вместо Edit1 добавил DBEdit4, связал его с полем Photo набора данных. Естественно, что в обработчике кнопки "Обзор" я заношу имя файла не в Edit1, а в DBEdit4. 2) с обработкой "Применить" у тебя - полный бардак. Я сделал так: void __fastcall TForm3::Button2Click(TObject *Sender) Точно так же, как и тут, я переделал строку в LoadPhoto() : Form2->DBImage1->Picture->LoadFromFile(ExtractFilePath(Application->ExeName) + "photo\\" + strphoto);, теперь все прекрасно добавляется и ничего никуда не вылетает. Теперь еще кое-что: 1) у тебя программа не завершается корректно, остается висеть в процессах. При отладке работе из Билдера это видно, просто снимаешь ее с выполнения через Ctrl+F2 и все. А вот если запустить программу из проводника - то потом ее приходится снимать из диспетчера задач. Ищи причину. 2) утечка памяти. Ты выделяешь void __fastcall TForm1::Button1Click(TObject *Sender)память? Где освобождение? CodeGuard тут же поднимает тревогу. Кстати, то, что ты делаешь - вообще неправильно. Как минимум потому, что выделять память надо на один символ больше, чем будешь использовать, для завершающего нуля. Ты этого не сделал. Исправляй эти недочеты тоже... Добавлено через 12 мин. Да, кстати, еще одно... Весь вот этот ужас: Цитата if (Form2->ComboBox1->ItemIndex==0) Form2->ADOQuery1->SQL->Add("Select * FROM " + ComboBox1->Text);Угу? Главное, чтобы текст в комбобоксе совпадал с названием таблицы. То же самое касается и десяти кнопок для выбора показываемой таблицы. Достаточно сделать один обработчик, работающий с Caption-ом Sender-а, и назначить его всем кнопкам. Не нужен тут Copy+Paste... Сообщение отредактировано: IUnknown - 6.06.2011 10:05 |
Текстовая версия | 28.04.2024 21:33 |