Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-1129203791
VIsa
2005-10-13 15:43
2005.11.13
Помогите разобраться с прозрачностью в TPNGImage


1-1130146907
MBoris
2005-10-24 13:41
2005.11.13
Как в одну ячейку StringGrid засунуть две строки?


14-1130153309
pazitron_brain
2005-10-24 15:28
2005.11.13
Что такое свет?


2-1130220071
btr
2005-10-25 10:01
2005.11.13
Расскажите про WideString


3-1128333732
Prohodil Mimo
2005-10-03 14:02
2005.11.13
Как правильно записать картинку из TImage в базу FB-1.5 ?