Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как изменить данные рекордсета, открытого через TQuery?

23K
28 апреля 2007 года
HelpMeImLamer
4 / / 21.03.2007
Пишу на Builder 5. Использую базу MS Accsess.

1. На форме лежит связка: TQuery, TDataSource и DBGrid.
В TQuery простой запрос: "select * from User order by Name".
Необходимо сделать возможность редактирования поля Name. Как это попроще сделать средствами Builder'а? Устроил бы даже вариант прямого редактирования в DBGrid, но можно и в отдельном компоненте, в который попадает значение поля Name, при выделении записи в DBGrid'е.

2. Как средствами Builder'a запускать SQL запросы на редактирование, добавление, удаление записей? Т.е. запросы типа: "update User set User.Name = 'Вова' where ID = 28" ?

Поможите :confused:
7.8K
28 апреля 2007 года
Hrew
185 / / 23.04.2007
"попроще средствами билдера" прямое редактирование DBGrid возможно при применении компонента TTable. Если необходимо редактирование только поля Name, установите свойство ReadOnly для осталтных полей в DBGrid->Column Editor.

SQL-запросы реализуйте при помощи TQuery. Задайте нужный запрос в Query->SQL, затем выполните при помощи Query->ExecSQL.

Возможно Вам будет удобнее воспользоваться компонентом DBNavigator (вкладка DataControls). В этом случае с его помощью можно будет добавлять новые строки и задавать их значения прямо в DBGid.

Если Вы не работали ранее с базами данных в Builder или Delphi, могу посоветовать книгу Б.С.Послед - Borland C++ Builder 6. Разработка приложений баз данных. Ее можно скачать например отсюда:
http://wmate.ru/ebooks/book243.html

Можете еще посмотреть принципы работы с TQuery, TTable и др.:
http://aptem.net.ru/programming/c/index.shtml.htm
309
30 апреля 2007 года
el scorpio
1.1K / / 19.09.2006
Вариант первый: установить для Query свойство LiveRequest (живой запрос). Тогда можно будет изменять данные в таблицах. Однако такой способ налагает большие ограничения на текст запросов.

Вариант второй: положить на форму и связать с запросом объект UpdateSQL. В этом объекте пишутся ТРИ запроса - добавление, изменение, удаление - которые будут автоматически вызваться при соответствующих действиях.

Вариант три, самый простой: перейти на ADO.
Компоненты ADOQuery и ADODataSet УЖЕ имеют все возможности для синхронизации исходных таблиц БД с изменениями конечного набора данных. Достаточно только указать для перечисляемого свойства LockType значение Optimimstic. Если указать значение BatchOptimistic, то ВСЕ изменения в наборе данных будут вноситься в таблицы по дополнительной команде (метод BatchUpdate)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог