Главная страница
    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.46 MB
Время: 0.006 c
3-70092
Igor Mish
2003-05-03 18:31
2003.05.22
Сетевая база


1-70243
Comp
2003-05-12 09:26
2003.05.22
Как заставить дочернюю форму MiDI не появляться???


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


1-70283
Deus
2003-05-11 16:55
2003.05.22
Ошибка Internal Error: L594.


3-70105
AndrewK
2003-04-29 09:53
2003.05.22
Как перехватить исключение из MS SQL сервера?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский