Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 12 変更点とアップグレード » バージョン 12.0.0 の新機能 » SQL Anywhere の新機能

 

プログラミングインターフェイス

次に、SQL Anywhere バージョン 12.0.0 でのプログラミングインターフェイスの強化を示します。

  • Web サービスパフォーマンスの強化   プランのキャッシュの効果と潜在的なパフォーマンスの向上による利点を最大化するために、HTTP サービスで自動接続プールがサポートされるようになりました。HTTP Web サーバーでの Web サービスアプリケーションの開発を参照してください。

  • カスタマイズされた ODBC ドライバー名のサポート   SQL Anywhere ODBC ドライバーの複数の独立したコピーをクライアントシステムに容易にインストールおよび登録するため、ODBC ドライバーにカスタマイズされた名前を割り当てることができるようになりました。ODBC ドライバーの設定を参照してください。

  • UNIX の ANSI 専用 ODBC ドライバー   SQLWCHAR を 32 ビット (UTF-32) 数として定義するバージョンの UNIX ODBC ドライバーマネージャーは、ワイド呼び出しをサポートする SQL Anywhere ODBC ドライバーに使用できません。これは、このドライバーは 16 ビット SQLWCHAR 用に作成されているためです。このような場合に備えて ANSI 専用バージョンの SQL Anywhere ODBC ドライバーが用意されています。このバージョンの ODBC ドライバーでは、ワイド呼び出しインターフェイス (SQLConnectW など) はサポートされていません。UNIX 用 UTF-32ODBC ドライバーマネージャーを参照してください。

  • DBTools: no_reload_status ビットフィールドの an_unload_db 構造への追加   an_unload_db 構造に新しいビットフィールド no_reload_status が追加されました。no_reload_status を使用して、テーブルとインデックスの進行メッセージの再ロードを抑制できます。an_unload_db 構造体 [データベースツール]を参照してください。

  • 新しい SQL Anywhere TYPE-2 JDBC ドライバー   SQL Anywhere への接続時に、新しい TYPE-2 JDBC ドライバーを JDBC アプリケーションで使用できるようになりました。ODBC の最上部に位置し、ODBC 経由でさまざまなサーバーに接続するために使用できる iAnywhere JDBC ドライバーとは異なり、SQL Anywhere JDBC ドライバーは SQL Anywhere のみに接続し、SQL Anywhere ODBC ドライバーのインストールや登録を必要としません。

    SQL Anywhere JDBC ドライバーは、JDBC 3.0 ドライバーと JDBC 4.0 ドライバーに付属しています。

    注意

    現在 iAnywhere JDBC ドライバーを使用している場合は、新しい SQL Anywhere JDBC ドライバーに変更することを強くおすすめします。

    JDBC 4.0 ドライバーは自動的にロードおよび登録されます。

    バージョン 3.0 の SQL Anywhere JDBC ドライバーを使用するには、java.sql.Driver インターフェイスを実装する sybase.jdbc.sqlanywhere.IDriver クラスをロードし、JDBC ドライバーマネージャーを使用して SQL Anywhere JDBC ドライバーを登録する必要があります。ロードすると、URL jdbc:sqlanywhere:connection-string-parameters を使用して、SQL Anywhere JDBC ドライバーを使用する接続を確立できます。connection-string-parameters は、SQL Anywhere に接続するときに必要な標準の接続パラメーターです。SQL Anywhere JDBC ドライバーを使用する場合、アプリケーションで connection-string-parameters に DRIVER= または DSN= を指定する必要はなくなりました。JDBC サポートを参照してください。

  • JDBC statement クラスメソッドの新しいサポート   以前のバージョンでは、PreparedStatement クラスの addBatch メソッドと executeBatch メソッドのみが JDBC ドライバーによってサポートされていました。今回のバージョンでは、Statement クラスの addBatch メソッド、clearBatch メソッド、および executeBatch メソッドも、JDBC ドライバーによってサポートされるようになりました。Statement クラスの executeBatch メソッドの動作に関する JDBC 仕様は明確でないため、このメソッドを SQL Anywhere JDBC ドライバーで使用する場合は、次のことに注意する必要があります。

    1. SQL 例外または結果セットが発生すると、バッチの処理はすぐに停止します。バッチの処理が停止すると、executeBatch メソッドによって BatchUpdateException がスローされます。BatchUpdateException で getUpdateCounts メソッドが呼び出されると、ローカウントの整数配列が返されます。この配列では、バッチエラーが発生する前のカウントセットには有効な負でない更新カウントが含まれますが、バッチエラーが発生した時点以降のすべてのカウントには -1 の値が含まれます。BatchUpdateCount を SQLException にキャストすると、バッチ処理が停止した理由に関する追加の詳細が提供されます。

    2. バッチは、clearBatch メソッドが明示的に呼び出された場合にのみクリアされます。その結果、executeBatch メソッドを繰り返し呼び出すと、バッチが繰り返し再実行されます。また、execute( sql_query ) または executeQuery( sql_query ) を正しく呼び出すと、指定された SQL クエリが実行されますが、基本となるバッチはクリアされません。したがって、executeBatch メソッド、execute( sql_query )、executeBatch メソッドの順に呼び出すと、バッチ文のセットが実行され、次に、指定された SQL クエリが実行され、次に、再びバッチ文のセットが実行されます。

    JDBC サポートを参照してください。

  • RESUME 文はローカウントまたはロー推定値を返す   RESUME 文は、プロシージャーコールの結果セット内のローの数、または次の結果セットのロー推定値を返すようになりました。以前のバージョンでは、このローカウントは RESUME 文の後に使用できませんでした。RESUME ローカウントを取得するには、クライアントアプリケーションとデバイスサーバーの両方が SQL Anywhere 12 である必要があります。

    この変更は、次のクライアント API に影響を及ぼします。

    API 影響を受ける関数呼び出しまたは文 ローカウントを返す
    Embedded SQL RESUME 文 SQLCOUNT フィールド
    ODBC SQLMoreResults 関数 SQLRowCount 関数
    OLE DB IMultipleResults::GetResult メソッド pcRowsAffected 出力パラメーター
    PHP sasql_next_result 関数 sasql_num_rows 関数
    PHP sasql_stmt_next_result 関数 sasql_stmt_num_rows 関数
    SQL Anywhere C API sqlany_get_next_result 関数 sqlany_num_rows 関数
    SQL Anywhere Ruby API sqlany_get_next_result 関数 sqlany_num_rows 関数
    SQL Anywhere Python API nextset メソッド rowcount 属性

  • CGI/1.1 に必要なすべての変数が PHP $_SERVER 変数に含まれるようになった   HTTP 要求を実行するときに CGI/1.1 に必要なすべての変数が PHP の $_SERVER 変数に含まれるようになりました。PHP 外部環境を参照してください。

    CGI/1.1 に必要な変数の詳細については、[external link] http://www.ietf.org/rfc/rfc3875を参照してください (RFC3875 の Section 4)。

  • sqlanydb への Python データ型マッピングに対する詳細な制御の追加   変換コールバックを登録すると、データベースサーバーから結果がフェッチされるときに、Python オブジェクトへデータベースの型がマッピングされる方法を制御できます。データベースタイプの変換を参照してください。

  • 新しい DBLib fill_sqlda_ex 関数   fill_sqlda_ex 関数には、fill_sqlda に対する追加機能があります。特に、記述子を埋めるときに、DT_LONGVARCHAR、DT_LONGNVARCHAR、DT_LONGBINARY 型を保持するためにフラグを提供できます。fill_sqlda_ex 関数を参照してください。

  • サイレントインストール機能を選択できるようになった   Windows では、コマンドラインから SQL Anywhere のコンポーネントや機能をインストール用に選択または省略できます。たとえば、32 ビットの管理ツールを選択するには、AT32=1 を指定します。SQL Anywhere インストーラーを使用したサイレントインストールを参照してください。

  • TDS による時刻および日時データの 6 桁精度のサポート   jConnect 7 以降または Open Client 15.5 以降を使用して SQL Anywhere に接続するアプリケーションでは、時刻および日時データを問い合わせるときに 6 桁の精度を取得できるようになりました。