Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите разобраться .

34K
09 декабря 2009 года
Batman_08
26 / / 17.08.2008
Доброй ночи !
Есть программулина которая работает с базой Access
Есть пару таблиц справочников, для работі с каждой из них у меня отдельная форма. А вот для работы с данными тех форм у меня уже есть общая форма .
Открываю 1 форму справочника добавляю какието данны, закрываю 1форму.
Затем открываю 2 форму , и при попытке добавить даннные вылазит ошибка.
Ошибка вылазит вне зависимости порядка ввода данных в формы(
Код добавления данных в 1й форме:
procedure TForm_Firm.Button_FirmInsertClick(Sender: TObject);
begin

Form_EditorDictionary.Caption:='Добавление новой записи';
Form_EditorDictionary.DBEdit_EditorDictionary.DataSource:=DataModule1.DataSource_Firm;
Form_EditorDictionary.DBEdit_EditorDictionary.DataField:='Name';
DataModule1.ADOTable_Firm.Insert;
Form_EditorDictionary.ShowModal;

if (DataModule1.ADOTable_Firm.Modified) and (Form_EditorDictionary.ModalResult=mrOk) then
DataModule1.ADOTable_Firm.Post
else
DataModule1.ADOTable_Firm.Cancel;

//Form_Firm.DBGrid_Firm.SetFocus;

end;


Код добавления данных во 2й форме:
procedure TForm_TypeFloat.Button_FloatTypeInsertClick(Sender: TObject);
begin

Form_EditorDictionary.Caption:='Добавление новой записи';
Form_EditorDictionary.DBEdit_EditorDictionary.DataSource:=DataModule1.DataSource_FloatType;
Form_EditorDictionary.DBEdit_EditorDictionary.DataField:='Float_type';
DataModule1.ADOTable_FloatType.Insert;
Form_EditorDictionary.ShowModal;

if (DataModule1.ADOTable_FloatType.Modified) and (Form_EditorDictionary.ModalResult=mrOk) then
DataModule1.ADOTable_FloatType.Post
else
DataModule1.ADOTable_FloatType.Cancel;

//Form_TypeFloat.DBGrid_FloatType.SetFocus;


end;


Собственно текст ошибки :

Porject Fisher.exe raised exceptions class EDatabaseError with message 'DBEdit_EditorDictionaty: Field 'Float_type' not found'.
Process stoped. Use step or Run to continue


Как правильно реализовать задуманное ?
257
10 декабря 2009 года
kosfiz
1.6K / / 18.09.2005
надо было перевести сообщение об ошибке, чтобы понять от чего же она возникает.
написано же, что поле "Float_type" не найдено. вот и ошибка.
34K
10 декабря 2009 года
Batman_08
26 / / 17.08.2008
То, что написано в сообщении понятно ...
Меня больше интересует как можно избежать этой ошибки
257
10 декабря 2009 года
kosfiz
1.6K / / 18.09.2005
раз понятно, то в чем, собственно, проблема? устраняйте.
раз ругается, что его нет, можно его добавить, ну, или не обращаться к нему вовсе, или может неправильное название (имя) поля используется, так тогда надо подставить то, которое нужно. вы уж смотрите, что у вас там в наличии.
34K
10 декабря 2009 года
Batman_08
26 / / 17.08.2008
Я вроде описал всю ситуацию вначале и куски кода предоставил...
Не боллшое уточнение :
Ругается на то поле которое последний раз добавлялось..
6
10 декабря 2009 года
George
4.1K / / 05.01.2007
тебе явно сказано, что у тебя нет поля 'Float_type'. Ну нет его, нет. Проверь.

и соизволь читнуть правила. код у тебя не оформлен.
257
10 декабря 2009 года
kosfiz
1.6K / / 18.09.2005
Цитата: Batman_08

Не боллшое уточнение :
Ругается на то поле которое последний раз добавлялось..


всмысле на то, которое последний раз добавлялось? т.е. на то поле, которое добавлялось в таблицу базы (непосредственно в определение таблицы)?

34K
10 декабря 2009 года
Batman_08
26 / / 17.08.2008
Цитата: kosfiz
всмысле на то, которое последний раз добавлялось? т.е. на то поле, которое добавлялось в таблицу базы (непосредственно в определение таблицы)?



Получается да .
Например я добавляю в таблицу d_firm новую строку :

Код:
procedure TForm_Firm.Button_FirmInsertClick(Sender: TObject);
begin

Form_EditorDictionary.Caption:='Добавление новой записи';
Form_EditorDictionary.DBEdit_EditorDictionary.Data Source:=DataModule1.DataSource_Firm;
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Name';
DataModule1.ADOTable_Firm.Insert;
Form_EditorDictionary.ShowModal;

if (DataModule1.ADOTable_Firm.Modified) and (Form_EditorDictionary.ModalResult=mrOk) then
DataModule1.ADOTable_Firm.Post
else
DataModule1.ADOTable_Firm.Cancel;

//Form_Firm.DBGrid_Firm.SetFocus;

end;


Затем выхожу из этой формы , и захожу в другую форму чтобы добавить данные в таблицу d_float_type .
Код:
procedure TForm_TypeFloat.Button_FloatTypeInsertClick(Sender : TObject);
begin

Form_EditorDictionary.Caption:='Добавление новой записи';
Form_EditorDictionary.DBEdit_EditorDictionary.Data Source:=DataModule1.DataSource_FloatType;
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Float_type';
DataModule1.ADOTable_FloatType.Insert;
Form_EditorDictionary.ShowModal;

if (DataModule1.ADOTable_FloatType.Modified) and (Form_EditorDictionary.ModalResult=mrOk) then
DataModule1.ADOTable_FloatType.Post
else
DataModule1.ADOTable_FloatType.Cancel;

//Form_TypeFloat.DBGrid_FloatType.SetFocus;


end;


И вот именно в момент попытки добавить данны в таблицу d_float_type ругается почемуто на поле из таблицы d_firm (
34K
10 декабря 2009 года
Batman_08
26 / / 17.08.2008
Цитата: Washington


и соизволь читнуть правила. код у тебя не оформлен.



А где можно их почитать ?

34K
10 декабря 2009 года
Batman_08
26 / / 17.08.2008
Цитата: Washington
тебе явно сказано, что у тебя нет поля 'Float_type'. Ну нет его, нет. Проверь.



Дак его то и не должно быть , по тому что в этот момент я добавляю данные в другую таблицу

 
Код:
Form_EditorDictionary.DBEdit_EditorDictionary.Data Source:=DataModule1.DataSource_Firm;
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Name';

а данные в
 
Код:
Form_EditorDictionary.DBEdit_EditorDictionary.Data Source:=DataModule1.DataSource_FloatType;
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Float_type';

добавлял перед этим
6
10 декабря 2009 года
George
4.1K / / 05.01.2007
Цитата: Batman_08
А где можно их почитать ?


http://forum.codenet.ru/showthread.php?t=29747
оформи код, иначе вообще читать неохота.

34K
11 декабря 2009 года
Batman_08
26 / / 17.08.2008
Цитата: Washington

оформи код, иначе вообще читать неохота.



Доброй ночи !
Есть программулина которая работает с базой Access
Есть пару таблиц справочников, для работі с каждой из них у меня отдельная форма. А вот для работы с данными тех форм у меня уже есть общая форма .
Открываю 1 форму справочника добавляю какието данны, закрываю 1форму.
Затем открываю 2 форму , и при попытке добавить даннные вылазит ошибка.
Ошибка вылазит вне зависимости порядка ввода данных в формы(
Код добавления данных в 1й форме:

Код:
procedure TForm_Firm.Button_FirmInsertClick(Sender: TObject);
begin

Form_EditorDictionary.Caption:='Добавление новой записи';
Form_EditorDictionary.DBEdit_EditorDictionary.Data Source:=DataModule1.DataSource_Firm;
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Name';
DataModule1.ADOTable_Firm.Insert;
Form_EditorDictionary.ShowModal;

if (DataModule1.ADOTable_Firm.Modified) and (Form_EditorDictionary.ModalResult=mrOk) then
DataModule1.ADOTable_Firm.Post
else
DataModule1.ADOTable_Firm.Cancel;

//Form_Firm.DBGrid_Firm.SetFocus;

end;


Код добавления данных во 2й форме:
Код:
procedure TForm_TypeFloat.Button_FloatTypeInsertClick(Sender : TObject);
begin

Form_EditorDictionary.Caption:='Добавление новой записи';
Form_EditorDictionary.DBEdit_EditorDictionary.Data Source:=DataModule1.DataSource_FloatType;
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Float_type';
DataModule1.ADOTable_FloatType.Insert;
Form_EditorDictionary.ShowModal;

if (DataModule1.ADOTable_FloatType.Modified) and (Form_EditorDictionary.ModalResult=mrOk) then
DataModule1.ADOTable_FloatType.Post
else
DataModule1.ADOTable_FloatType.Cancel;

//Form_TypeFloat.DBGrid_FloatType.SetFocus;


end;


Собственно текст ошибки если добавляю в 1 таблицу а затем во 2:

Porject Fisher.exe raised exceptions class EDatabaseError with message 'DBEdit_EditorDictionaty: Field 'Name' not found'.
Process stoped. Use step or Run to continue


Собственно текст ошибки если добавляю в 2 таблицу а затем в 1:

Porject Fisher.exe raised exceptions class EDatabaseError with message 'DBEdit_EditorDictionaty: Field 'Float_type' not found'.
Process stoped. Use step or Run to continue


Как правильно реализовать задуманное ?
6
12 декабря 2009 года
George
4.1K / / 05.01.2007
итить твою об колено :D
ну посмотри ты второй код.
 
Код:
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Float_type';

ну нет у тебя такого поля, нет. сделай что нибудь :D
34K
12 декабря 2009 года
Batman_08
26 / / 17.08.2008
Цитата: Washington
итить твою об колено :D
ну посмотри ты второй код.
 
Код:
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Float_type';

ну нет у тебя такого поля, нет. сделай что нибудь :D



Да ну как же его нет когда оно есть ???
Обьясни плиз поподробней.

34K
12 декабря 2009 года
Batman_08
26 / / 17.08.2008
Вроде решил эту проблему :)
Для каждой формы спарвочника создал событие OnClose
И вписал туда вот такую строку кода:
 
Код:
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='';
6
12 декабря 2009 года
George
4.1K / / 05.01.2007
проблему решил, но так и не понял, из за чего возникла. я вот тоже не понял.
34K
12 декабря 2009 года
Batman_08
26 / / 17.08.2008
Цитата: Washington
проблему решил, но так и не понял, из за чего возникла. я вот тоже не понял.



Ну на сколько я все понимаю на данный момент :
Формы справочников у меня разные, а вот форма добавления данных в справочники одна.
Получается после закрытия формы присвоенные данные ни куда не девались и вылазили когда не нужно

 
Код:
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='Float_type';

Исходя из этого получается , что присвоенные данные нужно удалять после использования, то что я и сделал :
Для каждой формы спарвочника создал событие OnClose
И вписал туда вот такую строку кода:
 
Код:
Form_EditorDictionary.DBEdit_EditorDictionary.Data Field:='';

А вообще , видать я просто не корректно работаю с Form_EditorDictionary.DBEdit_EditorDictionary
Так что учиться , учиться и еще раз учится мне нужно :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог