![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как оргпнизовать добавление/удаление строки в приложении.
Yuraz © (2003-04-29 08:42:00)Подключаюсь к БД через источник данных(DataSource), далее через SQL компанента Query вывожу данные в DBGrid. SQL запрос типа
select
id,
name,
(select name from city where id=city_id) as city_id
...
from table
Т.е. показ организован.
А как добавить запись? Легко бы было добавить в этом же гриде, но он не напрямую работает с полями БД, а через Query. Приходится строить дополнительную форму, где располагаю элементы для ввода новых полей, а потом через insert. Это действительно делается таким путём, или можно как нибудь проще.
И второй вопрос, как узнать значение например поля -ID(NAME, City...), или любое другое значение строки, хранящеяся в таблице, если я только знаю порядковое значение текущей строки(RecNo) в DBGrid?
Hawk2 (2003-04-29 12:29:00) [1]В серйозных программах ввод в базу осуществляется именно через формы, так как в форме можно контролировать вводимые значения, выдавать какую-то подсказку и т.д. Это делает программу понятной, читабельной, красивой и грамотно написаной, а также избавляет от кучи других проблем. Так что ты определись, как тебе нужно: качественно или как быстрее.
Sergey13 (2003-04-29 10:58:00) [2]2Yuraz © (29.04.03 09:04)
>С Insert сложнее. Без отдельной формы не обойтись. Справочных таблиц у меня 6 штук, 6 панелей и надо будет делать, каждую высвечивать при своём справочнике. Думаю так ?)
И это правильно. (с) М.С.Горбачев
Я бы и на редактирование отдельную форму оставил (или инсертную приспособил). И это никакне зависит от компонентов доступа. Только от здравого смысла.
KoluChi (2003-04-29 10:11:00) [3]
> Подключаюсь к БД через источник данных(DataSource), далее
> через SQL компанента Query вывожу данные в DBGrid
Это чьи слова? TQuery - это BDE. Ваш компонент называется по-другому. Разбирайтесь в своих компонетах (Direct Oracle Access).
Наверняка, что-нибудь, подобное есть (DataSet и Query+Update).
Yuraz (2003-04-29 10:10:00) [4]Так Наталья говорит, типа "читай лучше, писали же" тоже что за манера, её благодаришь, а она ..
Жук (2003-04-29 10:06:00) [5]
> Yuraz © (29.04.03 09:54)
> Какой UpdateSQL? А если я через BDE не работаю? Delphi+Direct
> Oracle Access+Oracle8.
Сразу надо СУБД указывать. Что за манеры ?
Yuraz (2003-04-29 09:54:00) [6]Какой UpdateSQL? А если я через BDE не работаю? Delphi+Direct Oracle Access+Oracle8.
Наталия (2003-04-29 09:11:00) [7]KoluChi © (29.04.03 09:02)
:0)
Yuraz © (29.04.03 09:04)
Тебе же написали: если использовать Query+UpdateSQL отдельная форма не нужна, редактировать можно прямо в DBGrid. Ты ответы-то не читаешь, что ли?
Yuraz (2003-04-29 09:04:00) [8]О, спасибо Наталия, за ответ на второй вопрос и в частности удаление, ID я выцеплю, а по нему удалю без проблем отдельным запросом.
С Insert сложнее. Без отдельной формы не обойтись. Справочных таблиц у меня 6 штук, 6 панелей и надо будет делать, каждую высвечивать при своём справочнике. Думаю так ?)
KoluChi (2003-04-29 09:02:00) [9]>Наталия © (29.04.03 08:57)
постараюсь больше не мешать :)
KoluChi (2003-04-29 09:01:00) [10]1) Query + UpdateSQL
2) RecNo не нужен.
ID := DBGrid.DataSource.DataSet.FieldByName("ID").Value.
Курсор уже стоит на текущей записи.
Наталия (2003-04-29 08:57:00) [11]При помощи Query+UpdateSQL можно редактировать данные в DBGrid.
Для того, чтобы узнать значение поля не нужно никакое "порядковое значение текущей строки(RecNo) в DBGrid". В НД активна лишь одна запись - та, на которой находится курсор. Узнать значение поля этой записи: fieldbyname("id").asinteger.