Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как оргпнизовать добавление/удаление строки в приложении.


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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо