Главная страница
    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.007 c
3-9761
maxim2
2002-06-11 11:01
2002.07.04
Как удалить все записи из таблицы


3-9715
VAleksey
2002-06-11 08:08
2002.07.04
dbCheck и сообщение об ошибке.


1-9858
Exploited
2002-06-20 16:03
2002.07.04
Курсоры.


1-9840
ruslan_as
2002-06-21 09:09
2002.07.04
выбор из списка


3-9742
BJValentine
2002-06-12 12:31
2002.07.04
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский