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