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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » Ruby 用 SQL Anywhere

 

SQL Anywhere Ruby API

SQL Anywhere には、SQL Anywhere C API への低レベルのインタフェースがあります。以降の各項で説明する API によって、SQL アプリケーションの迅速な開発が可能になります。Ruby によるアプリケーション開発の長所を示すために、次の Ruby のサンプル・プログラムについて考えてみます。このプログラムは、SQL Anywhere Ruby 拡張をロードし、デモ・データベースに接続し、Products テーブルのカラム値を表示し、接続を切断し、終了します。

begin
    require 'rubygems'
    gem 'sqlanywhere'
    unless defined? SQLAnywhere
        require 'sqlanywhere'
    end    
end
api = SQLAnywhere::SQLAnywhereInterface.new()
SQLAnywhere::API.sqlany_initialize_interface( api )
api.sqlany_init()
conn = api.sqlany_new_connection()
api.sqlany_connect( conn, "DSN=SQL Anywhere 11 Demo" )
stmt = api.sqlany_execute_direct( conn, "SELECT * FROM Products" )
num_rows = api.sqlany_num_rows( stmt )
num_rows.times {
    api.sqlany_fetch_next( stmt )
    num_cols = api.sqlany_num_cols( stmt )
    for col in 1..num_cols do
        info = api.sqlany_get_column_info( stmt, col - 1 )
        unless info[3]==1 # Don't do binary
            rc, value = api.sqlany_get_column( stmt, col - 1 )
            print "#{info[2]}=#{value}\n"
        end
    end
    print "\n"
}
api.sqlany_free_stmt( stmt )
api.sqlany_disconnect(conn)
api.sqlany_free_connection(conn)
api.sqlany_fini()
SQLAnywhere::API.sqlany_finalize_interface( api )

この Ruby プログラムの結果セットから出力される最初の 2 つのローは、次のとおりです。

ID=300
Name=Tee Shirt
Description=Tank Top
Size=Small
Color=White
Quantity=28
UnitPrice=9.00

ID=301
Name=Tee Shirt
Description=V-neck
Size=Medium
Color=Orange
Quantity=54
UnitPrice=14.00

以降の各項では、サポートされている各関数について説明します。


sqlany_affected_rows
sqlany_bind_param
sqlany_clear_error
sqlany_client_version
sqlany_commit
sqlany_connect
sqlany_describe_bind_param
sqlany_disconnect
sqlany_error
sqlany_execute
sqlany_execute_direct
sqlany_execute_immediate
sqlany_fetch_absolute
sqlany_fetch_next
sqlany_fini
sqlany_free_connection
sqlany_free_stmt
sqlany_get_bind_param_info
sqlany_get_column
sqlany_get_column_info
sqlany_get_next_result
sqlany_init
sqlany_new_connection
sqlany_num_cols
sqlany_num_params
sqlany_num_rows
sqlany_prepare
sqlany_rollback
sqlany_sqlstate
カラムの型
ネイティブのカラム型