powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
12 сообщений из 12, страница 1 из 1
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008285
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите,пожалуйста кто знает .

Используется MSSQL 2000,ADO 2.6
MyRecordset.CursorType=adOpenStatic
MyRecordset.Source=
SELECT T1.ID , T1.Name , T2.ID , T2.Name
FROM OneTable T1, OneTable T2
WHERE T1.ID=1 AND T2.ID=1

При UpdateBatch получаю такую вот ошибку
//Row cannot be located for updating. Some values may have been changed since it was last read.//

Проблема возникает только в случае , если в SQL запросе используется одна таблица ,
с различными псевдонимами.

Как обойти эту ошибку? Или каким наиболее простым способом
можно обновить таблицу ? МОжет есть какой нибудь трюк с рекордсетом ?
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008393
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже бился над этой проблемой. Пока безуспешно. А скорее всего, даже не пока .
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008424
Andrey+azz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SP1 для MDAC 2.6 положения не исправил. Ошибк , правда, стал выдавать другую :
"Column name 'my_column' appears more than once in the result column list."

Некое подобие выхода из этой ситуации нашел - В запросе используется таблица и view к этой же таблице.
Тогда все проходит нормально
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008427
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странный сорсе, может лучше запрос немного изменить и тогда все ОК будет?
Например
MyRecordset.Source=
SELECT T1.ID , T1.Name , T2.ID , T2.Name
FROM OneTable T1, OneTable T2
WHERE T1.ID=T2.ID and T1.ID = 1

Кстати, а зачем такой экзотический запрос?
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008446
Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SORRY за случайную ошибку , хотел написать
что-то вроде // WHERE T1.ID=1 AND T2.ID=2 //

SELECT T1.ID , T1.Name , T2.ID , T2.Name
FROM OneTable T1, OneTable T2
WHERE T1.ID=1 AND T2.ID=2
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008452
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фиг с ней, с ошибкой, Вы объясните, зачем надо таблицу соединять с собой же
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008460
Andrey_azz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OK . Абстрактный пример . Есть три таблицы :
РЕЗУЛЬТАТ<-ДЕЙСТВИЕ->ОПИСАНИЕ_ДЕЙСТВИЯ .
Ссылки отобразил стрелками

Теперь отображаем РЕЗУЛЬТАТы с входящими в него некоторыми действиями
SELECT РЕЗУЛЬТАТ.ID , РЕЗУЛЬТАТ.Name , ДЕЙСТВИЕ1.ID , ДЕЙСТВИЕ1.Date , ДЕЙСТВИЕ2.ID , ДЕЙСТВИЕ2.Date
FROM РЕЗУЛЬТАТ , ДЕЙСТВИЕ ДЕЙСТВИЕ1 , ДЕЙСТВИЕ ДЕЙСТВИЕ2
WHRERE ДЕЙСТВИЕ1.ID = 'Start' , ДЕЙСТВИЕ2.ID = 'End'
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008463
Andrey_azz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sorry , опять забыл

WHRERE ДЕЙСТВИЕ1.ID = 'Start' , ДЕЙСТВИЕ2.ID = 'End'
AND ДЕЙСТВИЕ1.РезультатИд=РЕЗУЛЬТАТ.ID
AND ДЕЙСТВИЕ2.РезультатИд=РЕЗУЛЬТАТ.ID
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008464
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример действительно абстрактный, так как ничего не объяснил, но восхищение вызвал
Дважды декартово произведение Результат на Действие - это круто правда смыла запроса я все равно не понял.
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008483
Genady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вчера наверное одновременно запостили, поэтому не увидел Вашей поправки
WHRERE ДЕЙСТВИЕ1.ID = 'Start' , ДЕЙСТВИЕ2.ID = 'End'
AND ДЕЙСТВИЕ1.РезультатИд=РЕЗУЛЬТАТ.ID
AND ДЕЙСТВИЕ2.РезультатИд=РЕЗУЛЬТАТ.ID

По этому уловию вернется пустой рекордест, Вы дважды соединили Действие и Результат, по одному и тому же условию поэтому ДЕЙСТВИЕ1.ID = ДЕЙСТВИЕ2.ID
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008521
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй создать VIEW с опцией with VIEW_METADATA плюс instead-триггеры, преобразующие операции вставки/модификации/удаления записей к операциям над соответствующей таблицей. Без этой опции на клиент передаются сведения о всех таблицах, на котороых основан запрос, и операции вставки/модификации/удаления пытаются произвестись во всех участвующих в т запросе таблицах. Поскольку запрос основан на одной таблице дважды, в ней все операции пытаются выполняться дважды.
...
Рейтинг: 0 / 0
UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
    #32008684
Andrey_azz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Genady : Sorry за ошибки с моей стороны ,
хотел написать что то вроде :

WHERE ДЕЙСТВИЕ1.ОПИСАНИЕ_ДЕЙСТВИЯ_ID = 'Start' , ДЕЙСТВИЕ2.ОПИСАНИЕ_ДЕЙСТВИЯ_ID = 'End'
AND ДЕЙСТВИЕ1.РезультатИд=РЕЗУЛЬТАТ.ID
AND ДЕЙСТВИЕ2.РезультатИд=РЕЗУЛЬТАТ.ID

Где ОПИСАНИЕ_ДЕЙСТВИЯ_ID - FK к таблице ОПИСАНИЕ_ДЕЙСТВИЯ

To Garya : Спасибо за совет , правда еще не пробовал ,
т.к. больше двух псевдонимов пока не использую ,
т.е. пока могу обойтись одним вьюером и таблицей .
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / UpdateBatch при обновл. SQL запроса сост из одной таблицы с разл псевдонимами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]