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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2012, 01:56   #1
Lapa1
Новичок
Джуниор
 
Регистрация: 21.01.2012
Сообщений: 1
По умолчанию Не заполняется дочерняя таблица

Ребят, помогите. Не заполняется дочерняя таблица Delphi+Oracle
Нужно для указанного из комбобокса заказчика добавить заказ
Выдает ошибку - integrity constraint violated parent key not found

ЕСть две таблицы:
create table zakazchik (id number(3) primary key not null, zakazchik varchar2(30) not null);
create table zakazi (id number(3) primary key, naimen_zakaza varchar2(25), num_zakaz varchar(30)
, zakazchik_id number(3), constraint c_id foreign key(zakazchik_id) references zakazchik(id));

Код в Делфи:

procedure Taddzakazi.ComboBox1Change(Sender: TObject);
label hhh;
var
i:integer;
begin
i:=1;
if ComboBox1.Items.GetText<>'' then begin
repeat
if ByteArray[i].s=ComboBox1.Text then GoTo hhh else
inc(i);
until false;
hhh:
In_m:=0 ;
with Mainform.ADOQuery1 do
begin
Mainform.ADOQuery1.Close;
Mainform.ADOQuery1.SQL.Clear;
Mainform.ADOQuery1.SQL.Add('select id from zakazi order by id');
Mainform.ADOQuery1.Open;
end;
mainform.ADOQuery1.Last;
In_m:=mainform.ADOQuery1.FieldByNam e('id').AsInteger+1;

with Mainform.ADOQuery1 do
begin
Mainform.ADOQuery1.Close;
Mainform.ADOQuery1.SQL.Clear;
Mainform.ADOQuery1.SQL.Add('select id, zakazchik_id, naimen_zakaza, num_zakaz from zakazi where zakazchik_id='+IntToStr(ByteArray[i].id));
Mainform.ADOQuery1.Open;
end;
while not Mainform.ADOQuery1.Eof do
begin
addzakazi.Edit1.Text:=mainform.ADOQ uery1.fieldbyname('num_zakaz').asSt ring;
addzakazi.Edit2.Text:=mainform.ADOQ uery1.fieldbyname('naimen_zakaza'). asString;
tttttt:=mainform.ADOQuery1.fieldbyn ame('zakazchik_id').AsInteger;
end;
if mainform.ADOQuery1.fieldbyname('zak azchik_id').AsString='' then begin
tttttt:=ByteArray[i].id;
with Mainform.ADOQuery1 do
begin
Mainform.ADOQuery1.Close;
Mainform.ADOQuery1.SQL.Clear;
Mainform.ADOQuery1.SQL.Add('select id, zakazchik_id, naimen_zakaza, num_zakaz from zakazi');
Mainform.ADOQuery1.Open;
end;
while not Mainform.ADOQuery1.Eof do
begin
inc(tttttt);
end;
end;
end;
end;


procedure Taddzakazi.Button1Click(Sender: TObject);
mainform.ADOQuery1.SQL.Clear;
mainform.ADOQuery1.SQL.Text := 'insert into zakazi (ID, zakazchik_ID, num_zakaz, naimen_zakaza) Values (:ID, :zakazchik_ID, :num_zakaz, :naimen_zakaza)';
mainform.ADOQuery1.Parameters.Param ByName('id').Value := In_m;
mainform.ADOQuery1.Parameters.Param ByName('zakazchik_id').Value := tttttt;
mainform.ADOQuery1.Parameters.Param ByName('num_zakaz').Value :=addzakazi.Edit1.Text;
mainform.ADOQuery1.Parameters.Param ByName('naimen_zakaza').Value := addzakazi.Edit2.Text;
mainform.ADOQuery1.ExecSQL;
end;
Lapa1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
бд заполняется через раз boshki Помощь студентам 2 25.05.2011 15:13
MDI-форма дочерняя не меняется VVkSoft Общие вопросы Delphi 2 06.03.2011 12:51
Дочерняя форма из дочерней maryan.vetrov C# (си шарп) 1 22.02.2011 03:02
Delphi cxGrid дочерняя форма YaNovichok Помощь студентам 0 11.10.2010 15:02
dataGridView1 не заполняется. sergei64_89 Общие вопросы .NET 3 19.09.2008 11:13