powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Восстановление соединения с БД в DataEnvironment
11 сообщений из 11, страница 1 из 1
Восстановление соединения с БД в DataEnvironment
    #34410039
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Устанавливаю соединение с баззой данных таким способом:

Private Sub DataEnvironment_Initialize()
DataEnvironment1.Connection1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="BAZA.db;Persist Security Info=False;Jet OLEDB:Database Password=PASSWORD"
End Sub

Работаю с таблицами созданными в режиме дизайна:
rsCommand1; rsCommand2; rsCommand3

Далее по ходу программы требуется отключится, выполнить некие действия и подключится к базе данных.

Выполняю:
DataEnvironment1.Connection1.Close
DataEnvironment1.Connection1.Open (на этом этапе все ОК)

Далее обращаюсь к любой из таблиц:
DataEnvironment1.rsCommand1.Open (и тут возникает ошибка 3709)

Никак не могу понять почему! Как связать таблицы из кода? Почему при отключении теряется эта связь? Прошу Вашей помощи!
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34410328
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34410391
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. с програмным определением сурса

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
With DataEnvironment1
If .rsCommand1.State = adStateOpen Then .rsCommand1.Close
.rsCommand1.Open "ИмяТаблицы или запрос", .rsCommand1.ActiveConnection, adOpenStatic
If .rsCommand1.RecordCount >  0  Then
.rsCommand1.MoveFirst
Do Until .rsCommand1.EOF
    Debug.Print .rsCommand1.Fields( 0 ).Value
.rsCommand1.MoveNext
Loop
End If
End With
2. способ по готовому сурсу

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
With DataEnvironment1
If .rsCommand1.State = adStateOpen Then .rsCommand1.Close
.Command1
If .rsCommand1.RecordCount >  0  Then
.rsCommand1.MoveFirst
    Do Until .rsCommand1.EOF
        Debug.Print .rsCommand1.Fields( 0 ).Value
    .rsCommand1.MoveNext
    Loop
End If
End With
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34410396
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedorУстанавливаю соединение с баззой данных таким способом:

Private Sub DataEnvironment_Initialize()
DataEnvironment1.Connection1.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="BAZA.db;Persist Security Info=False;Jet OLEDB:Database Password=PASSWORD"
End Sub

Работаю с таблицами созданными в режиме дизайна:
rsCommand1; rsCommand2; rsCommand3

Далее по ходу программы требуется отключится, выполнить некие действия и подключится к базе данных.

Выполняю:
DataEnvironment1.Connection1.Close
DataEnvironment1.Connection1.Open (на этом этапе все ОК)

Далее обращаюсь к любой из таблиц:
DataEnvironment1.rsCommand1.Open (и тут возникает ошибка 3709)

Никак не могу понять почему! Как связать таблицы из кода? Почему при отключении теряется эта связь? Прошу Вашей помощи!


вроде по логике вещей, на то оно и соединение, что с его разрывом теряется связь с таблицами и рекордсетом ОкруженияДанными, довольно странно такие вопросы задавать, тебе тогда надо создать свой рекордсет в форме как переменную и формировать его посредством загрузки в него записей по запросу из ОкруженияДанными, тогда может и получиться
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34411874
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedorНикак не могу понять почему! Как связать таблицы из кода? Почему при отключении теряется эта связь? Прошу Вашей помощи!

1.Точный текст ошибки в студию. Пдозреваю что это "Error 3709 The connection cannot be used to perform this operation. It is either closed or invalid in this context"
2.О какой связи идет речь? Между таблицами? Или коннект к базе?
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34411972
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Magnus23 VipFedorНикак не могу понять почему! Как связать таблицы из кода? Почему при отключении теряется эта связь? Прошу Вашей помощи!

1.Точный текст ошибки в студию. Пдозреваю что это "Error 3709 The connection cannot be used to perform this operation. It is either closed or invalid in this context"
2.О какой связи идет речь? Между таблицами? Или коннект к базе?

мой лёгкий перевод таков:

Ошибка №....
соединение не может быть использовано для этой операции. Оно или закрыто или не допустимо в данном контексте

короче ты соединение не можешь использовать!
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34412073
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
klen_расширение db значит база Paradox ?

Нет это обычная база Access 2003. Просто сменил расширение.

2 TIKO
Благодарю, буду дома, код протестирую.

2 Программист Дёня
Я ведь написал, что использую дизайнер DataEnvironment


Magnus231.Точный текст ошибки в студию. Пдозреваю что это "Error 3709 The connection cannot be used to perform this operation. It is either closed or invalid in this context"


Именно эта ошибка!!!


Magnus23О какой связи идет речь? Между таблицами? Или коннект к базе?

Повторный коннект к базе и работа с таблицами.

P.S. Я так понимаю, что на первом этапе связь с БД и ее таблицами осуществляет DataEnvironment, а вот при разрыве связи, восстановить ее из кода для меня проблема.
На каком этапе сбой, я уже описал выше.
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34412119
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VipFedor klen_расширение db значит база Paradox ?

Нет это обычная база Access 2003. Просто сменил расширение.

2 TIKO
Благодарю, буду дома, код протестирую.

2 Программист Дёня
Я ведь написал, что использую дизайнер DataEnvironment


Magnus231.Точный текст ошибки в студию. Пдозреваю что это "Error 3709 The connection cannot be used to perform this operation. It is either closed or invalid in this context"


Именно эта ошибка!!!


Magnus23О какой связи идет речь? Между таблицами? Или коннект к базе?

Повторный коннект к базе и работа с таблицами.

P.S. Я так понимаю, что на первом этапе связь с БД и ее таблицами осуществляет DataEnvironment, а вот при разрыве связи, восстановить ее из кода для меня проблема.
На каком этапе сбой, я уже описал выше.


причём окружение данными не пойму, для справки ДатаЕнвайронмент это и есть ОкружениеДанными, я тоже пробовал им работать, но пока остановился на АДО объектах,
пока не разберусь с рекордсетом
а оно надо пусть и временно соединение закрывать, тогда используй АДО.Коннект, хотя Окружение, это теже АДО.Объекты, только в виде одного класса Дезайнера
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34413661
VipFedor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодаря помощи TIKO (2 способ), которому я очень благодарен, вывел следующий код для восстановления связи с таблицами дизайнера DataEnvironment

'Собственно восстанавливает связь и открывает таблицы
With DataEnvironment1
.Command1
.Command2
.Command3
End With

'Закрываем открытые таблицы
DataEnvironment1.rsCommand1.Close
DataEnvironment1.rsCommand2.Close
DataEnvironment1.rsCommand3.Close
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34413764
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист Дёня
мой лёгкий перевод таков:

Любезный, я их наизусть помню, на обоих языках :). К тому же вольный перевод часто меняет смысл.


2 VipFedor
DE очень громоздкая и глючная штука. Не хочу на ночь ужасы рассказывать но проблем с не й гораздо больше чем преимуществ мнимой простоты использования. Почитай хелп по ADO, все что тебе нужно это один обьект ADOДБ.Connection и несколько ADODB.Recordset. Command вообще используется в довольно специфических случаях и это не один из них.
Как уже сказал Программист Дёня, DE - не что иное как набор ADO обьектов. Но давая возмйожность визуальной разработки "чисто мышкой" он скрывает детали происходящего и не дает тебе контроля над кодом. В слудае чистого АДО - все прозрачно и дебагить гораздо проще.
...
Рейтинг: 0 / 0
Восстановление соединения с БД в DataEnvironment
    #34414548
Программист Дёня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Magnus23 Программист Дёня
мой лёгкий перевод таков:

Любезный, я их наизусть помню, на обоих языках :). К тому же вольный перевод часто меняет смысл.


2 VipFedor
DE очень громоздкая и глючная штука. Не хочу на ночь ужасы рассказывать но проблем с не й гораздо больше чем преимуществ мнимой простоты использования. Почитай хелп по ADO, все что тебе нужно это один обьект ADOДБ.Connection и несколько ADODB.Recordset. Command вообще используется в довольно специфических случаях и это не один из них.
Как уже сказал Программист Дёня, DE - не что иное как набор ADO обьектов. Но давая возмйожность визуальной разработки "чисто мышкой" он скрывает детали происходящего и не дает тебе контроля над кодом. В слудае чистого АДО - все прозрачно и дебагить гораздо проще.


Спасибо за подсказку, что Окружение лишь даёт управлять уже имеющимися данными, но не даёт возможности нормально работать с ними:добавлять, исправлять и прочее, поэтому предпочёл иметь и то и другое в проекте: окружение, чтоб видеть ADODB, чтоб ворочить базы как хочу.

>Магнус
А перевод тогда не дадите, а то у меня то по-русски, то по-английски сообщает ошибки
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Восстановление соединения с БД в DataEnvironment
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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