Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Вниз

Помогите с Insert разобраться   Найти похожие ветки 

 
PTE   (2002-06-10 09:02) [0]

База на Access. Есть 2 таблицы, main и detail.
у них main.id=detail.main_id

На форме у меня 4 DBEdit и один DBGrid. Обращаюсь к ним и связываю между собой посредством 2-Query, DataSource
В main полe id ключевое не допускает повторений, а в detail ключевое поле key_id.
Как мне обработать кнопку по которой дожнен формироваться новый документ, т.е. В таблицы должны вставлятся новые строчки причем в main в поле id должно сразу подставлятся значение на 1 больше максимального, а в detail в key_id на 1 больше максимального?
Таблица DBGrid показывет detail, а DBEdit отображает поля в main, когда пользователь опускается курсором и добавляет новую строчку как мне сделать, что бы в таблицу добавлялась key_id новое значение на 1 больше предыдущего, а main_id равнялось main.id&
Спасбо


 
Dennn_is   (2002-06-10 09:39) [1]

Под кнопкой Insert написать:

Table1.FieldByName("ID").AsInteger := Table1.RecordCount + 1;


 
Sergey13   (2002-06-10 10:10) [2]

Сделать key_id автоинкрементным. При варианте от Dennn_is (10.06.02 09:39) не исключена вероятность двоения ключей, т.к. никто не гарантирует отсутствие дыр в нумерации. Можно также отдельным запросом посмотрель это максимальное значение. Select max(key_id) from detail_table. Или сразу Select max(key_id)+1 from detail_table. И его вставлять для новой записи. Хотя если доступ многопользовательский, то и тут могут возникнуть проблемы. Так что автоинкремент предпочтительнее.


 
PTE   (2002-06-11 11:25) [3]

не получается вставить новый документ. Как мне обработать клик по бутону, что бы в таблицы вставлялся новый документ. Вот Insert для таблиц
для main
insert into main
(id, contact, chet, valname, viper, data, itog, nds)
values
(:id, :contact, :chet, :valname, :viper, :data, :itog, :nds)
для detail
insert into detail
(key_id, main_id, usluga, kolvo, cena, summa)
values
(:key_id, :main_id, :usluga, :kolvo, :cena, :summa)
данные из main вывожу в DBEdit-ы, туда пользователь заносит новые данные по клиенту. Данные из detail вывожу в DBGrid, тут ещё проблема в том, что когда пользователь опускаясь курсором добавляет новую строчку автоматом должно добавляться в detail.key_id - уникальное значение, а в detail.main_id значение из main.id

main.id=detail.maim_id
main.id ключевое поле не должно быть совпадений, detail.key_id то же ключевое не должно быть совпадений, а detail.main_id должно равняться новому создаваемому полю в main.id
Как мне это сделать использую Query?
Помогите я не сталкивался с этим что-то дошел до этого места и ничего не получается



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

Форум: "Базы";
Текущий архив: 2002.07.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
4-10059
Бивис
2002-05-07 20:16
2002.07.04
sYSTEM TrAy


3-9708
Oleg_er
2002-06-07 08:00
2002.07.04
вернемся к алиасам


4-10043
stub
2002-05-04 19:02
2002.07.04
Дельфи6 + ВинХП: как сделать кнопки подвластные стилям в винхп?


1-9884
Dimedrol
2002-06-20 15:30
2002.07.04
Как раскрасить слова в МЕМО ?


3-9765
MVVD
2002-06-13 13:41
2002.07.04
CONNECT???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский