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

Вниз

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

Наверх





Память: 0.51 MB
Время: 0.006 c
2-1256319619
Заглянувший
2009-10-23 21:40
2009.12.13
Неповтояющийся RANDOM


3-1231178917
mahab
2009-01-05 21:08
2009.12.13
перемещение файлов БД


2-1256531968
Danuve
2009-10-26 07:39
2009.12.13
Создание калькулятора


2-1256109863
RWolf
2009-10-21 11:24
2009.12.13
AnsiExtractQuotedStr(PChar(str), ...)


2-1256661352
@!!ex
2009-10-27 19:35
2009.12.13
Как быстро заполнить память однотипными значениями.





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