![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
При попытке редактировать запрос получаю сообщение. [D7, MS Access+ADO]
Fynjy © (2004-07-30 07:14:00)Есть проблемка! При попытке редактировать запрос получаю сообщение: "Key column information is insufficient or incorrect. Too many rows were affected by update." Причем это возникает при попытке редактировать записи, которые совпадают с другими записями.Причем здесь ключ?
sniknik (2004-08-11 23:22:00) [1]> Если сервер дает ошибку - пусть будет добр отменить операцию
пожалуйста, нарисуй алгоритм, ... напомню ключа нет (!!!)
поля в гриде
f1
-
a
a
b
a
b
редактируем 2-ю строку, сервер сделал апдейт и вернул что под изменение попало больше чем одна запись, выдало передупреждение, меняли к примеру a на b... получилось
f1
-
b
b
b
b
b
давай, делай откат.
(частный случай, когда ключь есть в базе но не в запросе не рассматриваем, т.к. нужен унивесальный и унифицированный метод)
а лучше поверь, сделано все наилутшем из возможных методов, и учи и используй то что есть а не придумывай как оно бы было если бы...
> Все-таки мне кажется здесь недоработка
перекрестись, может перестанет. ;о))
сергей1 (2004-08-11 21:44:00) [2]странно то, что при выдаче ошибки действие выполняется. Если сервер дает ошибку - пусть будет добр отменить операцию, если проводит операцию - не надо показывать никаких ошибок. Такая ситуация нелогична. Ведь проблема действительно есть - с одной стороны запрос на update законен и должен быть выполнен без проблем, с другой - когда ты редактируешь грид или dbedit ты имеешь в виду совершенно конкретную строку. Все-таки мне кажется здесь недоработка
sniknik (2004-08-11 10:52:00) [3]> это странно, может глюк ?
какая же это странность? в запросе update явно указывается where f1=a
условие совпадает - апдейтится. а в случае редактирования в гриде попытка обновления 1-й записи! с неопределенным(и неопределяемым) условием, вот и глюк/предупреждение.
все логично, и по другому не получится.
сергей1 (2004-08-11 09:07:00) [4]ответ же уже был, даже если таблица с ключем :
p_key | f1
-----------
1 | a
2 | a
3 | b
4 | a
при попытке редактирования запроса типа :
select f1 from Table1 where f1 = 'a'
будет вываливаться эта ошибка, потому-что сервак не в состоянии определить, какую из трех строк ты имеешь в виду.
Правда есть такой прикол, что, при попытке update'ить этот запрос, после появления этой ошибки, все записи , где f1 = 'a' все равно меняются, это странно, может глюк ?
(D7, MS SQL)
sniknik (2004-08-11 07:58:00) [5]> Но первичный ключ в таблице есть!
а в запросе? или там только выбранные поля? + menart © (11.08.04 07:45) [6]. ???
menart (2004-08-11 07:45:00) [6]
> I need help (11.08.04 02:11) [5]
> Помогите, пожалуйста. При удалении записи получаю такую
> же ошибку (Key column insufficent ...). Но первичный ключ
> в таблице есть! В чём тогда проблема?
Чем пользуешься (СУБД+технология доступа+(таблица или запрос))?
I need help (2004-08-11 02:11:00) [7]Помогите, пожалуйста. При удалении записи получаю такую же ошибку (Key column insufficent ...). Но первичный ключ в таблице есть! В чём тогда проблема?
сергей1 (2004-08-03 19:36:00) [8]такой косяк может появиться, если ты редактируешь запрос типа :
select distinct * from Table1
если таблица содержит что-то типа :
______
value1
value1
value2
value3
то результат получится :
______
value1
value2
value3
тогда, при попытке изменить value1 на что-то другое, откуда сервак может знать какую строчку ты имеешьв виду в оригинальной таблице - первую или вторую ?
sniknik (2004-07-30 08:53:00) [9]ну если бы ты знал внутреннюю структуру, ты бы тоже мог, а так тебе ждя общения с базой есть внешний "управленец" SQL, а у него вся идеология даотупа к записям на ключах построена.
кстати у аксеса другие заморочки зато (по той же причине по которой он мет редактировать), попробуй там удалить часть таблицы, солидную такую часть гдето в 15 (лучше больше) тыс. записей. думаю он тебе скажет что букмарков ему не хватает (поиши инфу про них и сам сможеш так же, только не в дельфевском хелпе ;).
Fynjy (2004-07-30 08:15:00) [10]
> sniknik
А как же сам MS Acces справляется без него?
sniknik (2004-07-30 08:12:00) [11]должен быть.