Консультация № 65435
04.12.2006, 01:19
0.00 руб.
0 2 2
Всем привет!
Это снова я. Продолжение вопроса №65275. Пробовал через try ... except ... end (в приложении код), не помогает. Откомпилировал, запустил ехе-файл. Добавляю имеющиеся в БД данные, вылетает сообщение "Invalid variant operation". Жму "Ok", и далее уже мое запрограммированное msgbox-сообщение, что такой номер уже имеется. Что я делаю не так?


Приложение:
procedure TFrmEditKv.BtnOkClick(Sender: TObject);begin {проверяем, заполнены ли поля ФИО и Телефон} FrmEditKv.TxtFIO.Text:=trim(FrmEditKv.TxtFIO.Text); if FrmEditKv.TxtFIO.Text=‘‘ then begin Application.MessageBox(‘Зополните данными поле "ФИО"‘, ‘Внимание!‘, idOk); FrmEditKv.TxtFIO.SetFocus; exit end; FrmEditKv.TxtTelephone.Text:=trim(FrmEditKv.TxtTelephone.Text); if FrmEditKv.TxtTelephone.Text=‘‘ then begin Application.MessageBox(‘Зополните данными поле "Телефон"‘, ‘Внимание!‘, idOk); FrmEditKv.TxtTelephone.SetFocus; exit end; {Вносим изменения в Базу Данных} try if FrmEditKv.Caption=‘Добавление данных‘ then FrmGeneral.ADODataKv.Append else FrmGeneral.ADODataKv.Edit; FrmGeneral.ADODataKv[‘FIO‘] := AnsiUpperCase(FrmEditKv.TxtFIO.Text); FrmGeneral.ADODataKv[‘Gorod‘] := AnsiUpperCase(FrmEditKv.TxtGorod.Text); FrmGeneral.ADODataKv[‘Ulica‘] := AnsiUpperCase(FrmEditKv.TxtUlica.Text); FrmGeneral.ADODataKv[‘Dom‘] := AnsiUpperCase(FrmEditKv.TxtDom.Text); FrmGeneral.ADODataKv[‘Kv‘] := AnsiUpperCase(FrmEditKv.TxtKv.Text); FrmGeneral.ADODataKv[‘Telephone‘] := AnsiUpperCase(FrmEditKv.TxtTelephone.Text); FrmGeneral.ADODataKv[‘Commentary‘] := AnsiUpperCase(FrmEditKv.MemoCommentary.Text); FrmGeneral.ADODataKv.Post; except Application.MessageBox(‘В базе данных указанный номер телефона уже существует.‘, ‘Внимание!‘, idOk); exit; end; FrmGeneral.ADODataKv.Active:=false; with FrmGeneral.ADODataKv do begin CommandText := ‘SELECT Kvartiry.FIO, Kvartiry.Gorod, Kvartiry.Ulica, Kvartiry.Dom, Kvartiry.Kv, Kvartiry.Telephone, Kvartiry.Commentary ‘; CommandText := CommandText + ‘FROM Kvartiry ‘; CommandText := CommandText + ‘ORDER BY Kvartiry.FIO‘; Open; end; FrmGeneral.ADODataKv.Active:=true; FrmGeneral.DBGridKvartiry.Refresh; FrmEditKv.Close;end;

Обсуждение

Неизвестный
04.12.2006, 08:13
общий
это ответ
Здравствуйте, Бурда Саша!

скомпилированный exe файл запустите и проверяйте.
Неизвестный
04.12.2006, 18:37
общий
это ответ
Здравствуйте, Бурда Саша!
Дополню предыдущий ответ. Попробуйте поставить BreakPoint, в самом начале обработчика, н-р на строке FrmEditKv.TxtFIO.Text:=trim(FrmEditKv.TxtFIO.Text); и пройтись до конца нажимия F8, в месте где возникает ошибка просмотрите значения переменных и значения свойств компонентов, возможно тогда вы отловите ошибку.
Форма ответа