powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопросик про ADO +MDB
12 сообщений из 12, страница 1 из 1
Вопросик про ADO +MDB
    #34979558
leonidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда то, давно писал прогу.Связка была такая: пользовательский интерфейс на VB6,
база в MDB от Access доступ через DAO 3.6.Все SQL запросы в самой базе обьект DataBase.QueryDef .Сейчас появился интерес перевести енто дело на универсальный доступ.Хочешь MDB хочешь MSSql.Понятное дело нужен ADO.Теперь соб-сно вопросы:
1.Как с помощью ADO юзать сохраненные запросы в MDB программно и стоит-ли?
2.Какие безглючные (правильные библиотеки ADO) нужно задействовать c учетом ,что могет понадобиться обьект Stream?
3.Ы.Про MSsql не спрашиваю ,там все прозрачно.Переход на .NET не предлагать задача того не стоит да и есть ограничения по железу.
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34979943
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Переведите на русский язык первый вопрос.
2. Всего то две бибиотеки и приходится подключать. Глюков нет, есть неудобства связанные с отличиями при работе с разными БД. Например, байтовые массивы (т.е. image, вам ведь для этого нужен Stream?).
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34980102
leonidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перевожу на русский первый вопрос.В DAO для работы с запросами, сохраненными в mdb базе имеется обьект QueryDef .Таким образом имеем возможность не меняя кода и не перекомпилируя прогу, оперативно поправить любой запрос в mdb базе.Кроме того считается ,что сохраненные запросы работают быстрее (сам не проверял).В ADO, как я понял,чтобы получить доступ к этим запросам приходится подключать и обращаться к библиотеке ADOX.Сразу я не нашел обьекта, аналогичного QueryDef в ADODB (его там и нет!!),потому и спрашивал. Попутно ответьте вы лично какие именно версии ADODB и ADOX пользуете.?И про неудобства конкретно, если можете.Заранее благодарен за участие.
З.Ы. Обьект Stream мне кажется удобным для организации обмена (выгрузки-загрузки данных ) с другими базами.
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34980104
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насклько мне известно, ADOX используется для модификации схемы данных.
Для открытия рекордсета с вьюхи или хранимой процедуры вам достаточно ADO.
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34983750
leonidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ведь не зря делал акцент на MDB и интересовался версиями ADO.Если речь идет о MSSQL то
вот этого кода достаточно чтобы получить коллекцию параметров для вызываемой хранимой процедуры:
Код: plaintext
1.
2.
3.
4.
5.
Set cmd = New ADODB.Command
   ' Set rst = New ADODB.Recordset
    cmd.ActiveConnection = cnn
    cmd.CommandType = adCmdStoredProc'тип команды
    cmd.CommandText = procName'имя процедуры
 
Как только вы указали имя процедуры провайдер сам заполняет коллекцию параметров.Вам остается только присвоить значения что то типа:
Код: plaintext
1.
2.
cmd.Parameters(ParmName) = parmValue 
'....
При работе с Microsoft.Jet.OLEDB.4.0 этот номер у меня не проходит.Коллекция параметров не заполняется !
А вот такой код работает:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim prc As ADOX.Procedure 
Set cat = New ADOX.Catalog
Set cmd = New ADODB.Command
'Set rst = New ADODB.Recordset
cat.ActiveConnection = cnn
 cmd.ActiveConnection = cnn
'в ADO добраться до сохранен.запросов через каталог
Set prc = cat.Procedures(procName)
Set cmd = prc.Command'получим коллекцию параметров
 cmd.CommandType = adCmdStoredProc
 cmd.Parameters.Refresh
 'ВАЖНО! все параметры инициализировать иначе ErrProc:
  cmd.Parameters("[iD]").Value = lngIdRec
 cmd.Execute
 '...
