0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 1
1
HTA

Использование ADO в HTA-приложении

16.12.2014, 11:58. Показов 3097. Ответов 6
Метки нет (Все метки)

Здравствуйте!
Мне нужно HTA-приложение, отображающее с помощью ADO данные из mdb-базы данных.
Мой код начинается так:
HTML5
1
2
3
4
5
6
7
8
9
10
<script type="text/Vbscript">
Function getData()
Dim pathname
    pathname = "D:\\WP\\ADO\\ADOexamples.mdb"
    Dim con 'As New ADODB.Connection
    Dim rs 'As New ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.CursorType = adOpenStatic
    rs.LockType = adLockOptimistic
    Set con = New ADODB.Connection
Я получаю ошибку: класс ADODB не определен. Видимо, дело в том, что надо включить ADODB в References. Как это сделать для .hta?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2014, 11:58
Ответы с готовыми решениями:

Удаление файла в HTA приложении
Пишу HTA приложение, но столкнулся с проблемой как правильно описать удаление файла. Пробую...

Быстрая "распаковка" бинарного ресурса из HTA на основе ADO.Stream
Предисловие. HTA - HyperText Application. Приложение с расширением .HTA, исходый код которого...

HTA: не работает атрибут windowstate в теге <hta:application>
какое бы значение этому атрибуту не присваивал (normal |minimize | maximize), окно открывается...

HTA: Где узнать, какая версия MS JScript поддерживается в HTA для конкретной версии Windows
По работе возникла необходимость переделать давно написанное HTA-приложение На работе стоит...

6
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
16.12.2014, 12:52 2
References в понимании VisualBasic для VBScript не существует, имеет место только
regsrvr.exe если оно (ADODB) зарегистрировано в реестре, то подключать его "галочкой"
к вашему проекту не нужно. А нужно создать экземпляр объекта

(Set objConn = CreateObject("ADODB.Connection ") - для VBScript) или
(objConn = new ActiveXObject("ADODB.Connectio n") - для JScript)

свойства и методы которого и вызывать в дальнейшем

Добавлено через 7 минут
PS: на этом форуме было достаточно примеров см. например: VBScript не отрабатывает запрос SELECT
0
7 / 7 / 1
Регистрация: 07.09.2013
Сообщений: 45
22.02.2015, 20:32 3
Всем доброго времени суток!
Подскажите, как аналогично "ADODB.Connection" организовать подключение к базе Oracle..? Или в данном случае, возможно только через ODBC..?
0
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
23.02.2015, 12:51 4
Да вроде-бы "ADODB.Connection" умеет цепляться не только к ODBC, в его описании написано что он шибко навороченный, здесь и здесь обсуждали подключение через OLEDB и провайдер из поставки Oracle client, а вообще видимо надо смотреть оракловский клиент, какие из "ADODB.Connection" фишек он умеет, правда сам я с ним не сталкивался, более определенно сказать не могу, может ещё кто поточнее подскажет
1
7 / 7 / 1
Регистрация: 07.09.2013
Сообщений: 45
05.03.2015, 14:16 5
Изучил привиденные по ссылке подключения, что непонятно:
- не получилось установить "оракловый" драйвер ODBC для Win7х64 (подключал по инструкции) но, драйвер в доступных так и не появился...
- не совсем понятно, как работать через ADODB.Connection напрямую с "оракловым" клиентм. Клиент 11g, у меня в системе установлен, к базе конекчусь нормально. А вот, через ADODB.Connection - так и не получается.
Последний раз пробовал так: strConnection = "Provider=OraOLEDB.Oracle. 1; "Ошибка 3706. Не удается найти указаный поставщик"
1
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
06.03.2015, 21:24 6
NAWARRO, видимо в этом разделе никто с оракловым клиентом попросту не сталкивался, попробуйте спросить в оракловском разделе, может они знают: https://www.cyberforum.ru/oracle/
1
7 / 7 / 1
Регистрация: 07.09.2013
Сообщений: 45
11.03.2015, 20:12 7
Вобщем, таки не смотря ни на что, удалось мне побороть эту тему! Опишу, как это у меня получилось, возможно кому-то пригодится, т.к. в явном виде, информации по подключениям через ADO к Оракловой базе из скриптов, нет. Всё опсаное верно для Win7 х64:
Вобщем, так...
шаг первый: обязательно качаем и устанавливаем следующие архивы:
- instantclient-basic-windows.x64-12.1.0.2.0 и instantclient-odbc-nt-12.1.0.2.0
- обязательно распаковываем оба архива instantclient в папку с вашим Ораклом, например у меня C:\Oracle\client\instantclient \
- я устанавливал 12 клиента под х64, т.к. 11g, упорно отказывался у меня прописываться в доступных драйверах ODBC! Скачать все это добро, можно с официального сайта Оракла.
Далее...
шаг второй: инсталлим сам ODBC-драйвер как описано по ссылке - думаю разберетесь.
шаг третий: пример собственно скрипта:



Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Dim strConnect
Dim adoConnection
Dim adoRecordset
Dim strSQL
Dim strResults
strSQL = "SELECT COUNT(distinct party_id) FROM apps.per_all_people_f"
Dim strUserID: strUserID = "логин_коннекта к базе"
Dim strPassword: strPassword = "ваш_паооль к базе"
strConnect = "Driver={Oracle in instantclient}; Dbq=myTNSServiceName; Uid=" & strUserID & ";Pwd=" & strPassword & ";"
 
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Open strConnect
Set adoRecordset = CreateObject("ADODB.Recordset")
adoRecordset.ActiveConnection = adoConnection 
adoRecordset.Source = strSQL
adoRecordset.Open
Do Until adoRecordset.EOF
        strResults = adoRecordset.Fields(0).Value
        msgbox strResults
        adoRecordset.MoveNext
Loop
 
adoRecordset.Close
adoConnection.Close

теперь два САМЫХ ВАЖНЫХ(!) момента: это строка инициализации подключения:
strConnect = "Driver={Oracle in instantclient}; Dbq=TWO; Uid=" & strUserID & ";Pwd=" & strPassword & ";"
в поле Driver прописываем имя вашего оракловго драйвера в ODBC (точно буква-в-букву! не ошибитесь)
в поле Dbq имя вашей базы! Dbq=myTNSServiceName (посмотреть можно в вашем файлике tnsname.ora)

Вуа-ля!))))

в строке strResults = adoRecordset.Fields(0).Value, можно вместо *.Fields(0).Value указать явно имя столбца базы, которое вам нужно. Например, у меня так:


Visual Basic
1
2
3
4
5
Do Until adoRecordset.EOF
        a = adoRecordset.Fields("NAME")
        b= adoRecordset.Fields("ADDRESS")
        adoRecordset.MoveNext
Loop
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2015, 20:12
Помогаю со студенческими работами здесь

Можно ли в одном приложении юзать и ADO и DAO?
Можно ли делать такой изврат как в сабже??

Будет ли работать ADO and DAO в одном приложении?
Будет ли работать такой гибрид? Почему бы не использовать только ДАО то отвечаю, что ADO не очень...

Связь в одном приложении MS Word, Excel и Access, используя технологию ADO
Доброго времени суток, форумчане! Не могли бы показать пример комплексного приложения, в котором...

Использование update + ado+sql server
mne neobhodimo v pole Number_Of_Reviews vnesti znachenie poluchenoe random dla vseh...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru