Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

Самопроизвольная запись в таблицу DB???   Найти похожие ветки 

 
Pavor   (2004-11-09 11:35) [0]

Уважаемые профессионалы!
Не могу понять, в чем дело.

Есть база из пяти таблиц. Четыре из них - это наборы значений для пятой (на них ссылки из пятой будут, из таблицы 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 11:53) [1]


> Эти наборы "пристегнуты" к DBComboBox, с их помощью значения
> выбираются.

Вообще-то все это делается через DBLookupCombobox или лукап-поля


 
Pavor   (2004-11-09 11:55) [2]

Во вспомогательной таблице, первоначально (поле 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 12:08) [3]


>
> |Item1|Property11|Property21|Property31|
> +--------------------------------------+
> |Item1|Property12|Property22|Property32|
> +--------------------------------------+
> |Item3|Property13|Property23|Property33|
> +--------------------------------------+
> ...


А как Вы это видите?


 
Pavor   (2004-11-09 12:19) [4]

Открываю DBGrid с этой таблицей, чтобы добавить в нее данные..


 
ЮЮ ©   (2004-11-09 12:22) [5]

DBComboBox преднозначен именно для корректировки записи НД.
И "Допустим, в DBCombobox выбрано Item1" скорей всего произведено над той записью, где было значение Item2 (иначе Item1 не надо было бы выбирать). В результате имеем то, что имеем и то, что и следовало ожидать, а не то, что желал увидеть ты


 
Соловьев ©   (2004-11-09 12:26) [6]


> 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;//Вносим изменения в базу

Или Тест и эта справочная аблица одно и то же. Или вы не привели еще добрый кусок кода.


 
Pavor   (2004-11-09 12:44) [7]

2 ЮЮ:
Скорее всего, в этом все и дело :)
Первый раз с базами что-то пишу, все-таки, так что строго не судите.

2 Соловьев:
Конечно, тут не весь код целиком, наверное много бы слишком получилось и было бы читать тяжело.

Всем спасибо, буду разбираться с DBCombobox.. Ну а если опять не получится - я еще вернусь :))


 
ЮЮ ©   (2004-11-09 12:53) [8]

>Всем спасибо, буду разбираться с DBCombobox..
Возьми DBLookupCombo и не заполняй DataSource + DataField, а ListSource + все с ним связанное
Или обычный ComboBox, т.к. код по его заполнению у тебя, очевидно, уже есть



Страницы: 1 вся ветка

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.05 c
11-1073945866
Юрий Ж.
2004-01-13 01:17
2004.12.05
HotKeyEdit?


4-1098606535
Ashle
2004-10-24 12:28
2004.12.05
Как перезапустить сессию Application ? сэмулировать перезапуск


14-1099174779
Piter
2004-10-31 02:19
2004.12.05
Magic Forum 1.1 - программа-клиент этого форума


1-1100682836
wzCOM
2004-11-17 12:13
2004.12.05
Работа с IrDa


3-1099920344
msguns
2004-11-08 16:25
2004.12.05
Обновление с подсчетом в Аксесе