Еще раз уточняю: процедуры хранятся в самой базе и имеют различный набор параметров.Обращаюсь я к ним из кода исключительно по именам.И при вызове любой из них неизвестно сколько и каких параметров.
Быть может вы предложите что нибудь получше? Заранее благодарю за участие.
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34983964
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonidy
вот этого кода достаточно чтобы получить коллекцию параметров для вызываемой хранимой процедуры:

Set cmd = New ADODB.Command
' Set rst = New ADODB.Recordset
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc'тип команды
cmd.CommandText = procName'имя процедуры

Как только вы указали имя процедуры провайдер сам заполняет коллекцию параметров.Вам остается только присвоить значения что то типа:

что-то я лично сомневаюсь


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34984019
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonidyЕще раз уточняю: процедуры хранятся в самой базе и имеют различный набор параметров.Обращаюсь я к ним из кода исключительно по именам.И при вызове любой из них неизвестно сколько и каких параметров.Здорово!
Чем же она эти неизвестные параметры инициализирует? рандомными значениями?
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34984054
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot leonidy
вот этого кода достаточно чтобы получить коллекцию параметров для вызываемой хранимой процедуры:

Set cmd = New ADODB.Command
' Set rst = New ADODB.Recordset
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc'тип команды
cmd.CommandText = procName'имя процедуры

Как только вы указали имя процедуры провайдер сам заполняет коллекцию параметров.Вам остается только присвоить значения что то типа:

что-то я лично сомневаюсь


I Have Nine Lives You Have One Only
THINK!Тем не менее это так.
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34986149
Шыфл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем работать с ADO.параметрами, лично мне показалось проще прямо лепить SQL запрос... Может, я ленивый?
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34986182
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШыфлЧем работать с ADO.параметрами, лично мне показалось проще прямо лепить SQL запрос... Может, я ленивый?Конечно ленивый! Мне вот тоже лениво разбираться со всей этой фигней - то QueryDef, то каталоги какие-то... Мы ж прикладное приложение пишем. Значит
Код: plaintext
1.
2.
3.
cmd.Command = "execute " & procName & "(?,?)"
cmd.Parameters( 1 ) = aaa
cmd.Parameters( 2 ) = bbb
cmd.Execute
и будет работать под любой базой данных.
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34986712
leonidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff leonidyЕще раз уточняю: процедуры хранятся в самой базе и имеют различный набор параметров.Обращаюсь я к ним из кода исключительно по именам.И при вызове любой из них неизвестно сколько и каких параметров.Здорово!
Чем же она эти неизвестные параметры инициализирует? рандомными значениями?
Мда..Похоже,что я все таки глубже изучил мат часть,или вы просто не внимательны. Коллекция параметров именно тем и удобна ,что это коллекция.Инициализировать-заполнять значениями параметры вы будете уже сами.Кто вам мешает продумать правильную систему имен и вместо кучи однотипных кусков кода со строковыми константами SQL команд, написать один класс ,который сам будет разруливать ,что и чем инициализировать? Хотя конечно это личное дело каждого.Ничего не имею против динамических запросов.Подход железобетонный и универсальный.Тему считаю закрытой.Всем спасибо за участие.
...
Рейтинг: 0 / 0
Вопросик про ADO +MDB
    #34986996
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leonidyМда..Похоже,что я все таки глубже изучил мат часть,или вы просто не внимательны. Коллекция параметров именно тем и удобна ,что это коллекция.Инициализировать-заполнять значениями параметры вы будете уже сами.Кто вам мешает продумать правильную систему имен и вместо кучи однотипных кусков кода со строковыми константами SQL команд, написать один класс ,который сам будет разруливать ,что и чем инициализировать? Хотя конечно это личное дело каждого.Ничего не имею против динамических запросов.Подход железобетонный и универсальный.Тему считаю закрытой.Всем спасибо за участие.Программы пишутся не для программистов а для пользователей. Если есть параметр ХП, значит должен быть элемент на форме в которы надо ввести данные. А вообще-то, наоборот - пользователю надо вводить информацию - создаются для этого поля на форме и в БД. Или я не прав?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вопросик про ADO +MDB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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