Tip:SQL Read File (many Member)
CREATE ALIAS QTEMP.myALIAS FOR LIB.QRPGSRC (PGM1)SELECT QTEMP.myALIAS
DROP ALIAS QTEMP.myALIAS
File ใน DB2/400 (มีโครงสร้าง พิเศษ) สามารถจัดเก็บ 1 File ได้หลาย Member
ตย. Source Code (เช่น QRPGSRC, QDDSSRC) ที่เก็บ RPG, Physical,Logical,Display File
ตย. File ที่ IBM มักจะแนะนำให้ใช้ คือ File Monthly แยก Member ตาม ปี/เดือน เป็นต้น
(ไม่เหมาะกับ SQL)
คำสั่งมาตรฐาน SELECT ไม่มี Syntax ที่ใช้อ้างอิง โครงสร้างพิเศษ ข้างต้น
ต้องสร้าง object ที่ระบุ Member เจาะจง รู้จักกันในชื่อ ALIAS
ชุดคำสั่งข้างบน ทำให้อ่าน Member ที่เจาะจงได้
(เรียกใช้งานได้ใน iSeries Navigator)
ตย. ใน DotNet : ต้องการสร้าง Class เกี่ยวกับ Database โดยสร้างจาก DB2
ณ.วันนี้ (2015/07/23) ยังไม่มีเครื่องมือช่วยสร้าง
บน DB2 LIB.QDDSSRC (myFile) จัดเก็บลักษณะนี้
R MYFILER1
FLDA 10 COLHDG('FIELD-A')
FLDB 8 COLHDG('FIELD-B')
...
มีประมาณ 30-50 field
บน DotNet ต้องสร้าง code ลักษณะนี้ (ตย. แบบย่อ)
Class myFILE
Property FLDA as String
Property FLDB as String
...
Sub GetData (byVal myID as String)
'...SQL to DataTable
Loop Data Table
FLDA = dt.FLDA
FLDB = dt.FLDB
...
End loop
End Sub
End Class
ถ้าต้องทำ 1-2 File - เปิด Editor แล้ว Copy / Paste เร็วที่สุด
แต่ถ้าต้องทำ มากกว่า 5 file แต่ละ File มี Field มาก ลองสร้าง Tool
สังเกต Code สีชมพู (ที่มีลักษณะแน่นอน)
Code สีชมพูดในส่วนที่ 2 ทำง่ายกว่า ครับ
Select srcdta
,substr(srcdta,19,6) || ' = dt.' || substr(srcdta,19,6)
From qtemp.myAlias
Where substr(srcdta,7,1)<>'*' and substr(srcdta,17,1)=' '
and substr(srcdta,19,6)<>' '
,substr(srcdta,19,6) || ' = dt.' || substr(srcdta,19,6)
From qtemp.myAlias
Where substr(srcdta,7,1)<>'*' and substr(srcdta,17,1)=' '
and substr(srcdta,19,6)<>' '
SQL Result
A MXOPEC 2 COLHDG('OPEC CODE') MXOPEC = dt.MXOPEC
++ A MXCOMC 1 COLHDG('COMC CODE') MXCOMC = dt.MXCOMC
Select srcdta
,' Property ' || substr(srcdta,19,6)
|| Case Trim(substr(srcdta,36,2))
When ' ' Then ' As String'
Else ' As Float' End
|| ' '' '
|| Replace(Replace(Trim(substr(srcdta,44,30)),'COLHDG(''',''),''')','')
From qtemp.myAlias
Where substr(srcdta,7,1)<>'*' and substr(srcdta,17,1)=' '
and substr(srcdta,19,6)<>' '
SQL Result
A MXTYCD 5 COLHDG('TYPY CODE') Property MXTYCD As String ' TYPE CODE
C A MXTYPE 25 COLHDG('TYPY') Property MXTYPE As String ' TYPE
A MXWEIT 7 3 COLHDG('WEIGHT') Property MXWEIT As Float ' WEIGHT
A MXODOW 7 4 COLHDG('O/W') Property MXODOW As Float ' O/W
Reference
http://search400.techtarget.com/tip/Using-SQL-on-System-i-to-color-source-code-and-inline-comments