Rexx-データベース

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

  • HSQLDB
  • Oracle
  • SQLサーバー
  • MySQL
  • MongoDB

次のリンクをクリックすると、Rexxデータベースのすべての情報が表示されます- https://rexxsql.sourceforge.net/

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

Step 1 − Rexxサイトから次のドライバーダウンロードページに移動します− https://sourceforge.net/projects/rexxsql/files/rexxsql/2.6/

Step 2 −MYSQLドライバーをダウンロードします-rxsql26B3_my_w32_ooRexx

Step 3 −コンテンツをローカルマシンに解凍します。

Step 4 −解凍したフォルダのパスをマシンのパス変数に追加します。

以降のすべての例では、次のポインタが配置されていることを確認してください-

  • データベースTESTDBを作成しました。

  • TESTDBにテーブルEMPLOYEEを作成しました。

  • このテーブルには、フィールドFIRST_NAME、LAST_NAME、AGE、SEX、およびINCOMEがあります。

  • TESTDBにアクセスするためのユーザーID「testuser」とパスワード「test123」が設定されています。

  • 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 −これは実行するステートメントに付ける名前です。

  • statement −これはデータベースに対して実行する必要のあるステートメントです。

戻り値

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

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

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

シニア番号 操作と説明
1 挿入操作

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

2 読み取り操作

任意のデータベースに対するREAD操作は、データベースからいくつかの有用な情報をフェッチすることを意味します。

3 更新操作

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

4 削除操作

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

5 接続を閉じる

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

トランザクションの実行

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

  • Atomicity −トランザクションが完了するか、まったく何も起こりません。

  • Consistency −トランザクションは一貫性のある状態で開始し、システムを一貫性のある状態のままにする必要があります。

  • Isolation −トランザクションの中間結果は、現在のトランザクションの外部には表示されません。

  • Durability −トランザクションがコミットされると、システム障害が発生した後でも、影響は持続します。

これは、トランザクションを実装する方法の簡単な例です。

/* 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()