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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
1-1092728227
Makhanev A.S.
2004-08-17 11:37
2004.09.05
Dsable hints in Delphi IDE Code Editor


10-1034843956
rex
2002-10-17 12:39
2004.09.05
Как отработать удаленную процедуру в тонком клиенте ?


14-1091612846
Ricks
2004-08-04 13:47
2004.09.05
Анкета.....


1-1093113173
Alek_1
2004-08-21 22:32
2004.09.05
Запуск приложения с параметрами


1-1093162496
Islander
2004-08-22 12:14
2004.09.05
Как передвинуть клавиатурный фокус в ListView?





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