Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 49
1

Процедура добавления данных в две таблицы

25.03.2013, 23:56. Показов 5732. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, у меня вот такая проблема: есть база данных на SQL Server, данные из двух таблиц этой базы я SQL-запросом отображаю в Delphi в одном DBGrid'е, но они только отображаются, редактировать их нельзя! А я хотел бы:
1) написать хранимую процедуру на SQL, при вызове которой в Delphi данные, заносящиеся через оболочку Delphi добавлялись бы в обе таблицы этой базы SQL. Я вот как писал процедуру, но выпадает ошибка:
SQL
1
2
3
4
5
6
7
8
9
USE [baza]
GO
 
CREATE PROCEDURE dobavlenie(@per1 INT, @per2 NCHAR(30), @per3 NCHAR(3), @per4 VARCHAR(50))
AS 
BEGIN
INSERT INTO [table1] VALUES (@per1, @per2, @per3)
INSERT INTO [table2] VALUES (@per4)
END
2) и возможно ли написать процедуру или триггер, при которых данных не только отображаются, но и редактируются прямо в DBGrid'e?
Заранее благодарю!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2013, 23:56
Ответы с готовыми решениями:

Процедура добавления данных в конец списка.
Добрый вечер. Нужна помощь в преобразовании процедуры добавления данных в начало списка на...

Процедура, принимающая в качестве параметров - две таблицы
Здравствуйте, прошел курс по T-SQL. Стоит задача создать хранимую процедуру, которая принимает, в...

Две базы данных и одна хранимая процедура
есть 2 database можно ли создать store proceduru, которая бы получала данные из другой database....

Нужны две формы для добавления, удаления и редактирования данных БД MS Access
Есть вот такая база данных. Есть макрос на добавление данных в форму. Но форма либо добавляет в...

7
107 / 107 / 5
Регистрация: 28.12.2012
Сообщений: 207
26.03.2013, 00:10 2
Скрипты на создание таблиц, а также текст ошибки в студию..
0
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 49
26.03.2013, 13:08  [ТС] 3
Цитата Сообщение от asd24 Посмотреть сообщение
Скрипты на создание таблиц, а также текст ошибки в студию..
таблицы я соединял в гриде так:
SQL
1
SELECT [table1].per1,[table1].per2,[table1].per3,[table2].per4 FROM [table1] LEFT JOIN [table2] ON [table1].per1=[table2].per1
per1 тут означает номер записи, эта переменная есть в обеих таблицах и по ней я сравниваю записи, но вывожу я ее только из первой таблицы.
хранимую процедуру я хотел вызвать программно в делфи, но она не запускается в SQL, так что вызывать ее бесполезно, вот скрин ошибки:
Миниатюры
Процедура добавления данных в две таблицы  
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
26.03.2013, 15:07 4
Цитата Сообщение от roma1989 Посмотреть сообщение
вот скрин ошибки
По-русски же текст ошибки пишется. Нужно, чтобы количество вставляемых значений совпадало с количеством колонок в таблице, либо же необходимо перечислить столбцы, в которые вставляются значения. Почитайте по-подробнее про команду INSERT.
0
107 / 107 / 5
Регистрация: 28.12.2012
Сообщений: 207
26.03.2013, 20:22 5
T-SQL
1
2
3
4
5
6
7
8
9
USE [baza]
GO
 
CREATE PROCEDURE dobavlenie(@per1 INT, @per2 NCHAR(30), @per3 NCHAR(3), @per4 VARCHAR(50))
AS 
BEGIN
INSERT INTO [table1](per1, per2, per3) VALUES (@per1, @per2, @per3)
INSERT INTO [table2](pe4) VALUES (@per4)
END
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
26.03.2013, 20:58 6
asd24, так не получится связать таблицы в селекте, в table2 надо вставлять [table2].per4 и [table2].per1

Добавлено через 1 минуту
вопрос о дублировании данных как бы не рассматривается?

Добавлено через 5 минут
есть: в Table1: (1,2,3), (2,3,4) в Table2 (1,10),(2,20)
по селекту получаем: (1,2,3,10),(2,3,4,20)
добавляем: (1,5,6,30)=>(1,5,6) и (1,30)
после этого по селекту получаем: (1,2,3,10), (1,2,3,30),(1,5,6,10),(1,5,6,30),(2,3,4,20)

Это правильно?
0
107 / 107 / 5
Регистрация: 28.12.2012
Сообщений: 207
26.03.2013, 21:26 7
cygapb-007, Я не имею полного представления насчет логики БД автора.. ну то, что автор позже делает выборку по per1 явно не указывает на то, что их также необходимо вместе вставлять, верно?
Есть запрос - есть ошибка.. сейчас, я надеюсь, у автора заработает запрос и тогда он, возможно, заметит что INSERT работает не корректно.. вот и будем позже строить догадки
0
1313 / 945 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
26.03.2013, 22:01 8
asd24, не в упрек, просто чуть выше ТС предоставил скрипт на выборку:
SQL
1
2
3
SELECT [table1].per1,[table1].per2,[table1].per3,[table2].per4 
FROM [table1] 
LEFT JOIN [table2] ON [table1].per1=[table2].per1
Вопрос о дублировании - целиком к автору))
0
26.03.2013, 22:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2013, 22:01
Помогаю со студенческими работами здесь

Создать две кнопки и прикрепленные к ним формы, для добавления данных
Ребята, нужна помощь, стоит задача сделать макрос, который бы реализовал след требования: нужно...

О способах добавления данных в таблицы
Я практически не знакома с SQL, поэтому прошу не обижаться, если я назову какие-то термины...

Реализация многократного добавления данных в таблицы
Есть база учащихся, необходимо реализовать окно/форму или как это еще может называться, при запуске...

Перенос данных из Excel в две таблицы баз данных SQL-Server
Люди добрые помогите пожалуйста. Есть таблица Excel, я сделал перенос всех данных из нее в таблицу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru