Текущий архив: 2009.12.13;
Скачать: CL | DM;
ВнизADO не удается найти строку для обновления Найти похожие ветки
← →
Andrewtitoff © (2009-10-22 12:03) [0]Здравствуйте уважаемые специалисты, я знаю что данная тема доднималась уже не однократно, но к сожалению все варианты решения, которые я нашел на форуме у меня не работают... =(((
Значит ситуация такая:
Имеется БД Access из нескольких таблиц(реально используются только 2), база не моя и используется другими пользователями, поэтому зменить ее структуру я немогу...
При добовлении записи запись добавляется, но повторно не редактируется - вылетает с ошибкой "не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения"..., после повторного открытия базы все замечательно редактируется, при чем любая запись без проблем многократно редактируется без каких либо ошибок...
Так-же после создания новой записи при попытке обновления появляется ошибка: "Недостаточно сведения ключевого поля для обновления", хотя я следуя советам в IndexFieldNames вписал значение поля
← →
Anatoly Podgoretsky © (2009-10-22 12:14) [1]> Andrewtitoff (22.10.2009 12:03:00) [0]
Так как насчет ключевого то поля, не молчи.
← →
Andrewtitoff © (2009-10-22 12:59) [2]2 Anatoly Podgoretsky
А я думал что это о есть IndexFieldNames... =(((
А как узнать?, просто БД написана не мной и ничего влияющего на ее работу я менять не могу т.к. ею пользуются другие пользователи про помощи оболочки написанной на VB, встроенном в Ассеss....
Единственное я знаю, что эта таблица связанна с другой полем "Brigade", но там есть и другие таблицы, и хоть большинство из них не используется - но удалить я их немогу и как они связанны тож незнаю.... =(((
Но при редактировании существующих записей что при помощи TDBGrid, что программно никаких ошибок нет...
При чем когда строка создается - то пустая она не сохраняется, но при создании единократно я могу сколько угодно заполнять и редактироват любые поля, покак не перешел на другую строку и при этом никаких ошибок и все сохраняется, но после перехода на другую строку к этой я вернуться для редактирования уже немогу т.к. все заканчивается ошибкой...
← →
Медвежонок Пятачок © (2009-10-22 13:01) [3]после инсерта переоткрывай датасет
← →
Amoeba © (2009-10-22 13:07) [4]
> после создания новой записи при попытке обновления появляется
> ошибка: "Недостаточно сведения ключевого поля для обновления"
Читать цикл статей "Немного об использовании ADO в Delphi":
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=408
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=413
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=420
← →
sniknik © (2009-10-22 13:09) [5]> "Недостаточно сведения ключевого поля для обновления",
нет ключа в базе, или запросе
> хотя я следуя советам в IndexFieldNames вписал значение поля
это ты создал локальный индекс, в рекордсете, в базе от этого ни ключь ни такой же индекс не появится.
> "не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения"
если нет ключа (и не установлен параметр обновлять по ключу (установить который советы НАВЕРНЯКА были, сам раз сто такой давал)), то обновление производится по остальным полям (меняемый значениям...), т.е. изменили один раз данные найдет по старым, изменили еще раз/в другом месте, а они уже с базой не сходятся... вот и ошибка.
> и ничего влияющего на ее работу я менять не могу
скорее всего не надо, не верю что нет ключа...
← →
Anatoly Podgoretsky © (2009-10-22 13:35) [6]> Andrewtitoff (22.10.2009 12:59:02) [2]
Проверить конструктором объекта, есть ли ключевое поле, если нет, то сделать, лучше последним по порядку полем, вдруг код дурной, это не помешает работе других программ, ну и кроме того всегда можно вернуться назад. И это поле должно фигурировать в запросе.
← →
Andrewtitoff © (2009-10-22 13:41) [7]2 Медвежонок Пятачок
Я ADOTable использую, но бумаю суть от этого не меняется, а как ее аереоткрыть?, Refresh и UpdateRecord вываливаются с ошибкой, ADOTable4.Properties["Update Resync"].Value:=adResyncAll; - непомогает..., да еще кстати при попытке установить CursorLocation в clUseServer выдает ошибку "Текущий проводник не поддерживает необходимые интерфейсы для сортировки и фильтрации"....
2 sniknik
Я незнаю есть ключ или нет, а как можно это узнать?
← →
Andrewtitoff © (2009-10-22 13:48) [8]2 Anatoly Podgoretsky
Открыл таблицу конструктором - нету там ключевого поля, попятался назначить первое (т.к. там только оно одно имеет уникальные значения, все остальные повторяются) - не сохраняет, пишет "Продолжению "Microsoft Office Access" не удается сохранить изменения свойств для связанных таблиц" и ничего не сохраняет... =(((
← →
Andrewtitoff © (2009-10-22 13:51) [9]2 Anatoly Podgoretsky
При чем у других связанных таблиц у большинства тоже нет ключевых полей, а у одной целых два...
← →
Медвежонок Пятачок © (2009-10-22 14:02) [10]да хоть сто ключей и триста первичных.
в записи которая только что добавлена в этом самом ключевом поле нет еще значения, так как оно рождается не в датасете.
а как ее аереоткрыть?,
Хорошая шутка. Но для петросяна а не здесь.
← →
Anatoly Podgoretsky © (2009-10-22 14:02) [11]> Andrewtitoff (22.10.2009 13:51:09) [9]
Там же в Акцесс можно посмотреть связи и схему, не спрашивай как я с ним не работаю.
Но я советовал, если поля нет, то создать новое, лучше автоинктиментное и забыть про него.
← →
Andrewtitoff © (2009-10-22 14:21) [12]2 Anatoly Podgoretsky
Связи почему то не отображает, толи их нет, то ли я не знаю... =(((
Выбирал и "Отобразить прямые связи" и "отобразить все связи"
при чем почему то в схеме данных показывает только две таблицы, которые в принципе только и используются...
← →
Andrewtitoff © (2009-10-22 14:25) [13]2 Anatoly Podgoretsky
Поля создавать тоже не хочет, та же ошибка...
"Продолжению "Microsoft Office Access" не удается сохранить изменения свойств для связанных таблиц"
← →
Anatoly Podgoretsky © (2009-10-22 14:31) [14]> Andrewtitoff (22.10.2009 14:21:12) [12]
Не обязаны, поскольку графически схема не создана и не полная.
← →
Anatoly Podgoretsky © (2009-10-22 14:33) [15]> Andrewtitoff (22.10.2009 14:25:13) [13]
Я акцесс не знаю, но возможно он так настроен, что не каждый может менять.
Но тогда можно попробовать сделать это программно в Дельфи, ALTER TABLE
← →
Плохиш © (2009-10-22 14:57) [16]Такая прикольно-философская ветка ни о чём :-)
> Andrewtitoff © (22.10.09 13:41) [7]
>
> 2 Медвежонок Пятачок
> Я ADOTable использую, но бумаю
Программиста нанять не пробовали.
← →
Andrewtitoff © (2009-10-22 15:12) [17]2 Плохиш
Спасибо за помощь и поддержку....
2 All
Да, забыл сказать что база формата Access 97, я читал что из за этого тоже проблемы бывают, а можно ее как то перевести в более свежий формат что бы это не повлияло на работу других пользователей?
← →
Amoeba © (2009-10-22 16:04) [18]
> база формата Access 97, я читал что из за этого тоже проблемы
> бывают, а можно ее как то перевести в более свежий формат
> что бы это не повлияло на работу других пользователей?
>
Можно с помощью Access более свежей версии. Повлиять на работу других пользователей не должно.
← →
Anatoly Podgoretsky © (2009-10-22 16:10) [19]> Плохиш (22.10.2009 14:57:16) [16]
Что бы он бумал.
← →
Anatoly Podgoretsky © (2009-10-22 16:11) [20]> Andrewtitoff (22.10.2009 15:12:17) [17]
А с чем работают другие пользователи?
← →
Anatoly Podgoretsky © (2009-10-22 16:15) [21]> Amoeba (22.10.2009 16:04:18) [18]
Завязывай с волюнтаризмом.
← →
Andrewtitoff © (2009-10-22 16:45) [22]2 Amoeba
Уже преобразовал, вроде все нормально, там вообще бардак, локальная версия одного формата была, серверная другого...
2 Anatoly Podgoretsky
Я же писал "... ею пользуются другие пользователи про помощи оболочки написанной на VB, встроенном в Ассеss...."
А я вроде понял, что бы назначать ключевые поля нужно открывать напрямую серверную часть - тогда вроде нормально, сейчас попробую...
← →
Anatoly Podgoretsky © (2009-10-22 16:54) [23]Интересует не "Я же писал", а точное указание версия.
← →
Andrewtitoff © (2009-10-22 17:15) [24]2 Anatoly Podgoretsky
А кто ее знает, наверное изначально в 97, точно уже никто не знает т.к. это было давно и кто эту базу писал уже давно пропал..., там вообще бардак, этой базой чееловек 20 пользуется и у кого какие версии локальной базы никто не проверял, но я уверен что они разные...
Страницы: 1 вся ветка
Текущий архив: 2009.12.13;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.007 c