Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.22;
Скачать: CL | DM;

Вниз

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

 
Yuraz ©   (2003-04-29 08:42) [0]

Подключаюсь к БД через источник данных(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?


 
Наталия ©   (2003-04-29 08:57) [1]

При помощи Query+UpdateSQL можно редактировать данные в DBGrid.
Для того, чтобы узнать значение поля не нужно никакое "порядковое значение текущей строки(RecNo) в DBGrid". В НД активна лишь одна запись - та, на которой находится курсор. Узнать значение поля этой записи: fieldbyname("id").asinteger.


 
KoluChi ©   (2003-04-29 09:01) [2]

1) Query + UpdateSQL
2) RecNo не нужен.
ID := DBGrid.DataSource.DataSet.FieldByName("ID").Value.
Курсор уже стоит на текущей записи.


 
KoluChi ©   (2003-04-29 09:02) [3]

>Наталия © (29.04.03 08:57)
постараюсь больше не мешать :)


 
Yuraz ©   (2003-04-29 09:04) [4]

О, спасибо Наталия, за ответ на второй вопрос и в частности удаление, ID я выцеплю, а по нему удалю без проблем отдельным запросом.
С Insert сложнее. Без отдельной формы не обойтись. Справочных таблиц у меня 6 штук, 6 панелей и надо будет делать, каждую высвечивать при своём справочнике. Думаю так ?)


 
Наталия ©   (2003-04-29 09:11) [5]

KoluChi © (29.04.03 09:02)
:0)

Yuraz © (29.04.03 09:04)
Тебе же написали: если использовать Query+UpdateSQL отдельная форма не нужна, редактировать можно прямо в DBGrid. Ты ответы-то не читаешь, что ли?



 
Yuraz ©   (2003-04-29 09:54) [6]

Какой UpdateSQL? А если я через BDE не работаю? Delphi+Direct Oracle Access+Oracle8.


 
Жук ©   (2003-04-29 10:06) [7]


> Yuraz © (29.04.03 09:54)
> Какой UpdateSQL? А если я через BDE не работаю? Delphi+Direct
> Oracle Access+Oracle8.

Сразу надо СУБД указывать. Что за манеры ?


 
Yuraz ©   (2003-04-29 10:10) [8]

Так Наталья говорит, типа "читай лучше, писали же" тоже что за манера, её благодаришь, а она ..


 
KoluChi ©   (2003-04-29 10:11) [9]


> Подключаюсь к БД через источник данных(DataSource), далее
> через SQL компанента Query вывожу данные в DBGrid

Это чьи слова? TQuery - это BDE. Ваш компонент называется по-другому. Разбирайтесь в своих компонетах (Direct Oracle Access).
Наверняка, что-нибудь, подобное есть (DataSet и Query+Update).


 
Sergey13 ©   (2003-04-29 10:58) [10]

2Yuraz © (29.04.03 09:04)
>С Insert сложнее. Без отдельной формы не обойтись. Справочных таблиц у меня 6 штук, 6 панелей и надо будет делать, каждую высвечивать при своём справочнике. Думаю так ?)
И это правильно. (с) М.С.Горбачев
Я бы и на редактирование отдельную форму оставил (или инсертную приспособил). И это никак не зависит от компонентов доступа. Только от здравого смысла.


 
Hawk2   (2003-04-29 12:29) [11]

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



Страницы: 1 вся ветка

Текущий архив: 2003.05.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
3-70142
Nikos
2003-05-01 09:32
2003.05.22
установка имени БД


7-70546
Markoff
2003-03-25 09:51
2003.05.22
Как в w2k обратиться к порту 0х300?


1-70356
Tolik1
2003-05-09 16:33
2003.05.22
Размеры окон


1-70322
OlegK
2003-05-08 14:12
2003.05.22
Преобразование миллисекунд в тип Tdatetime ??


1-70233
nevalex
2003-05-11 19:48
2003.05.22
Как добавить событие в TrackBar1?