![]() |
|
|
![]()
|
|
| Virus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.8.2003 Репутация: нет Всего: нет |
Здравствуйте.
Как составить запрос на удаление (редактирование) текущей записи? И еще вопрос. Пытался использовать компонент DBNavigator для работы с TQuery, но, похоже, он годится только для навигации по таблице. Можно ли использовать его для редактирования данных? Что для этого нужно сделать (обработчики событий переписать или что - то иное)? Спасибо. |
|||
|
||||
| Kurt |
|
||||||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
А то! Конечно годится! Даже по кнопкам видно: nbInsert nbDelete nbEdit nbPost nbCancel nbRefresh Надо расписывать, что есть что? По поводу удаления/редактирования... Удаление строки из таблицы:
Редактирование:
Пожалуйста. -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
||||||
|
|||||||
| Virus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.8.2003 Репутация: нет Всего: нет |
Это все я еще в хелпах видел.
Мне же нужно знать, как составить условие отбора для текущей (!) записи. Ну например. У меня есть BDGrid, Query, UpdateSQL, DataSet и DBNavigator. Связываю все эти компоненты как полагается. Теперь надо написать запросы для свойств InsertSQL, DeleteSQL, UpdateSQL. Вот как их написать, чтобы все работало? Пусть у меня простая таблица MyTable.dbf с одним текстовым полем MyField. Мне очень хочется, чтобы у меня была простая программа для просмотра и редактирования данной таблицы. В DBGrid встал на определенную запись, нажал на кнопку удалить, и эта запись удалилась, нажал на кнопку редактировать, и эту запись можно редактировать. Помоги написать хотя бы такую прогу, а дальше я сам постараюсь разобраться. |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Прости за тугодумство (
Слушай, а зачем тебе вообще здесь SQL? (дурацкий, наверно, вопрос, но все же...) -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Virus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.8.2003 Репутация: нет Всего: нет |
Хорошо, объясняю суть поставленной передо мной задачи.
Мне требуется создать приложение для работы с таблицей. Данная прога должна поддерживать различные варианты сортировки, поиска. Кроме того, должна быть предусмотрена возможность не только навигации по таблице, но и редактирования. Вот, собствено, и вся задача. Сортировка обычно делается с помощью SQL, поэтому надо использовать компонент TQuery, а не TTable. Эту часть задачи я сделал. Остается навигация и редактирование. Я решил использовать компонент TDBNavigator. И вот тут начинаются сложности. Если запустить программу, то у навигатора оказываются доступными только кнопки для перемещения по таблице, а редактировать не получается. Я так понял, что таблица у меня находится в состоянии ReadOnly. Так вот, как сделать так, чтобы с помощью навигатора можно было бы редактировать таблицу (т.е. как сделать доступными кнопки для редактирования)? |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
вообще отказаться от навигатора для таких целей. ИМХО плохой стиль. Два варианта:
1. Все манипулирование данными осуществлять с помощью хранимых процедур. - ИМХО это предпочтительней и надежней. Если только: а) это клиент-серверная БД; б) если ХП предусмотрены в этой БД; 2. Все манипуляции (вставка, удаление, редактирование) с данными осуществлять с помощью того-же SQL. И соответственно логику программы строишь в соответствии с этим. -------------------- |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Сортировка обычно делается с помощью индексов и для этого лучше использовать компонент TTable, с его помощью также легко и удобно фильтровать записи. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Есть ситуации когда лучше использовать TQuery, а есть и такие ситуации когда лучше все таки TTable. Этот вопрос освящен в статье Вита про работу с БД.
Но TQuery в большинстве случаев предпочтительней, так как в случае его использования у Вас в руках вся мощность, гибкость и изящество SQL. -------------------- |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Вот несколько примеров добавления, удаления и редактирования
DM - модуль данных qPhone - TQuery phonet - физическая таблица
|
|||
|
||||
| Piton |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 27.8.2003 Репутация: нет Всего: нет |
Есть очень простое решение:
Свойство RequestLife=true для TQuery, а дальше работаем с TQuery, как с TTable. Т.е. стандартные комманды: Table.Edit; Table.Insert; Table.Post; Удинственное условие: Запрос должен быть простым, а не составным (никаких JOIN). |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Не совсем правильно, вернее будет сказать, что выборка должна осуществляться только из одной таблицы. Потому что таблицы можно соединять как внешним соединением (Join), так и внутренним. -------------------- |
|||
|
||||
| Anastazi25252525 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.6.2009 Репутация: нет Всего: нет |
как можно удалить данные из таблицы,где поле состояние = заказано, если эта таблица связана с другой по трём полям.
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 35 Всего: 130 |
1. Это вопрос или утверждение? 2. Зачем дублировать топики? 3. Какая СУБД? 4. Что именно не получается? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Anastazi25252525 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.6.2009 Репутация: нет Всего: нет |
надо удалить из таблицы БИЛЕТ все записи, где состояние равно заказано. БИЛЕТ связан с таблицей ПОКАЗ по 3 полям (дата, название и № сеанса). создала sql, где выбираются все заказанные билеты. но мне надо чтобы удалились на определенную дату,название и .... знаю, что просто очень. но додуматься уже сил нет. Delphi7. вот мой код
Это сообщение отредактировал(а) Anastazi25252525 - 13.6.2009, 21:44 |
|||
|
||||
| Anastazi25252525 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 13.6.2009 Репутация: нет Всего: нет |
Вот так всё работает ))))))))) спасибо )))))) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |