Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.11;
Скачать: CL | DM;

Вниз

Delphi и MS SQL   Найти похожие ветки 

 
Леонид   (2007-12-05 16:32) [0]

Помогите пожалуйста - я сделал в первой форме два списка - Отдел и Сотрудники, во второй форме DBGrid в котором можно редактировать данные, с отделами все окей, а вот с сотрудниками проблема, мне нужно что бы как-то им задавался id отдела куда я хочу добавить его... Т.е. что бы DBNavigator понял что сотрудника нужно добавлять не с пустым id а с установленным мной, выводить в DBGrid полем id отдела нельзя, т.к. по идее отдел уже выбран изначально тот куда я буду забивать сотрудника.


 
Леонид   (2007-12-05 16:45) [1]

Собственно делается как я понимаю это так:

procedure TForm4.ADOQuery1BeforePost(DataSet: TDataSet);
begin
 if (SelName = "СОТРУДНИК") then
 begin
 DataSet.FieldByName("ID").AsInteger := integer(Form3.ComboBox2.Items.Objects[Form3.ComboBox2.ItemIndex]);
 end;  
end;


 
Германн ©   (2007-12-06 01:35) [2]


> Леонид   (05.12.07 16:45) [1]

Если я всё правильно понял (а это не очень просто было сделать, учитывая "обрывочность" информации), то такие поля записи удобнее заполнять в событии OnNewRecord.


 
Германн ©   (2007-12-06 02:46) [3]


> Леонид   (05.12.07 16:45) [1]

А за "ADOQuery" тебя пожурят другие люди, более продвинутые, чем я. :)


 
Johnmen ©   (2007-12-06 09:03) [4]

Читать про lookup-поля и не заниматься ерундой. Ещё лучше - элементарную книжку про программирование баз данных.


 
ЮЮ ©   (2007-12-06 10:05) [5]

> Т.е. что бы DBNavigator понял что сотрудника нужно добавлят

Уж кому-кому, а DBNavigator-у точно все пофиг :) Его дело Insert и Post выполнить.

Проще всего связать DataSet-ы как мастер-детайл (TDataSet.DataSource), и тогда в DataSet-е Сотрудники будут толко записи, соответствующие текущей в DataSet-е Отдел. Соответстаенно при вставке новой записи в Сотрудники вствится нужное Id. По крайней мере это работало а BDE. В ADO "батонокидательством" не занимаюсь :)



Страницы: 1 вся ветка

Текущий архив: 2008.05.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
15-1206524725
capkoh
2008-03-26 12:45
2008.05.11
Изучение SQL. Сколько времени?


2-1208241743
Миша
2008-04-15 10:42
2008.05.11
Титульный лист в программе


2-1208080633
Megatron
2008-04-13 13:57
2008.05.11
Считывать данные с реестра


15-1206536706
смарт
2008-03-26 16:05
2008.05.11
ПО Смартов


2-1208092380
Снежинка
2008-04-13 17:13
2008.05.11
Вычисление среднего балла