Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
при работе с базой Access ,в VB6 ,в эллементе DataGrid отображена иформация из запроса один - ко - многим .Запрос обновляемый это проверено . Но после внесения изменений в ячейках DataGrid и попытке сделать Update рекордсета возникает ошибка : "Insufficient key column information for updating or refreshing".Пожалуйста подскажите как сохранить изменения в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 11:21 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
Среди списка полей должны присутствовать первичные ключи всех участвующих в запросе таблиц. Но это не гарантирует. Обновлять представления - порочный и тернистый путь, его надо избегать любыми доступными способами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 12:24 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
"Обновлять представления - порочный и тернистый путь ....." -тогда пожалуйста укажите другой путь сохранения внесённых пользователем изменений в БД ?. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 12:37 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
rs.Properties("Unique Table")="ИмяТаблицы" правда непонятно куды это в грид пихать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 12:40 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
автор"Обновлять представления - порочный и тернистый путь ....." -тогда пожалуйста укажите другой путь сохранения внесённых пользователем изменений в БД ?. Если пользоваться автоматическим построением запросов на изменение, любезно предоставленным ADO, то запрос, формирующий набор данных, должен быть по одной таблице и быть крайне простым, чтобы ADO смогло сгенерировать правильные запросы на обновления. Иначе - subj. Если запрос, формирующий набор данных, сложный, то надо генерировать запросы на обновление ручками, а не полагаться на автоматику, которая, как известно, работает правильно только в ограниченном диапазоне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2003, 15:46 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
Если работаешь с True DBGrid, то замечу что грид надо рекверить после изменения данных строки, а точнее не грид, а рекордсет на основе которого он открыт. Тогда данные измененные в одной ячейке изменятся и в других записях которые на эти данные ссылаются. Но с этим реквери связан один трабл - скроллинг грида уезжает на начальные позиции и работать так очень геморно, каждый раз нужно обратно крутить скроллинг, а точно это сделать не получается и пожтому все уезжает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 09:18 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
Вот что делать если к гриду привязана временная таблица? Та же ошибка выдается! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 09:19 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
А первичный ключ есть на таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2004, 10:47 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
Вот как создается временная таблица из клиента: CREATE TABLE [dbo].[#client] ( [Id_Client] [int] IDENTITY (1, 1) NOT NULL , [Name] [varchar] (500) COLLATE Cyrillic_General_CI_AS NULL ) ON [PRIMARY] ALTER TABLE [dbo].[#client] WITH NOCHECK ADD CONSTRAINT [PK_#client] PRIMARY KEY CLUSTERED ([Id_Client]) ON [PRIMARY] Вроде ключ есть. Фигня в том что если зайти под админом - грид дает редактировать данные, а если простым юзером - выскакивает вышеозаченная ошибка. Где грабли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2004, 15:49 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
[dbo] попробуй убрать, и #сlient указывай без квадратных скобок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2004, 17:24 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
Вот, самый надежный путь Не знаю подойдет ли ) Использовать обьект ADODB.Connection и его метод .Execute Например: ADOCon = CREATEOBJECT("ADODB.Connection") ADOCon.ConnectionString="Driver={Microsoft Visual FoxPro Driver}; SourceType=DBF; SourceDB=D:\maykov" ADOCon.Open ADOCon.Execute("INSERT INTO buffer(NUMDOC) Values " 212354") Естественно SQL запрос может быть и на обновление, и на удаление ) А можно и команду передать :) например: ADOCon.Execute("SET DELETE OFF") или ADOCon.Execute("SET NULL ON") Может вам и другое надо, но свести к этому програмно всегда можно А мой вопрос так и висит.... Как в данном случае снять пометки на удаление ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 06:42 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
Dankov Причем здесь [dbo] и квадратные скобки? Говорю же под админом такая структура отрабатывает отлично. Почему не редактируется временная таблица из грида вижу две причины: 1) Предположительно у админа права на Update таблиц есть по умолчанию, а у юзеров только на селект, но как повесить разрешение на Uрdate временных таблиц если их не видно в tempdb? 2) Под юзером по какой-то причине при создании временной таблицы не создается ключ. Как быть-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 08:29 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
авторПричем здесь [dbo] и квадратные скобки? Говорю же под админом такая структура отрабатывает отлично. Почему не редактируется временная таблица из грида вижу две причины: 1) Предположительно у админа права на Update таблиц есть по умолчанию, а у юзеров только на селект, но как повесить разрешение на Uрdate временных таблиц если их не видно в tempdb? 2) Под юзером по какой-то причине при создании временной таблицы не создается ключ. Как быть-то? При том, что дельфи генерит запросы на изменения, и подставляет там в качестве owner неизвестно что (под админом подставится dbo и проблем не будет). Квадратные скобки - потому что это неспецифично для временных таблиц, и таблица может вовсе не стать временной - моё предположение, не более того. Вообщем, открой профайлер и посмотри какие запросы дельфи шлет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 10:17 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
Dankov Какое дельфи? Очнись, мы о VB говорим и находимся в разделе VB :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 12:31 |
|
||
|
ошибка при (Update) ADO - рекордсета
|
|||
|---|---|---|---|
|
#18+
да, перепутал, сорри. Но сути это меняет, ADO оно в Африке - ADO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 16:21 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32448600&tid=2169910]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 214ms |
| total: | 322ms |

| 0 / 0 |
