C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Работа с запросом, Как реализовать
** Pavel
Отправлено: 19.12.2005, 13:56


Не зарегистрирован







Здрасьте.
Тут появилась такая ситуация. Есть база данных в ней таблтца счетов где храняться номер счета, дата, кому, номенклатурный номер. Остально если надо подтягиваем по ключевым полям. И возник вопрос, как бы реализовать редактирования какого либо счета в этой таблице т.е. удалить строку, вставить новую строку в счет и т.д. и т.п. Я как понимаю те данные которые уже есть то их мы обновляем, а если нет — то добавить, но как, хотелось бы все что бы это было все в одном Gride и по нажатию одной клавиши :-) Может кто сталкивался с этой проблемой ? Помогите пожалуйста с советами.

P/S База InterBase 6.1
avc*
Отправлено: 19.12.2005, 14:53


Не зарегистрирован







Обрабатывать команды Edit Insert самостоятельно (ручками). Для этого есть множество способов.
Но подумайте — это вам ДЕЙСТВИТЕЛЬНО надо? Ведь, например, при связи рабочая таблица — справочник даже действие редактировать наименование неоднозначно. Это может быть как и просто исправление ошибки в справочнике, так и создание новой строки в справочнике и связь её с рабочей таблицей. И т.д.
Admin
Отправлено: 20.12.2005, 22:51


Владимир

Группа: Администратор
Сообщений: 1190



Пишите обработчик на нажатие
Ins — добавить, Del — удалить, Enter(или двойной клик) — редактировать.

На Ins и Enter показываете форму со всеми полями таблицы счетов,
на Ins естественно пустую (или со значениями по умолчанию),
на Enter — со значениями полей текущей записи из Grid, на Del -
вопрос — подтверждение на удаление текущей записи.

В этой форме (на Ins и Enter) две кнопки — "Ок" и "Отмена"
(разумеется и все значения полей текущей записи, например в Edit-ах
или в DBEdit-ах — это уж по логике программы, как вам удобней)

По "Ок" — проверяете все поля на допустимость значений
и вносите изменения в БД, (соответственно обновляете значения
в Grid если надо), по "Отмена" — ничего не меняете
в БД, просто закрываете этй форму.

Это лишь, конечно, как вариант.
** Pavel
Отправлено: 22.12.2005, 10:58


Не зарегистрирован







Спасибо за ответы. Я думаю что надо в таблице прогонять по циклу каждую запись и проверять по полю есть она в таблице архива, и если есть — то обновляь, а если нет то соответственно вставка.

Вернуться в Работа с базами данных в C++Builder