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

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere 16 変更点とアップグレード » バージョン 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 桁の精度を取得できるようになりました。