Rexx-databases
Rexx-データベース
Rexxには、以下にリストされているさまざまなデータベースを操作する機能があります。
- HSQLDB
- オラクル
- SQLサーバー
- MySQL
- MongoDB
Rexxデータベースのすべての情報は、次のリンクをクリックすると見つかります。http://rexxsql.sourceforge.net/[https://rexxsql.sourceforge.net/]
この例では、サンプルとしてMySQL DBを使用します。 したがって、最初のステップは、RexxプログラムがSQLに応じて動作できるように、Rexx SQLサイトから必要なドライバーをダウンロードすることを確認することです。 したがって、以降の手順に従って、RexxプログラムがMySQLデータベースで動作することを確認してください。
- ステップ1 *-Rexxサイトから次のドライバーダウンロードページに移動します-https://sourceforge.net/projects/rexxsql/files/rexxsql/2.6/
- ステップ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 |
データベーステーブルにレコードを作成する場合に必要です。 |
2 |
任意のデータベースでの読み取り操作は、データベースからいくつかの有用な情報を取得することを意味します。 |
3 |
データベースでのUPDATE操作は、データベースですでに利用可能な1つ以上のレコードを更新することを意味します。 |
4 |
データベースから一部のレコードを削除する場合は、DELETE操作が必要です。 |
5 |
次のコマンドを使用して、データベースへの接続を閉じることができます。 |
トランザクションの実行
トランザクションは、データの一貫性を保証するメカニズムです。 トランザクションには、次の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()