Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2012, 14:57   #1
Polina_
 
Регистрация: 12.12.2012
Сообщений: 8
По умолчанию Запрос на добавление

Здравствуйте!
Необходимо добавить запись в таблицу "Заявка". Поле "Номер_изделия" присоединяется сразу к полям 3х таблиц, т.е мне нужно добавить либо из таблицы "Объект", либо из "Деталь", либо из "Поддетали".
Вот мой запрос
ALTER PROCEDURE [dbo].[dob_zaya]

@nom_zakaza int,
@nom_izd int,
@kolvo int
AS
BEGIN

INSERT INTO zayavka (nom_zakaza,nom_izd,kolvo)
VALUES (@nom_zakaza,@nom_izd,@kolvo)
END

Можно ли запрос изменить так, чтобы, например, из Delphi в SQL Server приходил параметр @flag, по значению которого можно было выбирать данные либо из 1ой таблицы, либо из 2, либо из 3?
А то он ругается, так как не знает из какой таблицы добавлять.
Изображения
Тип файла: jpg Безымянный.jpg (28.7 Кб, 23 просмотров)
Polina_ вне форума Ответить с цитированием
Старый 17.12.2012, 15:34   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

у вас структура изначально неверна.....
... ну допустим добавите вы одну деталь из 1 табл, другую из следующей итд.... а как вы потом определите - что именно имелось ввиду в этом заказе? id деталей поддеталей и объектов если пересекаются....
ИМХО - проще 1 универсальную таблицу для всех объектов - и в зависимости от типа - набор свойств. А если совсем просто - то табл с заказами обязательно включать параметр ... напр type = 1 тогда из 1 табл...... тогда и запросы будет проще делать
ADSoft вне форума Ответить с цитированием
Старый 17.12.2012, 15:44   #3
Polina_
 
Регистрация: 12.12.2012
Сообщений: 8
По умолчанию

Т.е. в каждую таблицу добавить поле type? да?
а как потом в запросе проверить этот параметр @type, чтоб добавлялось из нужной таблицы?
Polina_ вне форума Ответить с цитированием
Старый 17.12.2012, 15:52   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

нет... type - в таблицу заказов.. иначе вы не узнаете про какую таблицу.
По поводу выборки - тут наверное нужно CASE ом реализовывать процедуру...
ну типа type = 1 то запрос один..... к одной таблице.... если type = 2 к другой
ADSoft вне форума Ответить с цитированием
Старый 17.12.2012, 16:28   #5
Polina_
 
Регистрация: 12.12.2012
Сообщений: 8
По умолчанию

ааа, спасибо!
Если вам не трудно, можете показать на моем примере, как реализовать процедуру для одной таблицы... пожалуйста)
Polina_ вне форума Ответить с цитированием
Старый 18.12.2012, 07:46   #6
Polina_
 
Регистрация: 12.12.2012
Сообщений: 8
По умолчанию

ADSoft, можно ли в запросе insert указывать определенную таблицу, из какой данные выбирать? если да, то как?
Polina_ вне форума Ответить с цитированием
Старый 18.12.2012, 08:33   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Есть такая форма INSERT-а: INSERT INTO Table1 SELECT ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на добавление =Student= БД в Delphi 5 12.09.2010 21:39
Запрос на добавление Grushka Microsoft Office Access 3 03.05.2010 10:00
Запрос на добавление Insightful Microsoft Office Access 9 30.04.2010 18:17
Добавление (запрос) warshadow Microsoft Office Access 8 23.10.2009 01:15
запрос на добавление William Microsoft Office Access 3 13.07.2007 22:00