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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2014, 13:02   #1
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию Связь таблиц через ADOStoredProc

Есть хранимая процедура на вставку:
Код:
Create procedure INSERT_SVETILNIK2
@Name_s nvarchar(20),
@Moshost real,
@Napriaznenie int,
@Kreplenie nvarchar(10),
@Klass_zashiti nvarchar(20),
@Klim_isp nvarchar(20),
@Svetovoy_potok nvarchar(10),
@Price real,
@Id_z int
AS
INSERT Svetilnik(Name_s,Moshost,Napriaznenie,Kreplenie,Klass_zashiti,Klim_isp,Svetovoy_potok,Price,Id_z)
Values (@Name_s,@Moshost,@Napriaznenie,@Kreplenie,@Klass_zashiti,@Klim_isp,@Svetovoy_potok,@Price,@Id_z);
GO
Вызываю в Delphi:
Код:
procedure TForm6.Button1Click(Sender: TObject);
begin
case a of
1:
if (Edit1.Text <> '') and (Edit2.Text <> '') and (Edit3.Text <> '') and (Edit4.Text <> '')and (Edit5.Text <> '')and (ComboBox1.ItemIndex <> -1)and (ComboBox2.ItemIndex <> -1) and (ComboBox3.ItemIndex <> -1)then
begin
DM.ADOQuery2.Parameters.ParamByName('Id_z').Value:=DM.ADOQuery1.FieldByName('Id_z').AsInteger;
DM.ADOStoredProc3.ProcedureName:='INSERT_SVETILNIK2;1';
DM.ADOStoredProc3.Prepared;
DM.ADOStoredProc3.Parameters.ParamByName('@Name_s').Value:=Edit1.Text;
DM.ADOStoredProc3.Parameters.ParamByName('@Moshost').Value:=strtofloat(Edit2.Text);
DM.ADOStoredProc3.Parameters.ParamByName('@Napriaznenie').Value:=strtoint(Edit3.Text);
DM.ADOStoredProc3.Parameters.ParamByName('@Kreplenie').Value:=ComboBox1.Text;
DM.ADOStoredProc3.Parameters.ParamByName('@Klass_zashiti').Value:=ComboBox2.Text;
DM.ADOStoredProc3.Parameters.ParamByName('@Klim_isp').Value:=ComboBox3.Text;
DM.ADOStoredProc3.Parameters.ParamByName('@Svetovoy_potok').Value:=Edit4.Text;
DM.ADOStoredProc3.Parameters.ParamByName('@Price').Value:=Edit5.Text;
DM.ADOStoredProc3.ExecProc;
DM.ADOQuery2.Close;
DM.ADOQuery2.Open;
StatusBar1.Font.Style:=[fsBold];
StatusBar1.Font.Size:=12;
StatusBar1.Panels[0].Text:='Добавлена новая запись: '+ Edit1.Text;
end else
Showmessage('Введите не пустое значение!');
end;
end;
При нажатии на кнопку запись добавляется в базу, но без учета связи таблиц. Где может бть ошибка в хранимой процедуре или пр ее вызове?
Ericnex вне форума Ответить с цитированием
Старый 11.03.2014, 13:23   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
но без учета связи таблиц
что имеется ввиду? Если речь о связях в программе, то хранимка понятия не имеет о задумках программиста
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 11.03.2014, 19:31   #3
Ericnex
Форумчанин
 
Регистрация: 07.04.2010
Сообщений: 218
По умолчанию

Имеется в виду связь таблиц (главная и подчиненная таблицы)
Ericnex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связь таблиц. victor5133 Microsoft Office Access 4 28.02.2013 18:55
Связь таблиц flyinsky Microsoft Office Access 3 05.12.2010 11:23
Связь таблиц в SQL через Delphi Edelweiss Помощь студентам 1 09.11.2009 12:44
Связь таблиц через Master Source artemavd БД в Delphi 62 14.05.2009 10:07
Связь с кучей dbf файлов (таблиц) через OLEDB через UNION ALL Sasha811 SQL, базы данных 0 01.01.2009 14:04