powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFPOLEDB.1
3 сообщений из 3, страница 1 из 1
VFPOLEDB.1
    #37958111
proko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создаю соединение
obj_RDS =CREATEOBJECT("ADODB.Connection")
rs=CREATEOBJECT("ADODB.Recordset")
obj_RDS.Open('Provider=VFPOLEDB.1;Data Source=C:\dan_dogovor\contrag\conosn.dbf;Persist Security Info=False')
или так
obj_RDS.Open('Provider=VFPOLEDB.1;Data Source=C:\dan_dogovor\contrag\conosn.dbf;User Id=sa;Mode=ReadWrite;Password="";Collating Sequence=MACHINE')

чтение данных - нормально
запись:

rs.Close
rs.Open ("Select * from conosn", obj_RDS, 1, 3)
rs.AddNew
rs.Fields("osnnd").value=thisform.combo1.Value
.........................................
rs.Update
при записи возникает сообщение:
recordset не поддерживает обновление. это связано с ограничением поставщика или выбранным типом блоктровки.
В чем дело?
...
Рейтинг: 0 / 0
VFPOLEDB.1
    #37958478
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это связано с выбранным способом наполнения RecordSet. Ведь подобный синтаксис не только обновляет данные RecordSet, но еще и пытается обновить данные в таблице-источнике. А в данном случае - это невозможно.

Модификация RecordSet в принципе возможна только если его свойство LockType больше 1. Вот и проверьте

Код: sql
1.
2.
rs.Open(...)
?rs.LockType 


Значение 1 говорит о том, что RecordSet находится в состоянии Read-Only. Несмотря на то, что Вы явно указали значение 3 в методе rs.Open()

PS: Кстати, у Вас ошибка должна была выскакивать уже на методе rs.AddNew. Что-то Вы с обработчиком ошибок намудрили...
...
Рейтинг: 0 / 0
VFPOLEDB.1
    #37958512
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выполнил тот же самый код, но с другим провайдером

Код: sql
1.
obj_RDS.ConnectionString = "driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=C:\dan_dogovor\contrag\;"


В этом случае RecordSet создается модифицируемым, но, первая же команда на добавление новой записи rs.AddNew просто уничтожает результаты выборки. Строку-то создает, но она остается единственной строкой всего RecordSet

Так что, VFPOLEDB.1 просто исправил ошибку старых драйверов.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFPOLEDB.1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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