Rexx-databases

提供:Dev Guides
移動先:案内検索

Rexx-データベース

Rexxには、以下にリストされているさまざまなデータベースを操作する機能があります。

  • HSQLDB
  • オラクル
  • SQLサーバー
  • MySQL
  • MongoDB

Rexxデータベースのすべての情報は、次のリンクをクリックすると見つかります。http://rexxsql.sourceforge.net/[https://rexxsql.sourceforge.net/]

データベース

この例では、サンプルとしてMySQL DBを使用します。 したがって、最初のステップは、RexxプログラムがSQLに応じて動作できるように、Rexx SQLサイトから必要なドライバーをダウンロードすることを確認することです。 したがって、以降の手順に従って、RexxプログラムがMySQLデータベースで動作することを確認してください。

  • ステップ2 *-MYSQLドライバーのダウンロード-rxsql26B3_my_w32_ooRexx
  • ステップ3 *-コンテンツをローカルマシンに解凍します。
  • ステップ4 *-解凍したフォルダーのパスをマシンのパス変数に追加します。

後続のすべての例では、次のポインタが所定の位置にあることを確認してください-

  • データベースTESTDBを作成しました。
  • TESTDBにテーブルEMPLOYEEを作成しました。
  • このテーブルには、FIRST_NAME、LAST_NAME、AGE、SEX、およびINCOMEフィールドがあります。
  • ユーザーID「testuser」とパスワード「test123」は、TESTDBにアクセスするように設定されています。
  • mysql jarファイルをダウンロードし、ファイルをクラスパスに追加したことを確認してください。
  • MySQLチュートリアルを完了しました

データベース接続

データベース接続を確立するには、最初にRexxsql DLLを使用してから、SQLConnect関数を使用してデータベースへの接続を確立する必要があります。 これを実現する方法の構文と例を以下に示します。

構文

SQLConnect(cname,username,password,dbname)

パラメーター

  • cname -これは接続に付ける名前です。
  • username -データベースに接続するためのユーザー名。
  • password -データベースに接続するためのパスワード。
  • dbname -接続先のデータベーススキーマ。

戻り値

0に等しい値は、データベース接続が成功したことを意味します。

/*Main program*/
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs'
Call SQLLoadFuncs
say SQLConnect(c1,' testuser ',' test123','testdb')

上記のプログラムの出力は次のようになります。

0

データベーステーブルの作成

データベースに接続した後の次のステップは、データベースにテーブルを作成することです。 次の例は、Rexxを使用してデータベースにテーブルを作成する方法を示しています。 Rexx SQLのすべてのコマンドは、SQLCommand関数を使用して実行されます。

構文

SQLConnect(sname,statement)

パラメーター

  • sname -これは、実行するステートメントに付ける名前です。
  • ステートメント-これは、データベースに対して実行する必要があるステートメントです。

戻り値

0に等しい値は、コマンドが成功したことを意味します。

/*Main program*/
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs'
Call SQLLoadFuncs

if SQLConnect(c1,'testuser','test123','testdb') == 0 then say 'Connect Succedded'
if SQLCommand(u1,"use testdb") == 0 then say 'Changed database to testdb'
   sqlstr = 'create table employee (first_name char(20) not null, last_name
   char(20),age int, sex
   char(1), income float)'

if SQLCommand(c2,sqlstr) == 0 then say 'Employee table created'

上記のプログラムの出力は次のようになります。

Connect Succedded
Changed database to testdb
Employee table created

データベーステーブルの操作

次の種類の操作は、データベーステーブルで最も一般的に実行されます。

Sr.No. Operation & Description
1

Insert Operation

データベーステーブルにレコードを作成する場合に必要です。

2

Read Operation

任意のデータベースでの読み取り操作は、データベースからいくつかの有用な情報を取得することを意味します。

3

Update Operation

データベースでのUPDATE操作は、データベースですでに利用可能な1つ以上のレコードを更新することを意味します。

4

Delete Operation

データベースから一部のレコードを削除する場合は、DELETE操作が必要です。

5

Closing a Connection

次のコマンドを使用して、データベースへの接続を閉じることができます。

トランザクションの実行

トランザクションは、データの一貫性を保証するメカニズムです。 トランザクションには、次の4つのプロパティがあります-

  • Atomicity -トランザクションが完了するか、まったく何も起こりません。
  • 一貫性-トランザクションは一貫した状態で開始し、システムを一貫した状態のままにする必要があります。
  • 分離-トランザクションの中間結果は、現在のトランザクションの外部では見えません。
  • 耐久性-トランザクションがコミットされると、システム障害が発生した後でも効果は持続します。

トランザクションを実装する方法の簡単な例を次に示します。

/*Main program*/
Call RxFuncAdd 'SQLLoadFuncs', 'rexxsql', 'SQLLoadFuncs'
Call SQLLoadFuncs

if SQLConnect(c1,'testuser','test123','testdb') == 0 then say 'Connect Succedded'
if SQLCommand(u1,"use testdb") == 0 then say 'Changed database to testdb'
   sqlstr = "DELETE FROM EMPLOYEE WHERE AGE > 20"

if SQLCommand(c2,sqlstr) == 0 then
if sqlcommit() == 0 then say committed

上記のプログラムの出力は次のようになります。

Connect Succedded
Changed database to testdb
COMMITTED

コミット操作

コミット操作は、操作を続行し、データベースへのすべての変更を完了するようにデータベースに指示するものです。 上記の例では、これは次のコマンドによって実現されます。

Sqlcommit()

ロールバック操作

1つ以上の変更に満足せず、それらの変更を完全に元に戻したい場合は、ロールバックメソッドを使用します。 上記の例では、これは次のコマンドによって実現されます。

SqlRollback()