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

Вниз

как запихнуть данные в базу? :)   Найти похожие ветки 

 
umbra ©   (2008-04-18 12:43) [0]

ситуация следующая:
использую адо + аксесс
данные для показа и правки берутся из нескольких таблиц. Запрос имеет вид

SELECT description, Code, (val1+sum2) as sum1,val1,(sum3+val7+val8 + val9) as sum2,(val2+val3+val4+val5+val6) as sum3,val2,val3,val4,val5,val6,val7,val8,val9 FROM codes, S57
WHERE dtCounter = :dtIndex and codes.acccounter = :nmIndex and codes.ccounter=S57.ccounter
ORDER BY code


При изменении значения получаю ошибку EOleException с сообщением "Insufficient key column information for updating or refreshing". А сразу следом - EDatabseError с таким же сообщением.
Поискал в мсдн - не открываются страницы :)

Что это значит и как с этим бороться?


 
Palladin ©   (2008-04-18 12:46) [1]

Code это типа PK ?


 
umbra ©   (2008-04-18 13:02) [2]

нет, первичные ключи там ccounter и acccounter


 
Johnmen ©   (2008-04-18 13:05) [3]

Почему их нет в запросе?


 
umbra ©   (2008-04-18 13:06) [4]

но acccounter - это ключ третьей таблицы, списка отчетов
а ccounter - пк таблицы codes


 
umbra ©   (2008-04-18 13:08) [5]


> Почему их нет в запросе?
>

они есть в WHERE. или должны быть еще где-то?
в самом аксесе этот запрос ведет себя нормально, все редактируется без проблем


 
Johnmen ©   (2008-04-18 13:08) [6]

Почему ключевого поля нет в запросе?


 
Johnmen ©   (2008-04-18 13:09) [7]

Почему ключевого поля нет в запросе среди отбираемых полей?


 
umbra ©   (2008-04-18 13:13) [8]


> Почему ключевого поля нет в запросе среди отбираемых полей?

их там нет потому, что в гриде они не нужны :)
я просто профан в этом. они обязательно должны там быть? и ошибка именно из-за того, что их нет?


 
Johnmen ©   (2008-04-18 13:19) [9]

Эксперимент критерий истины (c)


 
Anatoly Podgoretsky ©   (2008-04-18 13:22) [10]

Не понял, что же ты собираешься изменять в наборе при неодназначности с полями и отсутствием ключевых полей?
Но все равно, как прикажешь делить сумму val1+sum2, поровную,  в пропорции 1 к 3
Кроме того изменение делается с помощью UPDATE


 
Anatoly Podgoretsky ©   (2008-04-18 13:22) [11]


> их там нет потому, что в гриде они не нужны :)

А грид то тут причем?


 
Kolan ©   (2008-04-18 13:23) [12]

> их там нет потому, что в гриде они не нужны :)
> я просто профан в этом. они обязательно должны там быть?
> и ошибка именно из-за того, что их нет?

В запросе на выборку не обязательно. А вот как ты апдейтиш хз.
Но имхо лучьше вытащи и ключи (чтобы небыло их видно у TField есть сотв. свойство), они могут понадобится.


 
sniknik ©   (2008-04-18 13:29) [13]

при отсутствии ключа, и явного указания, запрос на обновление в условие получает сумму всех полей (кроме мемо, блоб), а там у тебя суммы... т.е. неудивительно, вот если бы он по ним нашел, что обновлять это было бы чудо.

указать обновление по ключу
Properties["Update Criteria"].Value:= adCriteriaKey;
и какую таблицу
Properties["Unique Table"].Value:= ...
причем, наверняка не будет работать если при обледенении запись "размножится".


 
umbra ©   (2008-04-18 13:34) [14]


> Эксперимент критерий истины (c)


эксперимент показал, что добавление пк обеих таблиц помогает :)
Спасибо!

А почему так? где об этом можно почитать?


 
umbra ©   (2008-04-18 13:38) [15]


> А грид то тут причем?
>

при том, что результат запроса выводится в грид :)


> Но все равно, как прикажешь делить сумму val1+sum2, поровную,
>   в пропорции 1 к 3

всячески отбивался от полей-сумм, но заказчики без них не могут :(


 
Johnmen ©   (2008-04-18 13:43) [16]


> umbra ©   (18.04.08 13:38) [15]
> всячески отбивался от полей-сумм, но заказчики без них не могут :(

Что, прям так и говорят: "Чтобы в программе были поля-суммы!!!"?

ЗЫ
Настоятельно рекомендую почитать базовую литературу по программированию баз данных. И не с какими заказчиками не общаться, пока не научишься. Если, конечно, "заказчики" это не твой дружбан :))


 
Kolan ©   (2008-04-18 13:47) [17]

> А почему так? где об этом можно почитать?

Может почитать [13] ?


 
umbra ©   (2008-04-18 13:51) [18]


> сли, конечно, "заказчики" это не твой дружбан :))
>

заказчики - это отдел нашей конторы. не общаться с ними не получится :(


 
Anatoly Podgoretsky ©   (2008-04-18 14:24) [19]

> umbra  (18.04.2008 13:38:15)  [15]

Никакие поля суммы не мешают.
Делай ввод в форме и хоть по сотне таблиц раскидывай свои данные. Запрос должен начинаться с ключевого слова UPDATE, а вставка с ключевого слова INSERT



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

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

Наверх




Память: 0.49 MB
Время: 0.047 c
2-1208929981
Джек874585
2008-04-23 09:53
2008.05.18
Юникод в Delphi


3-1197011406
Свой
2007-12-07 10:10
2008.05.18
Получение данных полсле запроса от TQuery


15-1207295964
Kolan
2008-04-04 11:59
2008.05.18
Посоветуйте IDE для руби.


8-1180440644
borodaj
2007-05-29 16:10
2008.05.18
попиксельное сравнение изображений


2-1208631399
Rasputin
2008-04-19 22:56
2008.05.18
поиск окна и родительских окон





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский