Oracle Pro*CからODBCへの変換
Ispirer MnMTKはOracle Pro*CからODBCへの変換を行う事が可能です。
Ispirer MnMTK は、お客様のビジネスニーズに応じて柔軟にカスタマイズできる移行ツールです。
Ispirer MnMTKは自動的にEXEC SQLステートメントとホスト変数を検知し、ODBC APIへの変換を行うとともに必要なコードを追加します。
変換機能
Ispirer MnMTKは以下の処理を行います:
- ODBC API関数と構造体用のインクルードファイルを追加:
- Oracle Pro*Cのデータベース接続 - EXEC SQL CONNECT TO を以下の様なODBCの接続に変換:
- allocating environment handle
- allocating connection handle
- 関数を使用しコネクションを確立:
- SQLConnect()
- SQLDriverConnect()
- SQLBrowseConnect()
- Oracle Pro*Cのデータ操作ステートメントを対応するODBC API関数に変換:
- SQLPrepare()
- SQLExecute()
- SQLBindParameter()
- SQLFetch(), etc.
- DDLとDMLステートメントをクエリ文字列に変換。
Oracle Pro*Cの例(file: simple.pc)
1. EXEC SQL include sqlca;
2.
3. int main()
4. {
5. EXEC SQL DECLARE cur_name CURSOR FOR
6. SELECT NVL(COL_NAME,' ')
7. FROM TBL_NAME;
8.
9. EXEC SQL OPEN cur_name;
10. return 0;
11.}
変換後、simple.pc ファイルは simple.cppに変換されます(SQL Serverデータベースを使用):
1. #include
2. #include
3. SQLHENV env;
4.
5. int main()
6. {
7. SQLHSTMT cur_name;
8. sqlca.sqlcode = SQLAllocStmt(connection,&cur_name);
9. sqlca.sqlcode = SQLPrepare(cur_name,
10. "SELECT ISNULL(COL_NAME,' ') "\
11. " FROM TBL_NAME",SQL_NTS);
12. sqlca.sqlcode = SQLExecute(cur_name);
13. return 0;
14.}
Ispirer MnMTKはアプリケーションロジックを複製する為に sqlca 構造体を生成します:
1. struct
2. {
3. SQLRETURN sqlcode;
4. SQLCHAR sqlerrm[SQL_MAX_MESSAGE_LENGTH+1];
5. SQLCHAR sqlstate[SQL_SQLSTATE_SIZE+1];
6. SQLSMALLINT length;
7. } sqlca;
以下の質問表にご記入いただければ、お客様のプロジェクトに関する質疑応答や概算のお見積りをお出しする事ができます:
Ispirer移行ソリューションOracle Pro*C から ODBCへ リクエスト
詳細はお問い合わせください。
|