Добовление записи в таблицу
Евген
Дата: 11.03.2003 15:24:50
Не подскажет ли мне кто нибудь? Написал обработчик на кнопку добавить, после нажатия на нее записи введенные в поля заносятся. Следующие же заносятся, но мне приходится закрывать приложение затем открывать и только тогда я вижу остальные введенные записи. Вот код begin
Table1.Active:=True;
Table1.edit;
Table1.FieldByName('NAME').AsString:=ComboBox1.text;
Table1.FieldByName('KOL').AsFloat:=strtofloat(Edit1.text);
Table1.FieldByName('DAT_VIH').AsDateTime:=DateTimePicker1.Date;
Table1.FieldByName('NAME_F').AsString:=ComboBox2.text;
Table1.FieldByName('SQUARE').AsFloat:=strtofloat(Edit3.text);
Table1.FieldByName('DAT_ZAN').AsDateTime:=DateTimePicker1.Date;
Table1.Post;
Table1.Active:=False;
end;
что здесь не так?
tygra
Дата: 11.03.2003 15:56:39
А зачем все время открывать и закрывать таблицу?
Какая БД?
Почему Table1.edit; - надо бы Insert;
Евген
Дата: 11.03.2003 16:30:27
Interbase 6, а куда вставлять Table1.Insert??? В начало или в конец?
pkarklin
Дата: 11.03.2003 16:31:48
Insert вставляет перед текущей записью. А вот Append в конец.
Aleksei
Дата: 11.03.2003 16:43:04
Чтобы внести новую запись в таблицу я лично использую
Table1.InsertReord([Edit1.Text, Edit2.Text,.....]);
а Table1.Edit и Table1.Post предназначены для изменения записей.
Ну а Table1.Insert Используется для вставки новой записи (пустой)
Евген
Дата: 11.03.2003 17:05:40
Попробую
Aleksei
Дата: 11.03.2003 17:19:31
Ну коль решил так попробовать то несколько заметок тебе
1)Извеняюсь за орфографию, надо не
Table1.InsertReord([Edit1.Text, Edit2.Text,.....]);
а
Table1.InsertRecord([Edit1.Text, Edit2.Text,.....]);
2)Заполняться данные будут в той последовательности в которой созданы поля
а при использовании Field в той последовательности в которой числяться
поля Field
3)Есть определенные недостатки
а) Не удобно использовать данный набор (масив данных ) т.е. трудно
изменять если чтото и надо изменить
б)Последовательность полей приходиться дерхать в голове (не удобно при
большом количестве полей особенно если используеш Field)
4)Рекомендую использовать вот так:
Table1.InsertRecord([]);
А в свойстве Table1 AfterInsert заполнять нужные тебе поля
лучше всего используя Field
tygra
Дата: 11.03.2003 17:24:37
Ну раз InterBase, тогда уж лучше и пользоваться sql-запросами - иначе на что тогда SQL-БД ???
Aleksei
Дата: 11.03.2003 17:29:39
Ну а если у меня сервак NetWare
или программа используется на локальной машине то на кой хрен забивать программу SQL запросами если знаеш что толку от них не прибавиться а мороки по составлению этого запроса больше.
pkarklin
Дата: 11.03.2003 17:33:00
Ну а если у меня сервак NetWare
или программа используется на локальной машине то на кой хрен забивать программу SQL запросами если знаеш что толку от них не прибавиться а мороки по составлению этого запроса больше.
Конгениально. У меня нет слов :-)