自己学習メモインデックス
概要
CLプログラミングの勉強を進めていくと、最初はHello Worldを出力するところから始まり、IF文やFOR文の構文(コマンド?)と、大体どのプログラミング言語でも同様の進捗となります。
一段難易度が高くなるのがDBアクセス部分の処理ですが、どうやらAS400での開発におけるDBアクセス部分は非常に簡単に開発できそうです。
ここでは、DBに1カラムしかないテーブルを作成してサンプルデータを投入する方法を、QTEMPライブラリに対して行います。
※QTEMPライブラリに作ったファイルなどは、ログインし直すと削除されてしまいます。
開発テスト用に一時的に何らかのファイルを作成したい場合などに利用するといいのではないかと思います。
QTEMPにファイルを作成
以下コマンドを入力してF4キーを押下
crtpf qtemp/sample
Record lengthの項目に適当なサイズを指定してEnterを押下。
この項目は、DDSを用いずに、1カラムのみ定義されたファイルを指定したレコード長(バイト)でサクッと作るために指定する項目です。
ちなみにDDSとは
Data Description Specifications : データ記述仕様のことで、Oracleなんかでいうところの、Create Table文をソースコードとして保管しているファイル。というイメージをしています。
Create Physical File (CRTPF)
Type choices, press Enter.
File . . . . . . . . . . . . . . FILE > SAMPLE
Library . . . . . . . . . . . > QTEMP
Source file . . . . . . . . . . SRCFILE QDDSSRC
Library . . . . . . . . . . . *LIBL
Source member . . . . . . . . . SRCMBR *FILE
Record length, if no DDS . . . . RCDLEN 100
Generation severity level . . . GENLVL 20
Flagging severity level . . . . FLAG 0
File type . . . . . . . . . . . FILETYPE *DATA
Member, if desired . . . . . . . MBR *FILE
Text 'description' . . . . . . . TEXT *SRCMBRTXT
上記の実行が完了すると以下のメッセージが画面上に表示されます。
File SAMPLE created in library QTEMP.
作成したファイルにデータを投入する
SAMPLEという名前のファイルをQTEMPライブラリ内に作成しましたが、特にデータの中身は空の状態です。
ここにデータを投入していきます。
以下のコマンドを入力してEnter
upddta qtemp/sample
以下のような画面が表示されます。
この画面のSAMPLE:の部分に、登録したい文字列データを入力してEnterを押下していくことで、どんどんデータがINSERTされていきます。
WORK WITH DATA IN A FILE Mode . . . . : ENTRY
Format . . . . : SAMPLE File . . . . : SAMPLE
SAMPLE:__________________________________________________________________
登録が完了したらF3キーを押下して、End data entryにYを指定してEnterを押下する。
End Data Entry
Number of records processed
Added . . . . . : 3
Changed . . . . : 0
Deleted . . . . : 0
Type choice, press Enter.
End data entry . . . . . . . Y Y=Yes, N=No
これでQTEMPに作成したテーブルに対し、データの登録まで完了しました。
【補足】
ちなみに、upddta
コマンドでデータを登録した機能は、strdfuでQTEMP/SAMPLEを指定し、F9キーを押下してINSERTモードにした場合と同じ機能です。
登録されたデータを確認してみる
以下のコマンドを実行する
runqry () qtemp/sample
取得結果はこんな感じ
Line ....+....1....+....2....+....3....+
SAMPLE
000001 sample data 1
000002 sample data 2
000003 sample data 3
****** ******** End of report ********
【補足】
select * from qtemp/sampleをするような場合、こういったコマンドで簡単に全件取得できます。
strsqlコマンドを使って、上記SQLを実行してもいいし、wrkqryコマンドを使ってqtemp/sampleのデータを参照しても、登録データの確認は可能です。