Текущий архив: 2005.11.13;
Скачать: CL | DM;
Вниз
Поиск ошибки в проекте Найти похожие ветки
← →
saNat © (2005-10-24 01:12) [0]Доброго времени суток (о:
Помогите пожалуйста найти ошибку.
Для удобства можно скачать наработки по проекту:
http://webfile.ru/590510 - архив ISDClient.exe (83 Кбайт) - исходные тексты
http://webfile.ru/590521 - архив ISDClient(exe).exe (338 Кбайт) - исходные тексты и исполняемый файл.
Разработка выполняется на ОС Windows XP, Borland Delphi 6.
Суть проекта в сборе и обработке информации. СУБД - Access. Запустив проект видим форму с кнопкой "Тест". Нажав ее появляется окно, предназначенное для добавления в БД нового сотрудника. В случае, если в списке должностей отсутствует требуемая, выбирается пункт "ДОБАВИТЬ ЗНАЧЕНИЕ". При этом на экран выводится окно создания новой должности. Создав новую запись выполняется обновление списка должностей и пользователь может выбрать требуемый пункт из списка.
проблема в том, что список обновляется не всегда. В режиме пошаговой отладке обновление отрабатывает всегда. При запуске из среды или исполняемого файла обновление не происходит. Запись в БД новой должности выполняется.
Подскажите пожалуйста, в чем ошибка?
Ниже представлены листинги, на мой взгляд, наиболее важных методов:
{
Проверяю выбранный пункт в списке. Если требуется создать новую должность (выбран последний пункт "ДОБАВИТЬ ЗНАЧЕНИЕ") и она создана (AddStatusForm.ShowModal=mrOk), то обновляю список должностей.
}
Procedure TAddPeopleForm.SEditChange(Sender:TObject);
Begin
If (SEdit.ItemIndex=SEdit.Items.Count-1)And
(SEdit.Text="ДОБАВИТЬ ЗНАЧЕНИЕ") And
(AddStatusForm.ShowModal=mrOk)
Then
ResetStatusList;
End;
{Обновление списка должностей}
Procedure TAddPeopleForm.ResetStatusList;
Begin
With QueryDB Do
Begin
Close;
SQL.Clear;
SQL.Add("Select Наименование From Должности");
SQL.Add("Order By Наименование");
Open;
First;
SEdit.Items.Clear;
While Not EOF Do
Begin
SEdit.Items.Add(FieldByName("Наименование").AsString);
Next;
End;
SEdit.Items.Add("добавить значение");
SEdit.ItemIndex:=-1;
Close;
End;
End;
{Запись новой должности в БД}
Procedure TAddStatusForm.ApplyButtonClick(Sender:TObject);
Begin
If (SEdit.Text="")
Then
Begin
MessageDlg("Заполните все поля формы",mtWarning,[mbOk],0);
DataPanel.SetFocus;
End
Else
Begin
Try
With QueryDB Do
Begin
Close;
SQL.Clear;
SQL.Add("Insert InTo Должности (Наименование)");
SQL.Add("Values (""+SEdit.Text+"")");
ExecSQL;
Close;
End;
ModalResult:=mrOk;
Except
MessageDlg("Ошибка записи в базу данных."+#13+
"Операция не выполнена."+#13+
"Обратитесь в службу поддержки.",mtError,[mbOk],0);
ModalResult:=mrCancel;
End;
End;
End;
Спасибо за внимание.
С уважением, ЕВА
← →
saNat © (2005-10-24 02:25) [1]Уже вставлял
ShowMessage("Test");
в методы для проверки работоспособности сегментов... Везде заходит. А список не обновляется :о(
← →
Джо © (2005-10-24 03:02) [2]А зачем на каждой форме TADOConnection?
← →
saNat © (2005-10-24 03:11) [3]Сначала делались формы, отлаживались, а потом все собирается в один проект. Не убрано.
← →
Джо © (2005-10-24 03:16) [4]Не неубрано, а грубая ошибка, из-за которой все и проблема. Смотри мыло.
← →
saNat © (2005-10-24 03:30) [5]Не знаю, где отображается E-Mail, кроме анкеты. При ответе на вопрос окно вроде бы есть... Уточняю мой текущий E-Mail: DelphiNchik@list.ru.
Если не трудно, отправьте на данные адрес. Простите за причиненные неудобства. И большое спасибо за внимание и помощь.
С уважением, ЕВА
P.S.: А как можно отредактировать анкету?
← →
Джо © (2005-10-24 03:34) [6]На адрес, указанный в анкете, письмо отправляться не захотело. Точнее, вернулось обратно.
Отправляю на DelphiNchik@list.ru...
← →
saNat © (2005-10-24 03:39) [7]Тот ящик не существует больше. Спасибо.
← →
saNat © (2005-10-24 03:42) [8]А DataModule использую. В университете привили культуру. Но не ожидал что из-за этого могут быть проблемы. Еще раз спасибо за помощь.
С уважением, ЕВА
← →
saNat © (2005-10-24 03:45) [9]Тема закрыта.
← →
Джо © (2005-10-24 03:48) [10]Так проблемы, собственно, не из-за датамодуля (точнее, отсутствия) как такового.
Ты открывал новые соединения с той же базой, не закрывая старое. И изменения, сделанные во вложенном соединении, не могли попасть во "внешнее". Я просто сделал одно соединение (функционально там и не нужны были несколько) и для удобства разместил их в одном месте, т.е. в датамодуле.
← →
Lamer@fools.ua © (2005-10-24 09:15) [11]>А как можно отредактировать анкету?
http://www.delphimaster.ru/anketa/index.html#a3
Страницы: 1 вся ветка
Текущий архив: 2005.11.13;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.037 c