ADO.Recordset проблемы с методами AddNew, Edit, Delete. - VB
Формулировка задачи:
Доброе утро!
Есть БД Oracle 9i к которой подключаюсь через ADO. И для добавления, редактирования, удаления записей решил воспользоваться методами объекта ADO.Recordset AddNew, Edit, Delete.
С добавлением новых записей проблем нет,а вот при редактировании и удалении из рекордсета данных вылетает по ошибке, в том случае если рекордсет создан на основе более 1 таблицы, посредством инструкций inner join. Неужели методы обновления и удаления не будут работать для таких рекордсетов? (В DAO работало все, хоть десяток таблиц объедини, лишь бы это было внутреннее объединение)
Пример кода:
Dim rsDict As New ADODB.Recordset
Dim strSQL As String
adoCnn.ConnectionString = "Provider=MSDAORA;Password=1;User ID=1;Data Source=My"
adoCnn.Open
rsDict.CursorType = adOpenDynamic
rsDict.CursorLocation = adUseClient
rsDict.LockType = adLockPessimistic
strSQL = "select * from dBase a inner join dSpec b on a.rn_spec = b.rn"
rsDict.Open strSQL, adoCnn
rsDict.Delete adAffectCurrent
rsDict.Close
Run-time error '-2147467259 (80004005)':
ORA-01410: ROWID неверен
Есть БД Oracle 9i к которой подключаюсь через ADO. И для добавления, редактирования, удаления записей решил воспользоваться методами объекта ADO.Recordset AddNew, Edit, Delete.
С добавлением новых записей проблем нет,а вот при редактировании и удалении из рекордсета данных вылетает по ошибке, в том случае если рекордсет создан на основе более 1 таблицы, посредством инструкций inner join. Неужели методы обновления и удаления не будут работать для таких рекордсетов? (В DAO работало все, хоть десяток таблиц объедини, лишь бы это было внутреннее объединение)
Пример кода:
Dim rsDict As New ADODB.Recordset
Dim strSQL As String
adoCnn.ConnectionString = "Provider=MSDAORA;Password=1;User ID=1;Data Source=My"
adoCnn.Open
rsDict.CursorType = adOpenDynamic
rsDict.CursorLocation = adUseClient
rsDict.LockType = adLockPessimistic
strSQL = "select * from dBase a inner join dSpec b on a.rn_spec = b.rn"
rsDict.Open strSQL, adoCnn
rsDict.Delete adAffectCurrent
rsDict.Close
Run-time error '-2147467259 (80004005)':
ORA-01410: ROWID неверен
Решение задачи: «ADO.Recordset проблемы с методами AddNew, Edit, Delete.»
textual
Листинг программы
<font color="blue">select</font> * from dBase a inner join dSpec b <font color="blue">on</font> a.rn_spec = b.rn
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д