![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Самопроизвольная запись в таблицу DB??? [D7, Paradox]
Pavor © (2004-11-09 11:35:00)Уважаемые профессионалы!
Не могу понять, в чем дело.
Есть база из пяти таблиц. Четыре из них - это наборы значений для пятой (на них ссылки из пятой будут, из таблицы TEST). Эти наборы "пристегнуты" кDBComboBox, с их помощью значения выбираются. Добавляею новую запись в основную таблицу так:
DataModule2.TEST.Insert;//Добавляем новую запись
DataModule2.TEST.FieldByName('NameID').AsInteger:=NameID;
DataModule2.TEST.FieldByName('TypeID').AsInteger:=1;
DataModule2.TEST.FieldByName('DrwTypeID').AsInteger:=DrwType;
DataModule2.TEST.FieldByName('Designation').AsInteger:=DesignationID;
DataModule2.TEST.FieldByName('DrwNumber').AsString:=DrawingNumber;
DataModule2.TEST.FieldByName('Date').AsDateTime:=Date;
DataModule2.TEST.FieldByName('Time').AsDateTime:=Time;
DataModule2.TEST.Post;//Вносим изменения в базу
То есть, вспомогательные таблицы нигде не затрагиваю, однако в одной из них происходят изменения. К этой таблице я обращаюсь только для поиска поFindKey. Во вспомогательные таблицы данные предварительно заносятся посредствомDBGridиDBNavigator.
Понимаю, что, должно быть, картину дал не совсем полную... Но может кто уже сталкивался и поймет, в чем тут дело?
ЮЮ (2004-11-09 12:53:00) [1]>Всем спасибо, буду разбираться с DBCombobox..
Возьми DBLookupCombo и не заполняй DataSource + DataField, а ListSource + все с ним связанное
Или обычный ComboBox, т.к. код по его заполнению у тебя, очевидно, уже есть
Pavor (2004-11-09 12:44:00) [2]2 ЮЮ:
Скорее всего, в этом все и дело :)
Первый раз с базами что-то пишу, все-таки, так что строго не судите.
2 Соловьев:
Конечно, тут не весь код целиком, наверное много бы слишком получилось и было бы читать тяжело.
Всем спасибо, буду разбираться сDBCombobox.. Ну а если опять не получится - я еще вернусь :))
Соловьев (2004-11-09 12:26:00) [3]
> DataModule2.TEST.Insert;//Добавляем новую запись
>
> DataModule2.TEST.FieldByName('NameID').AsInteger:=NameID;
> DataModule2.TEST.FieldByName('TypeID').AsInteger:=1;
> DataModule2.TEST.FieldByName('DrwTypeID').AsInteger:=DrwType;
> DataModule2.TEST.FieldByName('Designation').AsInteger:=DesignationID;
> DataModule2.TEST.FieldByName('DrwNumber').AsString:=DrawingNumber;
> DataModule2.TEST.FieldByName('Date').AsDateTime:=Date;
> DataModule2.TEST.FieldByName('Time').AsDateTime:=Time;
>
> DataModule2.TEST.Post;//Вносим изменения в базу
Или Тест и эта справочная аблица одно и то же. Или вы не привели еще добрый кусок кода.
ЮЮ (2004-11-09 12:22:00) [4]DBComboBox преднозначен именно для корректировки записи НД.
И "Допустим, в DBCombobox выбрано Item1" скорей всего произведено над той записью, где было значение Item2 (иначе Item1 не надо было бы выбирать). В результате имеем то, что имеем и то, что и следовало ожидать, а не то, что желал увидеть ты
Pavor (2004-11-09 12:19:00) [5]Открываю
DBGridс этой таблицей, чтобы добавить в нее данные..
Соловьев (2004-11-09 12:08:00) [6]
>
> |Item1|Property11|Property21|Property31|
> +--------------------------------------+
> |Item1|Property12|Property22|Property32|
> +--------------------------------------+
> |Item3|Property13|Property23|Property33|
> +--------------------------------------+
> ...
А как Вы это видите?
Pavor (2004-11-09 11:55:00) [7]Во вспомогательной таблице, первоначально (поле Item - в DBCombobox):
| Item1|Property11|Property21|Property31|
+--------------------------------------+
| Item2|Property12|Property22|Property32|
+--------------------------------------+
|Item3|Property13|Property23|Property33|
+--------------------------------------+
...
Допустим, в DBCombobox выбрано Item1, тогда
после записи в таблицу TEST обнаруживаем:
| Item1|Property11|Property21|Property31|
+--------------------------------------+
| Item1|Property12|Property22|Property32|
+--------------------------------------+
|Item3|Property13|Property23|Property33|
+--------------------------------------+
...
То есть каким-то непостижимым для меня образом выбранный элемент копируется в следующую по порядку запись, причем меняется только поле Item.
Соловьев (2004-11-09 11:53:00) [8]
> Эти наборы "пристегнуты" к DBComboBox, с их помощью значения
> выбираются.
Вообще-то все это делается через DBLookupCombobox или лукап-поля