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

Вниз

При попытке редактировать запрос получаю сообщение.   Найти похожие ветки 

 
Fynjy   (2004-07-30 07:14) [0]

Есть проблемка! При попытке редактировать запрос получаю сообщение: "Key column information is insufficient or incorrect. Too many rows were affected by update." Причем это возникает при попытке редактировать записи, которые совпадают с другими записями.Причем здесь ключ?


 
sniknik ©   (2004-07-30 08:12) [1]

должен быть.


 
Fynjy   (2004-07-30 08:15) [2]


> sniknik


А как же сам MS Acces справляется без него?


 
sniknik ©   (2004-07-30 08:53) [3]

ну если бы ты знал внутреннюю структуру, ты бы тоже мог, а так тебе ждя общения с базой есть внешний "управленец" SQL, а у него вся идеология даотупа к записям на ключах построена.

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


 
сергей1   (2004-08-03 19:36) [4]

такой косяк может появиться, если ты редактируешь запрос типа :

select distinct * from Table1

если таблица содержит что-то типа :
______
value1
value1
value2
value3

то результат получится :
______
value1
value2
value3

тогда, при попытке изменить value1 на что-то другое, откуда сервак может знать какую строчку ты имеешьв виду в оригинальной таблице - первую или вторую ?


 
I need help   (2004-08-11 02:11) [5]

Помогите, пожалуйста. При удалении записи получаю такую же ошибку (Key column insufficent ...). Но первичный ключ в таблице есть! В чём тогда проблема?


 
menart ©   (2004-08-11 07:45) [6]


> I need help   (11.08.04 02:11) [5]
> Помогите, пожалуйста. При удалении записи получаю такую
> же ошибку (Key column insufficent ...). Но первичный ключ
> в таблице есть! В чём тогда проблема?


Чем пользуешься (СУБД+технология доступа+(таблица или запрос))?


 
sniknik ©   (2004-08-11 07:58) [7]

> Но первичный ключ в таблице есть!
а в запросе? или там только выбранные поля? + menart ©   (11.08.04 07:45) [6]. ???


 
сергей1   (2004-08-11 09:07) [8]

ответ же уже был, даже если таблица с ключем :

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 10:52) [9]

> это странно, может глюк ?
какая же это странность? в запросе update явно указывается where f1=a
условие совпадает - апдейтится. а в случае редактирования в гриде попытка обновления 1-й записи! с неопределенным(и неопределяемым) условием, вот и глюк/предупреждение.
все логично, и по другому не получится.


 
сергей1   (2004-08-11 21:44) [10]

странно то, что при выдаче ошибки действие выполняется. Если сервер дает ошибку - пусть будет добр отменить операцию, если проводит операцию - не надо показывать никаких ошибок. Такая ситуация нелогична. Ведь проблема действительно есть - с одной стороны запрос на update законен и должен быть выполнен без проблем, с другой - когда ты редактируешь грид или dbedit ты имеешь в виду совершенно конкретную строку. Все-таки мне кажется здесь недоработка


 
sniknik ©   (2004-08-11 23:22) [11]

> Если сервер дает ошибку - пусть будет добр отменить операцию
пожалуйста, нарисуй алгоритм, ... напомню ключа нет (!!!)
поля в гриде
f1
-
a
a
b
a
b

редактируем 2-ю строку, сервер сделал апдейт и вернул что под изменение попало больше чем одна запись, выдало передупреждение, меняли к примеру a на b... получилось
f1
-
b
b
b
b
b

давай, делай откат.
(частный случай, когда ключь есть в базе но не в запросе не рассматриваем, т.к. нужен унивесальный и унифицированный метод)

а лучше поверь, сделано все наилутшем из возможных методов, и учи и используй то что есть а не придумывай как оно бы было если бы...

> Все-таки мне кажется здесь недоработка
перекрестись, может перестанет. ;о))



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

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

Наверх




Память: 0.5 MB
Время: 0.059 c
3-1092293882
Sergo_NIG
2004-08-12 10:58
2004.09.05
Как поместить изображение (*.bmp) в DBGrid


4-1090404745
AndreyKi
2004-07-21 14:12
2004.09.05
Путь к выделенному объекту


14-1092579197
Soft
2004-08-15 18:13
2004.09.05
Вирусы добрались до копира:)


1-1093152385
Fktrc
2004-08-22 09:26
2004.09.05
Пауза в TThread


1-1092734634
Aleksandr.
2004-08-17 13:23
2004.09.05
В очередной раз вопрос по окошку регистров ЦПУ.