![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
alecsandr |
![]() ![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 61 Пол: Мужской Реальное имя: Alexander Репутация: ![]() ![]() ![]() |
У меня есть программа, АРМ администратора компьютерного магазина, вроде когда я беру изображения из БД все нормально картинка отображается в DBImagе, но когда жму кнопку "ДОБАВИТЬ" (Добавиьт данные в таблицу) он выбивает ошибку поэтому даже проверить не могу работоспособность добавления. Помогите пожалуйто с добавлением буду очень благодарен. В архиве прикрепленном снизу вся прога с БД. ВСЕ РАЗАРХИВИРУЙТЕ В ОДНУ ПАПКУ
Сообщение отредактировано: alecsandr - 5.06.2011 12:48 Прикрепленные файлы ![]() ![]() ![]() ![]() |
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Значит, смотри, что я сделал:
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 |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 13:43 |