Главная страница
    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.46 MB
Время: 0.04 c
1-1100889661
markers
2004-11-19 21:41
2004.12.05
Как вызвать процедуру находящуюся в переменной.


1-1101155381
Тёма
2004-11-22 23:29
2004.12.05
Печать в чужом окне


14-1100757653
sniknik
2004-11-18 09:00
2004.12.05
Разминка к пятнице, легкая задачка на четверг...


1-1100680533
Fishka
2004-11-17 11:35
2004.12.05
MainMenu - надо огромными жирными буквами и по ширине побольше


14-1100596602
wisekaa
2004-11-16 12:16
2004.12.05
Ищу информацию по времени рассчета





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский