Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
это код, установите в два MT, используйте для связи с двумя терминалами.
Спасибо большое appleparty!
пожалуйста, код не работает в v600+, так что если вы можете сказать нам, как решить проблему, я хочу поблагодарить вас очень много!
@gorick:
Отличная работа по подключению к БД ORACLE! Но как читать/писать из/в ORACLE с помощью mql4?
И откуда вы взяли oraDLL.dll?
Заранее спасибо!
Майкл
У меня те же вопросы, что и у m.mick:
Где я могу скачать oraDLL.dll и как реализовано чтение и запись с ORACLE-DB?
Спасибо за помощь!
@gorick:
Отличная работа по подключению к БД ORACLE! Но как вы читаете/пишете из/в ORACLE с помощью mql4?
И откуда вы взяли oraDLL.dll?
Заранее спасибо!
Michael
m.mick,
То, что я привел, является фрагментом кода с использованием прекомпилятора Oracle Pro*C. То же самое, что и EXEC SQL CONNECT. Посмотрите на пример ниже. Вы пишете код, затем прогоняете его через прекомпилятор Oracle Pro*C, который производит C-код, который вы затем компилируете как часть вашей DLL в вызовах функций. Для этого вам нужно знать Oracle, получить программное обеспечение Oracle DB и Client, включая прекомпиляторы. Я использую Oracle уже очень долгое время и предпочитаю его всем другим, просто потому что привык к нему.
Удачи.
Прекомпилятор Oracle Pro*C генерирует код на языке Си для взаимодействия с Oracle, используя OCI - Oracle Call Interface, его родной API.
m.mick,
То, что я привел, является фрагментом кода с использованием прекомпилятора Oracle Pro*C. То же самое, что и EXEC SQL CONNECT. Посмотрите на пример ниже. Вы пишете код, затем прогоняете его через прекомпилятор Oracle Pro*C, который производит код на C, который вы затем компилируете как часть вашей DLL в вызовах функций. Для этого вам нужно знать Oracle, получить программное обеспечение Oracle DB и Client, включая прекомпиляторы. Я использую Oracle уже очень долгое время и предпочитаю его всем другим, просто потому что привык к нему.
Удачи.
Прекомпилятор Oracle Pro*C генерирует код на языке Си для взаимодействия с Oracle, используя OCI - Oracle Call Interface, его родной API.
Я забыл упомянуть, что вам понадобится 32-битная версия Oracle Instant Client, найденная здесь: http://www.oracle.com/technetwork/topics/winsoft-085727.html, 64-битная не будет работать с платформой MetaTrader. БД может быть 64-битной версии. Вы должны знать Oracle, это сложное программное обеспечение. Вы можете разрабатывать бесплатно, вам просто нужно создать регистрацию в Oracle, регистрация бесплатная. Все загрузки Oracle бесплатны.
Горик:
Да, вы правы, ORACLE - сложное программное обеспечение. Я работал с ORACLE несколько лет (но только с SQL и PL/SQL), это лучшая база данных. К сожалению, я не работал с Pro*C Compiler или DLL. Поэтому для меня это довольно сложно. Но я попробую! :-)
У меня есть пара вопросов по поводу вашей замечательной работы.
Если я пытаюсь скомпилировать его (Build 610), то получаю сообщения об ошибках типа "массивы передаются только по ссылке". Почему? И что мне делать? Почему вы использовали uchar[], а не string? Может быть из-за Pro*C-Compiler?
Как вы разрабатывали DLL? С MT4 также? Я получаю *.ex4-файл после компиляции в редакторе meta.... .
Если я получаю .c-файл от прекомпилятора Pro*C, что я должен делать с этим файлом? Как мне разработать или сгенерировать DLL с этим куском кода?
Oracle Instant Client является обязательным для каждого клиента, на котором должна использоваться oraDLL. Верно?
Заранее спасибо!!!
Если я использую ORACLE Pro*C Compiler, то после вставки сгенерированного кода в dll я получаю множество ошибок.
Вот некоторые проблемы после компиляции dll:
- отсутствует объявление UNAME_LEN, PWD_LEN и DBSTRING_LEN
- является ли EXPORT правильным словом, я получу ошибку; не является ли extern правильным словом?
- connect1 (и 2, и 3) имеют разные типы: в объявлении char **, а в использовании (strncpy) только char *; и он депривирован, нужно использовать strncpy_s
- sqlca не объявлен
- ...
Кто-нибудь может мне помочь?
Заранее спасибо,
Майкл