![]() |
|
|
![]()
|
|
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Если тебе надо добавить только идентификатор (значение поля DM.Pod['PKodRuk']), то можешь либо просто написать
или используй KeyValue, как ты и делал раньше, только тогда KeyField присвой значение RKod -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
Cashey, AppendRecord сам сделает Post
mambo, убей последнюю строчку. -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Попробовал старые варианты и выяснил, что ко всему прочему в таблицу подразделений записывается не код руководителя, а должность.
И кол-во записей всё такое же. |
|||
|
||||
| Cashey |
|
||||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Да, если база не буферизированная, но я на всякий случай посоветую сделать так:
Добавлено @ 09:48 mambo AppendRecord, может добавить больше одной записи только в цикле -------------------- библия учит любить ближнего, а камасутра обучает как именно |
||||
|
|||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
Cashey, да при чём здесь буферизация. после AppendRecord таблице ляжет в State=dsBrowse и последующий вызов Post всегда будет валить её в эксепшн. ты определись, либо AppendRecord, либо Insert|Edit .. Post.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Вернулся к такому варианту: procedure TForm6.Button1Click(Sender: TObject); begin DM.Pod.Append; DM.Pod['PKod'] := Edit1.Text; DM.Pod['PPod'] := Edit2.Text; DM.Pod.Post; DM.Pod_Adm.Active := False; DM.Pod_Adm.Active := True; Close; end; У DBLookupComboBox настройки такие: ListSource=DM.DataSource1, ListField=RDolj, KeyField=RKod. Запись в таблицу подразделений выполняется, но снова вместо одной по выбранной должности из DBLookupComboBox получается столько, сколько всего руководителей. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
мда.... шаман, однако. первый раз слышу, чтобы один аппенд приводил к вставке кучи записей. может, я не догоняю чего? это же физически невозможно.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Вот в этом и вопрос.
Причем получается так: Количество записей столько, сколько руководителей. В каждой записи наименование подразделения одинаковое, которое вводил в Edit. Код подразделения у всех одинаковый 1. А код руководителя разный... Что за баг?.. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
чудес не бывает. у тебя где-то что-то ещё прописано. в AfterInsert, BeforeInsert, AfterPost, BeforePost, AfterScroll какие-нить обработчики есть?
Добавлено @ 10:24 выложи весь код модуля, если не сложно. мне аж интиресно стало -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Пожалуйста, вот он:
unit Unit6; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, ExtCtrls, DB, DBTables; type TForm6 = class(TForm) Panel1: TPanel; Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Button1: TButton; Button2: TButton; DBLookupComboBox1: TDBLookupComboBox; DBComboBox1: TDBComboBox; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form6: TForm6; implementation uses Data_U; {$R *.dfm} procedure TForm6.Button2Click(Sender: TObject); begin Close; end; procedure TForm6.FormCreate(Sender: TObject); var CountRowsP, NP: Integer; SP: String; begin if DM.Pod.RecordCount = 0 then begin NP := 1; SP := IntToStr(NP); Edit1.Text := SP; end else begin DM.Pod.Last; CountRowsP := DM.Pod['PKod']; NP := CountRowsP + 1; SP := IntToStr(NP); Edit1.Text := SP; while not DM.Ruk.Eof do begin DBComboBox1.Items.Add(DM.Ruk.FieldByName('RDolj').AsString); DM.Ruk.Next; end; end; end; procedure TForm6.Button1Click(Sender: TObject); begin DM.Pod.Append; DM.Pod['PKod'] := Edit1.Text; DM.Pod['PPod'] := Edit2.Text; DM.Pod.Post; DM.Pod_Adm.Active := False; DM.Pod_Adm.Active := True; Close; end; end. Млин, другой модуль (ранее рабочий) чё-то заглючил... А тут еще рабочий день закончился Пишите, люди добрые! Буду ждать с нетерпением, завтра посмотрю. Всем привет и большое спасибо! До встречи. |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 1 Всего: 22 |
здесь всё относительно нормально. нормально в том плане, что глючить тут нечему.
меня терзают смутные сомнения, что все чудеса творятся в модуле DM. его можно поглядеть? -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
канешна можно вот:
unit Data_U; interface uses SysUtils, Classes, DB, DBTables; type TDM = class(TDataModule) Database1: TDatabase; Ruk: TTable; DataSource1: TDataSource; Pod: TTable; DataSource2: TDataSource; Pz: TTable; DataSource3: TDataSource; Sot: TTable; DataSource4: TDataSource; Zad: TTable; DataSource5: TDataSource; Vp: TTable; DataSource6: TDataSource; Wp: TTable; DataSource7: TDataSource; Pr: TTable; DataSource8: TDataSource; Ruk_Adm: TQuery; DS_Ruk_Adm: TDataSource; Ruk_AdmRDolj: TStringField; Ruk_AdmRRuk: TStringField; Ruk_AdmRName: TStringField; Ruk_AdmRPasw: TStringField; Pod_Adm: TQuery; DS_Pod_Adm: TDataSource; Pod_Admrdolj: TStringField; Pod_Admppod: TStringField; PZ_Adm: TQuery; DataSource9: TDataSource; PZ_AdmPzName: TStringField; PZ_AdmPzPasw: TStringField; PZ_AdmPPod: TStringField; Sot_Adm: TQuery; Sot_A: TDataSource; Sot_AdmSSot: TStringField; Sot_AdmPPod: TStringField; Sot_AdmSDolj: TStringField; private { Private declarations } public { Public declarations } end; var DM: TDM; implementation uses Admin_U, Unit2; {$R *.dfm} end. |
|||
|
||||
| mambo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 28.4.2004 Репутация: нет Всего: нет |
Я разобрался. Причина была вообще в другом: в неправильном SQL-запросе в Query, через который отображаются данные в сетке. А DBLookupComboBox оказывается прекрасно работает, в нем главное правильно настроить свойства ListSource, ListField, KeyField. ВСЕМ БОЛЬШОЕ СПАСИБО! Вопрос снимаю, чао-какао... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |