![]() |
|
|
![]()
|
|
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
Как сделать добавление в 2 таблицы с помощью SQL запроса
|
|||
|
||||
| morpheyushka |
|
||||
![]() Зеленый человек ![]() ![]() Профиль Группа: Участник Сообщений: 563 Регистрация: 26.2.2008 Где: Киев Репутация: нет Всего: 8 |
Как вариант можно збацать процедуру, у которой в параметрах будут значения, которые нужно вставить в таблицы.
А потом в делфи реализовать следующее:
MyProcedure - процедура, которую ты напишешь Value11, Value12, Value13... - параметры процедуры Peremen1...Peremen5 - то что ты собираешься вставить Если имена таблиц меняются - можно еще и их передавать попробывать Ну или как вариант исправить твой код
PS Процедура не так сервак загружать будет Это сообщение отредактировал(а) morpheyushka - 11.9.2008, 10:13 |
||||
|
|||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
morpheyushka,
опять ты MS SQL вспомнил, а я ща по оракловому напишу или по информиксовому. NieL, какая СУБД? от этого будет зависеть определение ID записи для заполнения дочерних записей. -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
СУБД DBISAM
|
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
ну в этом деле я - хорошо бы было, чтоб ты подсказал, как в ней id-шники полей создаются (автоинкрементно, по счетчику, сам, иное) предположим, что автоинкрементно, тогда вот код (не претендующий на полное согласие со стороны окружающих нас гуру):
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
Спасибо. То что нужно
|
|||
|
||||
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
Нет.. через MAX все-таки не получится. Так как с базой может работать несколько пользователей одновременно
|
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
1. поддреживаются ли процедуры? 2. имеются ли счетчики (в Oracle - это Sequence)? Добавлено через 5 минут и 26 секунд кстати вероятность нарваться на запись, добавленную другим пользовтелем между ExecSQL и Active := True не то что стремится, а тождественна нулю -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
Процедуры поддерживаюся и счетчики имеются. Видимо без написания хранимой процедуры тут не обойтись.
|
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 16 Всего: 40 |
1. процедура тогда в процедуре работа проста: для добавления - SEQUENCE.NEXTVAL для определения добавленного ID = SEQUENCE.CURVAL 2. значит есть поддержка транзакций? => никто не мешает без процедуры: - открыть транзакцию - вставить запись - определить максимум - применить транзакцию -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| NieL |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 10.2.2008 Репутация: нет Всего: 1 |
Спасибо за советы буду пробовать.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |