Страница: 1 |
Страница: 1 |
Вопрос: Работа с классом DataEnvinronment
Добавлено: 23.05.06 13:19
Автор вопроса: Sergey Gaponov | ICQ: 278513301
Проблема связана с DataEnvinronment
вот код привязки таблицы базы данной к визуальному компоненту на форме
дело в том, что каждый раз вызов (DataEn.T1) разный после точки идет
метод совпадающий с именем таблицы. Но в том то все и дело, что
привязку надо осуществлять к разным таблицам. Я делал такой код к
каждой таблице, но теперь у меня нужно показать визуально много таблиц
и хотелось бы один раз написать код. CallByName не помогает, в
обычных классах работает хорошо а здесь нет.
Option Explicit
Public OBCON As Object 'DataEn.Con имя объекта соединения
Public OBRS As Object 'DataEn.rsVrem имя объекта с таблицей RS
Public OBDBL As Object 'Main.DBLPrais имя грида с формой
Public OBOBTABT As String 'имя метода класса DataEn
Public PUTBAZI As String 'PUTBAZI путь к базе с "\"
Public BAZAZ As String 'NBAZAG имя базы (.mdb)
Public PASSBAZ As String 'PASSBAZ пароль на базу
Public DN As New DataEn
Sub CONNECTN()
'Клас для работы с новым гридом (соединение)
If OBCON.State = adStateOpen Then
Else
OBCON.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PUTBAZI & BAZAZ & ";Jet OLEDB:Database
Password='" & PASSBAZ & "';Persist Security Info=False"
End If
If OBRS.State = adStateOpen Then
OBRS.Close
OBCON.Close
Set OBDBL.Recordset = Nothing
OBDBL.Refresh
OBCON.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PUTBAZI & BAZAZ & ";Jet OLEDB:Database
Password='" & PASSBAZ & "';Persist Security Info=False"
OBCON.Open
-------вот здесь не могу ничего поделать
DataEn.T1
----------------------------------------
Set OBDBL.Recordset = OBRS
OBDBL.Refresh
Else
If OBCON.State = adStateOpen Then
OBCON.Close
OBCON.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PUTBAZI & BAZAZ & ";Jet OLEDB:Database
Password='" & PASSBAZ & "';Persist Security Info=False"
OBCON.Open
'DataEn.T1
Set OBDBL.Recordset = OBRS
OBDBL.Refresh
Else
OBCON.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PUTBAZI & BAZAZ & ";Jet OLEDB:Database
Password='" & PASSBAZ & "';Persist Security Info=False"
DataEn.T1
Set OBDBL.Recordset = OBRS
OBDBL.Refresh
End If
End If
' Exit Sub
'er_ror:
' MsgBox Err.Number & "/-/" & Error, vbCritical, "Ошибка"
End Sub
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #1
Добавлено: 23.05.06 14:38
йопты...
см. примеры ADO, нафиг у тебя всё As Object?
Номер ответа: 2
Автор ответа:
Sergey Gaponov
ICQ: 278513301
Вопросов: 27
Ответов: 13
Профиль | | #2
Добавлено: 23.05.06 20:30
потому что это класс и имена объектов все время разные
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 23.05.06 21:21
а ну понятно ))
а когда значит as ado тогда уже разные бысть немогут
Номер ответа: 4
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #4
Добавлено: 24.05.06 11:15
Аццкий Сотона... Танкист!
дело в том, что каждый раз вызов (DataEn.T1) разный после точки идет
метод совпадающий с именем таблицы. Но в том то все и дело, что
привязку надо осуществлять к разным таблицам.
Тебе же по русски сказали почитать про полиморфизм.
Ты че, в самом деле собираешься для каждой новой таблицы добавлять в класс метод? ГыыЫыы, лол...
Напиши один метод, куда как параметр передавай имя таблицы as String - проблемы снимутся автоматически.
А вообще - читать мануалы по ADO и VB.