|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.04.2008, 15:19 | #1 |
Пользователь
Регистрация: 22.02.2008
Сообщений: 14
|
Нет Темы, но помощь нужна
Короче, в таблице сотрудников есть информация о его должности, когда меняется эта должность в таблице о трудовой деятельности должна появиться новая строка о энтом же сотруднике сотруднике но уже с другой должностью.
И вот такая процедурка procedure TfmMain.SetTransfer(EmpID: integer; EmpLastName, EmpFirstName, EmpFatherName, OldDep, NewDep, OldPos, NewPos: string ); begin Application.CreateForm(TfmTransfer, fmTransfer); with fmTransfer, dmStaff, sidsJobs do begin LaedName.Text := EmpLastName + ' ' + EmpFirstName + ' ' + EmpFatherName; LaedDepFrom.Text:= OldDep; LaedDepTo.Text:= NewDep; LaedPosFrom.Text:= OldPos; laedPosTo.Text:= NewPos; dtpDate.Date:= Now; ShowModal; if Locate('EmpID;StopDate', VarArrayOf([EmpID,null]),[]) then begin Edit; sidsJobsStopDate.AsDateTime:= dtpDate.Date; sidsJobsStopCauses.AsString:= cbCauses.Text; sidsJobsOutOrderNum.AsString:= edOrderNum.Text; Post; end; InsertRecord([EmpID, dtpDate.Date, nil, ReadStrParam('Организация'), NewDep, NewPos, '', '1', edOrderNum.Text, '']); ApplyUpdates(0); end; fmTransfer.Free; end; И вот так она вызывается потом SetTransfer(FieldByName('ID').AsInt eger, FieldByName('LastName').AsString, FieldByName('FirstName').AsString, FieldByName('FatherName').AsString, CurDep, fmNew.valeData.Values['Подразделение'], CurPos, fmNew.valeData.Values['Должность']); Вставка в таблицу о сотруднике происходит по ключам ID и EmpID сначала строка вставлялась постоянно с ключом "0" да и сейчас так только еще и ошибка выскакивает Poject raised exception class EDBClient with massage"Field value required" |
21.04.2008, 17:07 | #2 | |
Форумчанин
Регистрация: 04.03.2007
Сообщений: 615
|
Цитата:
или добваить новую строку средствами SQL??? |
|
21.04.2008, 18:37 | #3 | ||
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Цитата:
Реализованное решение, конечно, весьма корявое. Судя по всему, в одну таблицу пихается все что ни попадя. Резонно было бы завести табличку для таких данных со структурой вроде: Id - уникальный идентификатор записи IdSluz - идентификатор служащего IdOldDept - идентификатор отдела, откуда перешел IdNowDept - идентификатор отдела, куда перешел IdOldPos - идентификатор должности, с которой ушел IdNowPos - идентификатор должности, на которую назначен Понятно, что любая инфа, например список должностей, должна быть тоже определена в простейшей табличке: IdPos - уникальный идентификатор должности TextPos - текстовое описание должности и так далее. Разбивка базы на подобные структуры облегчает не только получение результатов для запросов любой сложности, но и существенно уменьшает объем самой базы. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна помощь!!! | Anil | Помощь студентам | 0 | 04.12.2007 17:32 |
Нужна помощь | londoner | Общие вопросы Delphi | 2 | 05.02.2007 14:23 |