ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzaef_5.4.0.1/rzaefcpydatabase.htm

172 lines
12 KiB
HTML

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="dc.language" scheme="rfc1766" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<meta name="dc.date" scheme="iso8601" content="2005-09-06" />
<meta name="copyright" content="(C) Copyright IBM Corporation 2000, 2006" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow"/>
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="keywords" content="copy example, QNetWare file system,
MKDIR (Create Directory) command, Create Directory (MKDIR) command,
MKDIR (Create Directory), command, CL, Create Directory (MKDIR), creating,
directory, CRTLF (Create Logical File) command,
Create Logical File (CRTLF) command, CRTLF (Create Logical File),
Create Logical File (CRTLF), logical file,
DSPFD (Display File Description) command,
Display File Description (DSPFD) command, DSPFD (Display File Description),
Display File Description (DSPFD), description, displaying, files,
file description, CRTPF (Create Physical File) command,
Create Physical File (CRTPF) command, CRTPF (Create Physical File),
Create Physical File (CRTPF), physical file, CPYF (Copy File) command,
Copy File (CPYF) command, CPYF (Copy File), Copy File (CPYF), copying, file,
CPYTOSTMF (Copy To Stream File) command, Copy To Stream File (CPYTOSTMF) command,
CPYTOSTMF (Copy To Stream File), Copy To Stream File (CPYTOSTMF), to stream file,
stream file, path name, conversion, CCSID, ASCII, EBCDIC to ASCII, code page" />
<title>Example: Copying an iSeries database file that has packed decimal
fields to the QNetWare file system</title>
<link rel="stylesheet" type="text/css" href="ibmidwb.css" />
<link rel="stylesheet" type="text/css" href="ic.css" />
</head>
<body>
<a id="Top_Of_Page" name="Top_Of_Page"></a><!-- Java sync-link -->
<script language = "Javascript" src = "../rzahg/synch.js" type="text/javascript"></script>
<a name="cpydatabase"></a>
<h4 id="cpydatabase">Example: Copying an iSeries database file that has packed decimal
fields to the QNetWare file system</h4><a id="idx182" name="idx182"></a>
<a name="wq100"></a>
<div class="notetitle" id="wq100">Note:</div>
<div class="notebody">Read the <a href="rzaef02.htm#netwcodedisclaimer">Code disclaimer information</a> for important legal
information.</div>
<p>Suppose you want to make an iSeries&trade; database file available to all NetWare users.
If the database file is externally defined (using DDS) and has packed decimal
fields, you cannot copy it directly to a file in QNetWare file system. You need to first
copy it to a physical file; then you can copy it to a file in QNetWare. If fields
are in packed decimal format, you need to create a logical file to convert
the packed decimal fields to zoned decimal fields. The following example shows
how to copy and convert a file that contains packed decimal fields. You can
also see an example of how you might do this with an <a href="rzaefqlspgmx.htm#qlspgmx">ILE C for iSeries program</a>.</p>
<p>The file in this example is in library DATALIB and has the name CUSTCDT.
You can refer to these example displays:</p>
<ul>
<li><a href="rzaefifsql14.htm#ifsql14">Example: DDS for iSeries database file CUSTCDT</a> shows the DDS description of this example file,
which has packed decimal fields.</li>
<li>If you are unfamiliar with DDS definitions, you can refer to <a href="rzaefifsql16.htm#ifsql16">Example: DSPFFD of iSeries database file CUSTCDT</a>,
which shows the output of the <tt class="xph">DSPFFD CUSTCDT</tt> command.</li>
<li><a href="rzaefifsql15.htm#ifsql15">Example: Content of CUSTCDT database file display that Query for iSeries creates</a>.</li>
<li><a href="rzaefifsql17.htm#ifsql17">Example: DDS for logical file CUSTCDTL</a>.</li></ul>
<p>To copy the CUSTCDT database file to the QNetWare file system, you would follow these
steps: </p>
<ol type="1">
<li id="lqlscd">
<a name="lqlscd"></a>Create a directory in the QNetWare file system to use for storing iSeries database
files. For example, to create a directory on server SRVNW0A, you would enter:
<pre class="xmp"> MKDIR DIR('/QNetWare/SRVNW0A.SVR/SYS/DTA')
DTAAUT(*INDIR) OBJAUT(*INDIR) CRTOBJAUD(*NONE)</pre><a id="idx183" name="idx183"></a><a id="idx184" name="idx184"></a><a id="idx185" name="idx185"></a><a id="idx186" name="idx186"></a><a id="idx187" name="idx187"></a><a id="idx188" name="idx188"></a></li>
<li>To convert packed decimal fields to zoned decimal:
<ol type="a"><a id="idx189" name="idx189"></a><a id="idx190" name="idx190"></a><a id="idx191" name="idx191"></a><a id="idx192" name="idx192"></a><a id="idx193" name="idx193"></a><a id="idx194" name="idx194"></a>
<li>Create a logical file CUSTCDTL over CUSTCDT:
<pre class="xmp">CRTLF FILE(DATALIB/CUSTCDTL) SRCFILE(DATALIB/QDDSSRC)</pre>CUSTCDTL is the name of the logical file, and DATALIB/QDDSSRC is the
source physical file that contains the member CUSTCDTL. <a href="rzaefifsql17.htm#ifsql17">Example: DDS for logical file CUSTCDTL</a> shows
the DDS definition of such a logical file.
<p>Optionally, you can select a
subset of fields you want to copy to QNetWare. Just put the fields you need
into the logical file. You can also specify an ordering sequence on the logical
file.</p></li>
<li>To redefine packed decimal fields as zoned decimal, specify <tt class="xph">S</tt> for
the data type for those fields.
<p>There is no need to specify other field
definitions. The logical file is built over the physical file and copies all
the field definitions from it.</p></li></ol></li>
<li>After you create the logical file, you can use it to copy the data to
a program-described physical file. But first you must create the program-described
physical file. To do that, you must know the record length of the logical
file, because the program-described file must have the same record length.
You can find the record length of the logical file by using the command:
<pre class="xmp">DSPFD FILE(CUSTCDTL) TYPE(*RCDFMT)</pre>
<p>The resulting display for the example
logical file CUSTCDTL shows that it has a record length of 60: </p>
<pre class="screen"> Record Format Level
Format Fields Length Identifier
CUSREC 11 60 3B84438D4C428
Text . . . . . . . . . . . . . . . . . . . :
Total number of formats . . . . . . . . . . : 1
Total number of fields . . . . . . . . . . . : 11
Total record length . . . . . . . . . . . . : <span class="bold">60</span></pre><a id="idx195" name="idx195"></a><a id="idx196" name="idx196"></a><a id="idx197" name="idx197"></a><a id="idx198" name="idx198"></a><a id="idx199" name="idx199"></a><a id="idx200" name="idx200"></a><a id="idx201" name="idx201"></a><a id="idx202" name="idx202"></a><a id="idx203" name="idx203"></a><a id="idx204" name="idx204"></a><a id="idx205" name="idx205"></a><a id="idx206" name="idx206"></a></li>
<li>Create the program-described physical file:
<p><tt class="xph">CRTPF DATALIB/CUSTSTMF
RCDLEN(60)</tt></p></li><a id="idx207" name="idx207"></a><a id="idx208" name="idx208"></a><a id="idx209" name="idx209"></a><a id="idx210" name="idx210"></a><a id="idx211" name="idx211"></a><a id="idx212" name="idx212"></a>
<li>Copy the logical file CUSTCDTL to the program-described physical file
CUSTSTMF:
<p><tt class="xph">CPYF FROMFILE(CUSTCDTL) TOFILE(CUSTSTMF) MBROPT(*ADD) FMTOPT(*NOCHK)</tt></p>
<p>FMTOPT(*NOCHK) is required because the record formats of the
database files are different.</p></li><a id="idx213" name="idx213"></a><a id="idx214" name="idx214"></a><a id="idx215" name="idx215"></a><a id="idx216" name="idx216"></a><a id="idx217" name="idx217"></a><a id="idx218" name="idx218"></a>
<li>Copy the program-described file CUSTSTMF into the QNetWare/SRVNW0A.SVR/SYS/DTA
directory of the QNetWare file system that you created in step <a href="rzaefcpydatabase.htm#lqlscd">1</a>:
<ol type="a">
<li>On the iSeries command line, type <tt class="xph">CPYTOSTMF</tt> and press F4. The Copy
to Stream File (CPYTOSTMF) display appears, as in this example:
<pre class="screen"> Copy To Stream File (CPYTOSTMF)
Type choices, press Enter.
From database file member . . <span><span class="refkey">&nbsp;1&nbsp;</span></span> &gt; <span class="bold-italic">'/QSYS.LIB/DATALIB.LIB/CUSTSTMF.FILE
/CUSTSTMF.</span><span class="bold-italic">MBR'</span>
To stream file . . . . . . . . <span><span class="refkey">&nbsp;2&nbsp;</span></span> &gt; <span class="bold-italic">'/QNetWare/SRVNW0A.SVR/SYS/DTA/CUSTCDT.DAT'</span>
Copy options . . . . . . . . . . *NONE *NONE, *ADD, *REPLACE
Data conversion options . . . <span><span class="refkey">&nbsp;3&nbsp;</span></span> *AUTO *AUTO, *TBL, *NONE
Database file CCSID . . . . . <span><span class="refkey">&nbsp;4&nbsp;</span></span> &gt; 37 1-65533, *FILE
Stream file codepage . . . . . <span><span class="refkey">&nbsp;5&nbsp;</span></span> &gt; 850 1-32767, *STMF
End of line characters . . . . . *CRLF *CRLF, *LF, *CR, *LFCR...
Bottom
F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display
F24=More keys
</pre></li>
<li>In the <tt class="xph">From database file member</tt> field, specify
the path name of the CUSTSTMF program-described database file <span><span class="refkey">&nbsp;1&nbsp;</span></span>.</li><a id="idx219" name="idx219"></a><a id="idx220" name="idx220"></a>
<li>In the <tt class="xph">To stream file</tt> field, specify the path name of the stream
file <span><span class="refkey">&nbsp;2&nbsp;</span></span>.
<p>In this case you would use the drive letter
as a link to CUSTCDT.DAT.</p></li><a id="idx221" name="idx221"></a><a id="idx222" name="idx222"></a><a id="idx223" name="idx223"></a><a id="idx224" name="idx224"></a><a id="idx225" name="idx225"></a>
<li>The default value for the <tt class="xph">Data conversion option</tt> causes iSeries to use the coded character set identifier (CCSID) equivalent of the
stream file data code page and the database file CCSID to convert the data
during the copy operation. To use your own translation table object instead,
specify <span class="italic">*TBL</span> and enter the table name into the TBL
parameter. <span class="refkey">&nbsp;3&nbsp;</span></li>
<li>If your database file has a CCSID of 65535, you must enter a valid CCSID
code in the <tt class="xph">Database file CCSID</tt> field for your data to be correctly
converted to ASCII. The values 0, 65534, and 65535 are not valid to use with
this command. <span><span class="refkey">&nbsp;4&nbsp;</span></span></li>
<li>In the <tt class="xph">Stream file code page</tt> field, specify the ASCII code
page of the NetWare server to convert the data. To obtain the code page of server <tt class="xph">SRVNW0A</tt>, you would enter:
<pre class="xmp"> DSPMFSINF OBJ('/QNetWare/SRVNW0A.SVR/SYS/DTA')</pre>This example converts the database file data from CCSID 37 to ASCII
code page 850.<span><span class="refkey">&nbsp;5&nbsp;</span></span></li></ol></li>
<li>Now you can access the data from a NetWare workstation. Map a drive to the
SYS volume of server SRVNW0A and then change into the DTA directory of the
mapped drive.</li>
<li>You can now look at the data in CUSTCDT.DAT (use any DOS editor), and
you will see that the file no longer contains any field information. The
application that accesses the data must know the record structure. To put
more field information into the stream file (such as a field separator character),
you must write your own program.</li></ol>
<a id="Bot_Of_Page" name="Bot_Of_Page"></a>
</body>
</html>