Текущий архив: 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.053 c