Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

Самопроизвольная запись в таблицу 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
3-1099995990
alsov1
2004-11-09 13:26
2004.12.05
Нужен алгоритм выборки по рекурсивной связи


14-1100512899
Cosinus
2004-11-15 13:01
2004.12.05
Что то не могу найти LPT-монитор. Может есть у кого грамотный?


1-1100695881
Andrey V.
2004-11-17 15:51
2004.12.05
Хочу отцентрировать содежимое TMaskEdit


1-1101271504
DDDeN
2004-11-24 07:45
2004.12.05
Получить строку из TStringGrid


14-1100607348
ИМХО
2004-11-16 15:15
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский