|
|
|
Через что лучше работать с БД Oracle 9i?
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Только начал использовать в качестве БД Oracle 9i. Разрабатываю проги на VB 6.0 и сразу встал вопрос какой механизм использовать для доступа к БД. Какие методы доступа предпочтительней? Установил себе Oracle 9i Enterprice Edition и вместе с ним я гляжу встали несколько компонентов и элементов управления, в частности - OraOLEDB 1.0 Type Library, ну с этим ясно обычный провайдер как я понимаю, то есть стандартный ADO (или я не прав?). Визуальные элементы управления оракловые при попытке добавить их в проект все требуют лицензию, нельзя ли как то решить этот вопрос :) или лучше их и не использовать? А может есть какой-то еще компонент самый лучший, который не входит в поставку самого Оракла, подскажите пожалуйста? P.S. Да кстати в настоящее время вся бизнес-логика моей проги будет в самой проге (на клиенте т.е.), никаких хранимых процедур не предвидится пока. Скорей всего эти темы обсуждались уже, но поиск что-ли не работает сейчас на форуме, ничего вообще не ищет. А нужно срочно позарез. И еще, задал этот же вопрос на форуме Oracle этого же сайта, так получил 2 совета: 1) Поискать вопрос на этот ответ в поисковиках рамеблерах, гуглах, муглах и т.п. Ничего там я не нашел конкретного. 2) Не писать приложения в связке VB + Oracle, мол VB для этого не дорос. Неужели никто не разрабатывает такие приложения (ODBC не подходит). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2005, 09:24:39 |
|
||
|
Через что лучше работать с БД Oracle 9i?
|
|||
|---|---|---|---|
|
#18+
Kroket Только начал использовать в качестве БД Oracle 9i. Разрабатываю проги на VB 6.0 и сразу встал вопрос какой механизм использовать для доступа к БД. Какие методы доступа предпочтительней? Установил себе Oracle 9i Enterprice Edition и вместе с ним я гляжу встали несколько компонентов и элементов управления, в частности - OraOLEDB 1.0 Type Library, ну с этим ясно обычный провайдер как я понимаю, то есть стандартный ADO (или я не прав?). Вы можете (ODBC не рассматриваем) еще использовать Microsoft OLEDB Provider. C ним и под 8i и под 9i у меня проблем никаких не было кроме - он не поддерживат BLOB, CLOB, BFILE. OraOLEDB - c ним возникали проблемы: например при использовании стандартных эл-тов Microsoft DataList (OLEDB) и некотрыми другими. Поэтому я использовал Microsoft OLEDB Provider, а в том случае если мне требовались данные LOB (это редко очень) то создавал на это время второй коннект c OraOLEDB. Может не лучший вариант использовать 2 коннекта, даже на короткое время, для одного сеанса пользователя, но зато проблем- минимум. Kroket Визуальные элементы управления оракловые при попытке добавить их в проект все требуют лицензию, нельзя ли как то решить этот вопрос :) или лучше их и не использовать? А может есть какой-то еще компонент самый лучший, который не входит в поставку самого Оракла, подскажите пожалуйста? В основном использую ComponentOne (True DBGrid Pro 8.0 (OLEDB) (раньше 6.0) и т.д.) - возможностей очччччень много и проблем особых не было. Kroket P.S. Да кстати в настоящее время вся бизнес-логика моей проги будет в самой проге (на клиенте т.е.), никаких хранимых процедур не предвидится пока. Процедуры можете при желании использовать без проблем. Можете возвращать из них рекордсет (я через REF CURSOR) - тоже никаких проблем. Я для вызова процедур использую ADODB.Command ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2005, 11:13:26 |
|
||
|
Через что лучше работать с БД Oracle 9i?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за ответ. И еще не приведете пример как на ADO подключится к БД которая находится на UNIX сервере. Что-то я не догоняю пока, как в соединении прописать информацию: имя сервера (UNIX), имя БД, и конкретную схему (так как в одной физической БД реализовано много разных задач, разбитых на схемы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 13:20:43 |
|
||
|
Через что лучше работать с БД Oracle 9i?
|
|||
|---|---|---|---|
|
#18+
Нормально работает. Есть некоторые тонкости. Например, блокирование записей рекордсетом способом SELECT FOR UPDATE NOWAIT не снимает блокировки до закрытия самого коннекшена (закрытие рекордсета не поможет). Лучше использовать BeginTransaction. Или: в случае временного разрыва соединения аппаратно (провод выдернуть) придется уничтожать коннекшн (а не закрывать) и создавать заново (кстати об объявлениях As New). Вообще у людей устаревшие представления о VB. ADO существенно мощнее дельфийского BDE, а все уверены в обратном. А тот пример с PL/SQL (с форума Oracle) - не есть честное сравнение. PL/SQL оптимизирует свой код и таким способом, что некоторые конструкции будут целиком отправлены на сервер чтобы там выполнится. И тут ничего не поделаешь, Oracle такие же монополисты как и MS. ps Как подключиться к юниксу не знаю, а схему надо указывать в SQL предложении (SELECT FROM СХЕМА.ТАБЛИЦА). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 13:33:29 |
|
||
|
Через что лучше работать с БД Oracle 9i?
|
|||
|---|---|---|---|
|
#18+
Все равно на чем oracle стоит - *NIX или Win. У вас к нему клиент оракловый коннектится - а вы уже работает через клиента, поэтому синтаксис одинаковый: Для клиента Microsoft: strConn = "Provider=MSDAORA.1" & _ ";User ID=" & UserName & _ ";Password=" & Password & _ ";Data Source=" & YourSID & _ ";Persist Security Info=true" Для ораклового: strConn = "Provider=OraOLEDB.Oracle.1" & _ ";User ID=" & UserName & _ ";Password=" & Password & _ ";Data Source=" & YourSID & _ ";Persist Security Info=true" ну и стандартно дальше: Set g_conn = New ADODB.Connection With g_conn .CursorLocation = adUseClient .Open strConn End With ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2005, 16:02:49 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33223043&tid=2167230]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 184ms |
| total: | 266ms |

| 0 / 0 |
