EXEC SQL WHENEVER NOT FOUND DO sql_error("ORACLE error--\n");
EXEC SQL SELECT 'Col1', 'Col2'
INTO :stringrec INDICATOR :string_ind /* note insert into array variable */
FROM dual
WHERE :bindval1 = :bindval1
AND :string1 = :string1;
コンパイル(Build 610)しようとすると、「array are passed by reference only」のようなエラーメッセージが表示されます。なぜでしょうか?また、どうすればいいのでしょうか?なぜstringではなくuchar[]を使用したのでしょうか?Pro*C-Compilerのせいでしょうか?
これは、2つのMTにインストールして、2つの端末で通信するために使うコードです。
applepartyさん、ありがとうございました。
v600+では動作しないので、解決方法を教えてください。
@gorickです。
ORACLE DBに接続するのは素晴らしい仕事だ!でも、mql4でORACLEから/への読み書きはどうやるんですか?
それと、oraDLL.dllはどこから入手されたのですか?
よろしくお願いします。
マイケル
m.mickさんと同じ質問をさせていただきます。
どこでoraDLL.dllをダウンロードすることができますし、どのようにORACLE - DBとの読み取りと書き込みのimplemenationは何ですか?
私を助けるTHX 4
@gorickです。
ORACLE DBに接続するのは素晴らしい仕事だ!でも、mql4でどうやってORACLEから/ORACLEへ読み書きしているのですか?
また、oraDLL.dll はどこから入手されたのでしょうか?
よろしくお願いします。
マイケル
m.mickです。
私が与えたものは、Oracle Pro*C precompilerを使用したコードスニペットです。EXEC SQL CONNECTと同じです。下のサンプルを見てください。コードを書いて、これをOracle Pro*Cプリコンパイラで実行すると、Cコードが生成され、それをDLLの関数 呼び出しの一部としてコンパイルすることができます。この作業を行うには、Oracleの知識が必要で、プリコンパイラを含むOracle DBとClientソフトウェアを入手する必要があります。私は長い間オラクルを使っていますが、単に慣れているという理由で、他のどの製品よりもオラクルを好んで使っています。
頑張ってください。
Oracle Pro*Cプリコンパイラは、上記から Cコードを生成し、OCI - Oracle Call Interface、そのネイティブAPIを使用して オラクルとインターフェイス します。
m.mickです。
私があげたのは、Oracle Pro*C precompilerを使ったコードスニペットです。EXEC SQL CONNECTと同じです。下のサンプルを見てください。あなたはコードを書き、これをOracle Pro*Cプリコンパイラで実行してCコードを生成し、それをDLLの関数呼び出しの一部としてコンパイルします。この作業を行うには、Oracleの知識が必要で、プリコンパイラを含むOracle DBとClientソフトウェアを入手する必要があります。私は長い間オラクルを使っていますが、単に慣れているという理由で、他のどの製品よりもオラクルを好んで使っています。
頑張ってください。
Oracle Pro*Cプリコンパイラは、上記から Cコードを生成し、OCI - Oracle Call Interface、そのネイティブAPIを使用して オラクルとインターフェイス します。
書き忘れましたが、Oracle Instant Clientの32bit版が必要です。ここにあります:http://www.oracle.com/technetwork/topics/winsoft-085727.html、64bitはMetaTraderプラットフォームでは動作しません。DBは64ビット版でも構いません。Oracleは複雑なソフトウェアです。あなたは無料で開発することができます、あなたはただ、Oracleに登録を作成する必要があります、それは登録無料です。オラクルのダウンロードはすべて無料です。
ゴーリック
ええ、おっしゃるとおり、ORACLEは複雑なソフトウェアです。私は数年前からORACLEで仕事をしていますが(ただしSQLとPL/SQLのみ)、これは最高のデータベースです。残念ながら、私はPro*CコンパイラやDLLを使った開発はしたことがありません。だから、これを実行するのはかなり難しいです。しかし、私は試してみるつもりです。:-)
あなたの素晴らしい作品について、いくつか質問があります。
コンパイル(Build 610)しようとすると、「array are passed by reference only」のようなエラーメッセージが表示されます。なぜでしょうか?また、どうすればいいのでしょうか?なぜstringではなくuchar[]を使用したのでしょうか?Pro*C-Compilerのせいでしょうか?
DLLはどのように開発されたのですか?MT4でもですか?メタエディタでコンパイルすると、*.ex4-Fileが送られてくるのですが.....
Pro*Cプリコンパイラから.cファイルを受け取った場合、そのファイルをどうすればいいのでしょうか?そのコード片でDLLを開発したり生成したりするにはどうすればいいのでしょうか?
Oracle Instant Clientは、oraDLLを使用するすべてのクライアントに必要です。そうでしょう?
事前にTHX!!!
ORACLE Pro*C Compilerを使用すると、生成されたコードをDLLに挿入した後、多くのエラーが発生します。
以下は、DLLをコンパイルした後の問題点です。
- UNAME_LEN、PWD_LEN、DBSTRING_LENの宣言が欠落しています。
- は、EXPORTは、私はエラーを取得します。externは、正しい言葉ではありませんか?
- connect1(と2と3)は異なるタイプです:宣言ではchar **と使用法(strncpy)だけchar *;そしてそれはdepricatedです、あなたはstrncpy_sを使用する必要があります。
- sqlcaは宣言されていません。
- ...
誰もが私を助けてくださいすることができますか?
事前にTHX。
マイケル