![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите с компонентом TDBEdit и TDBComboBox [D7, Paradox]
vodvorezlaya © (2006-09-14 13:07:00)Всем доброго времени суток.
Ув. мастера на форме есть компоненты для ввода: DBEdit1 и DBComboBox1.
Когда таблица активна видно одну запись в таблице соответствующего Field.
Необходимо добавить одну запись в конец таблици с текущими данными из DBEdit1 и DBComboBox1 в новое поле.
Добавляю так:
with datamodule1.table do
begin
Append;
FieldsbyName('Имя') := StrToInt(DBEdit1.text);
//не работает пишет что данные не Integer;
DBEdit1.Field.AsInteger:=762834762;
//тоже не работает пишет access viotation error когда доходит до post
Post;
end;
vodvorezlaya (2006-09-15 10:02:00) [1]Спасибо. Разобрался. Вроде работает.
evvcom (2006-09-15 08:33:00) [2]> [9] vodvorezlaya (15.09.06 08:17)
Если ты правильно настроил лукап, то от тебя больше ничего не требуется. Он сам все запишет.
vodvorezlaya (2006-09-15 08:17:00) [3]
> DataSource, DataField должны указывать на первую (редактируемую)
> таблицу
> ListSource, KeyField, ListField - это для второй (подстановочной)
> таблицы
Так и есть, но как мне после выбора из раскрывающегося списка( Makr второй таблици) одного из значений записать его ID( которое хранится в второй табл.) в первую таблицу( В поле MarkID) ?
ЮЮ (2006-09-15 03:46:00) [4]После Append теущей записью становится добавленная и DBEdit будет пуст. Поэтому следует запомнить где-то нужные значения текущей записи до Append
DataSource, DataField должны указывать на первую (редактируемую) таблицу
ListSource, KeyField, ListField - это для второй (подстановочной) таблицы
Sergey13 (2006-09-14 16:35:00) [5]> [6] vodvorezlaya (14.09.06 16:31)
Сочувствую.
vodvorezlaya (2006-09-14 16:31:00) [6]С DBGrid плохо получается
Sergey13 (2006-09-14 15:51:00) [7]> [4] vodvorezlaya (14.09.06 15:33)
> Чтоб данные записались из DBEdit1 в его Field(после Append)
Это по сути одно и тоже. Вернее первое уже содержит значение второго. Меняя в одном меняется и в другом без постороннего участия.
> Вопрос: как записать в первую таблицу в поле MarkID число
> ID которое будет соответствовать определённому полю Mark
> выбранному в раскрывающемся списке DBLookupComboBox?
Если правильно понял, то присвой Datasourse и DataField DBLookupComboBox-а значениями для редактируемого поля.
vodvorezlaya (2006-09-14 15:33:00) [8]Хорошо, как сделать правильно?
(не через DBGrid)
Чтоб данные записались из DBEdit1 в его Field(после Append)?
Ещё такой вопрос. Поле DBLookupComboBox1.
Связываю его с второй таблицей(Referendial Integrity), всё работает, отображаются все поля Mark второй таблици в списке DBLookupComboBox1.
Во второй таблице есть поле ID и Mark. В первой таблице есть MarkID связанное с полем ID второй таблици.
Вопрос: как записать в первую таблицу в поле MarkID число ID которое будет соответствовать определённому полю Mark выбранному в раскрывающемся списке DBLookupComboBox?
Спасибо.
Desdechado (2006-09-14 15:31:00) [9]> Полю присваиваешь значение ДБедита
А бы даже уточнил, что присваивать нужно значению поля, а не компоненту поля. А то новички могут недопонять.
stone (2006-09-14 13:17:00) [10]когда ты делаешь Append, значение DBEdit1.text равно null
если работаешь с данными, то работай с полями датасета, а не с контролами
Sergey13 (2006-09-14 13:15:00) [11]Ты фигню написал. Да еще с ощибками. Полю присваиваешь значение ДБедита (преобразованное к целому), который ссылается на это поле. Потом полю присваиваешь еще и число. Причем, что то мне говорит что поле строкового типа.
Не проще будет ДБГрид поставить вместо этой каши?