0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

IBM i (旧AS400)の自己学習メモ08 QTEMPにサクッと開発テスト用の一時ファイル作成(DDSを使わない1カラムテーブル)

Last updated at Posted at 2020-04-08

自己学習メモインデックス

IBM i (旧AS400)の自己学習メモ インデックス

概要

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のデータを参照しても、登録データの確認は可能です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?