Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  perl-client.ja.txt   Sprache: Text

 


-----------------------------------------------------------------
handlersocketプラグインへの接続を開くには、Net::HandlerSocketオブ
ジェクトを作成します。

  use Net::HandlerSocket;
  my $args = { host => 'localhost', port => 9998 };
  my $hs = new Net::HandlerSocket($args);

-----------------------------------------------------------------
検索などの命令を実行する前に、処理対象となる索引を開く必要があり
ます。

  my $err = $hs->open_index(3, 'database1', 'table1', 'PRIMARY',
    'f1,f2');
  die $hs->get_error() if $res->[0] != 0;

最初の引数は開く索引に付ける番号です。付けた番号は同一の
Net::HandlerSocketオブジェクトについてのみ有効です。第4引数は開く
索引の名前で、「PRIMARY」が指定され場合はプライマリキーが開かれま
す。第5引数は「,」で区切られた列名のリストです。

-----------------------------------------------------------------
テーブルから索引を使って行を取得するには、execute_singleメソッド
を呼びます。

  my $res = $hs->execute_single(3, '=', [ 'foo' ], 1, 0);
  die $hs->get_error() if $res->[0] != 0;
  shift(@$res);

最初の引数は索引の番号で、同じNet::HandlerSocketオブジェクトへ
open_indexで付けたものでなければなりません。第2引数には操作を指定
します。現在のバージョンでは、「=」、「>=」、「<=」、「>」、「<」
の操作が利用可能です。第3引数は配列への参照で、これは探すべき行の
キー値を指定します。配列の長さは索引のキーの個数と同じか少ない数
でなければなりません。第4引数と第5引数はそれぞれ、取得する最大行
数、取得前に読み飛ばす行数を指定します。取得される列は対応する
open_index呼び出しの第5引数で指定されたものになります。

execute_singleメソッドは常に配列への参照を返します。最初の要素は
エラーコードで、これが0ならば成功を表します。残りの要素は列の値で
す。もし取得されたデータが複数行の場合は、それが一つの配列へ連結
された形で格納されています。例えば、5行3列のデータの場合、次のよ
うなコードによってその内容を取得できます。

  die $hs->get_error() if $res->[0] != 0;
  shift(@$res);
  for (my $row = 0; $row < 5; ++$row) {
    for (my $col = 0; $col < 3; ++$col) {
      my $value = $res->[$row * 5 + $col];
      # ...
    }
  }

-----------------------------------------------------------------
行を更新または削除するには、更に多くの引数を指定して
execute_singleメソッドを呼び出します。書き込み処理をするには、
対象のNet::HandlerSocketオブジェクトは更新用handlersocketワーカ(既
定ではポート9999)へ接続されたものでなくてはなりません。
(安全のため、ポート9998は参照処理だけを受け付け、ポート9999は更新
処理も受け付けるようになっています。ポート9999は参照処理も受け付
けますが、レコードロック等の影響で遅くなります。ポート番号は
mysqldの「handlersocket_port」と「handlersocket_port_wr」の設定項
目で変更できます。)

  my $args = { host => 'localhost', port => 9999 };
  my $hs = new Net::HandlerSocket($args);

  my $res = $hs->execute_single(3, '=', [ 'bar' ], 1, 0, 'U',
    [ 'fubar', 'hoge' ]);
  die $hs->get_error() if $res->[0] != 0;
  my $num_updated_rows = $res->[1];

  my $res = $hs->execute_single(3, '=', [ 'baz' ], 1, 0, 'D');
  die $hs->get_error() if $res->[0] != 0;
  my $num_deleted_rows = $res->[1];

execute_singleの第6引数は変更処理の種類を指定します。現在のバー
ジョンでは「U」と「D」が利用可能です。「U」については、第7引数で
新しい値を指定します。更新される列は、対応するopen_index呼び出し
の第5引数で指定されたものになります。「D」については第7引数は省
略できます。

-----------------------------------------------------------------
execute_singleメソッドは列の挿入にも使用できます。

  my $res = $hs->execute_single(3, '+', [ 'foo', 'bar', 'baz' ]);
  die $hs->get_error() if $res->[0] != 0;

第3引数は、対応するopen_index呼び出しの第5引数の列リストと同じだ
けの長さの配列への参照でなければなりません。open_index呼び出しの
第5引数に指定されていない列については、その列の既定値がセットされ
ます。

-----------------------------------------------------------------
execute_multiメソッドを使えば、複数のリクエストを一つの呼び出しで
実行することができます。これはリクエストを個別に実行するより高速
です。

  my $rarr = $hs->execute_multi([
    [ 0, '>=', [ 'foo' ], 5, 0 ],
    [ 2, '=', [ 'bar' ], 1, 0 ],
    [ 4, '<', [ 'baz' ], 10, 5 ],
  ]);
  for my $res (@$rarr) {
    die $hs->get_error() if $res->[0] != 0;
    shift(@$res);
    # ...
  }

-----------------------------------------------------------------
もしhandlersocketが接続を認証するように設定されている
(handlersocket_plain_secret又はhandlersocket_plain_secret_wrがセッ
トされている)ならば、クライアントは他のメソッド呼び出しの前にauth
メソッドを呼び出す必要があります。

  my $res = $hs->auth('password');
  die $hs->get_error() if $res->[0] != 0;

-----------------------------------------------------------------
エラーが起こると返値の配列参照の最初の要素が0以外になります。負の
数の場合はI/Oエラーが起こったことを示し、その場合はその
Net::HandlerSocketオブジェクトは破棄するべきです。正の値の場合は
接続は維持されているため、そのオブジェクトはそれ以後も再利用でき
ます。


¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1867298