.CM  SCRIPT , Version - 1.1 , last edited by D.Dittmar
.ad 8
.bm 8
.fm 4
.bt $Copyright by   SAP AG, 2001$$Page %$
.tm 12
.hm 6
.hs 3
.tt 1 $SQL$Project Distributed Database System$VMT94$
.tt 2 $$$
.tt 3 $JuergenA$write_protfile$1995-11-01$
***********************************************************
.nf
 
 
    ========== licence begin LGPL
    Copyright (C) 2000 SAP AG
 
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.
 
    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    ========== licence end
 
.fo
.nf
.sp
Module  : write_protfile
=========
.sp
Purpose : write_protfile
.CM *-END-* purpose -------------------------------------
.sp
.cp 3
Define  :
 
        PROCEDURE
              m94create_prot (VAR error : integer);
 
        PROCEDURE
              m94switch_prot (first_file : boolean;
                    VAR error  : integer);
 
        PROCEDURE
              m94write_prot (VAR ln : tsp_line;
                    length    : integer;
                    VAR error : integer);
 
        PROCEDURE
              m94close_prot;
 
.CM *-END-* define --------------------------------------
.sp;.cp 3
Use     :
 
        FROM
              RTE-Extension-30 : VSP30;
 
        FUNCTION
              s30gad (VAR b : tsp_line) : tsp_addr;
 
      ------------------------------ 
 
        FROM
              RTE-Extension-10 : VSP10;
 
        PROCEDURE
              s10fil (size : tsp_int4;
                    VAR m : tsp_vfilename;
                    pos : tsp_int4;
                    len : tsp_int4;
                    fillchar : char);
 
        PROCEDURE
              s10mv1(size1 : tsp_int4; size2 : tsp_int4;
                    VAR buf1 : tsp_c20; p1 : tsp_int4;
                    VAR buf2 : tsp_vfilename;  p2 : tsp_int4;
                    anz : tsp_int4);
 
      ------------------------------ 
 
        FROM
              RTE_driver : VEN102;
 
        PROCEDURE
              sqlwrite (
                    VAR text : tsp_line);
 
        PROCEDURE
              sqlabort;
 
        PROCEDURE
              sqlos (VAR os : tsp_os);
 
        PROCEDURE
              sqlfopen (VAR hostfilen  : tsp_vfilename;
                    direction      : tsp_opcodes;
                    recource       : tsp_vf_resource;
                    VAR hostfileno : tsp_int4 ;
                    VAR format     : tsp_vf_format;
                    VAR rec_len    : tsp_int4;
                    poolprt        : tsp_int4;
                    buf_count      : tsp_int2;
                    VAR block      : tsp_int4;
                    VAR error      : tsp_vf_return;
                    VAR hostfileerr : tsp_errtext);
 
        PROCEDURE
              sqlfwrite ( VAR hostfileno : tsp_int4 ;
                    block     : tsp_addr;
                    length    : tsp_int4;
                    VAR error : tsp_vf_return;
                    VAR hostfileerr : tsp_errtext);
 
        PROCEDURE
              sqlfclose (VAR hostfileno : tsp_int4;
                    erase     : boolean;
                    poolprt   : tsp_int4;
                    buf_count : tsp_int2;
                    block     : tsp_addr;
                    VAR error : tsp_vf_return ;
                    VAR hostfileerr : tsp_errtext);
 
      ------------------------------ 
 
        FROM
              Test_Procedures: VMT90;
 
        VAR
              m90blankline : tsp_dataline;
&       if BATCH
 
        PROCEDURE
              m90ctrac (
                    typ  : tsp_int2;
                    VAR nam :  tsp_name;
                    VAR lineinfo : tsp_line;
                    len   : tsp_int2;
                    pos   : tsp_int2);
&       endif
 
        PROCEDURE
              m90putint (
                    VAR lineinfo : tsp_dataline;
                    integervalue : integer;
                    fieldlength  : tsp_fieldrange;
                    VAR ok       : boolean);
 
        PROCEDURE
              m90putprompt (
                    VAR dl       : tsp_dataline;
                    nam      : tsp_sname;
                    VAR ok       : boolean);
 
.CM *-END-* use -----------------------------------------
.sp;.cp 3
Synonym :
 
        PROCEDURE
              sqlfwrite;
 
              tsp_vf_bufaddr tsp_addr
 
        PROCEDURE
              sqlfclose;
 
              tsp_vf_bufaddr tsp_addr
 
        PROCEDURE
              s10mv1;
 
              tsp_moveobj tsp_c20
              tsp_moveobj tsp_vfilename
 
        PROCEDURE
              s10fil;
 
              tsp_moveobj tsp_vfilename
 
        FUNCTION
              s30gad;
 
              tsp_moveobj tsp_line
 
        PROCEDURE
              sqlwrite;
 
              tsp00_Line tsp_line
 
        PROCEDURE
              sqlos;
 
              tsp00_Os tsp_os
 
        PROCEDURE
              sqlfopen;
 
              tsp00_VFilename     tsp_vfilename
              tsp00_VFileOpCodes  tsp_opcodes
              tsp00_VfResource    tsp_vf_resource
              tsp00_Int4          tsp_int4
              tsp00_VfFormat      tsp_vf_format
              tsp00_Int4          tsp_int4
              tsp00_Int4          tsp_int4
              tsp00_Int2          tsp_int2
              tsp00_VfBufaddr     tsp_int4
              tsp00_VfReturn      tsp_vf_return
              tsp00_ErrText       tsp_errtext
 
        PROCEDURE
              sqlfwrite;
 
              tsp00_Int4      tsp_int4
              tsp00_VfBufaddr tsp_addr
              tsp00_Int4      tsp_int4
              tsp00_VfReturn  tsp_vf_return
              tsp00_ErrText   tsp_errtext
 
        PROCEDURE
              sqlfclose;
 
              tsp00_Int4      tsp_int4
              tsp00_Int4      tsp_int4
              tsp00_Int2      tsp_int2
              tsp00_VfBufaddr tsp_addr
              tsp00_VfReturn  tsp_vf_return
              tsp00_ErrText   tsp_errtext
 
.CM *-END-* synonym -------------------------------------
.sp;.cp 3
Author  : JuergenA
.sp
.cp 3
Created : 1983-07-07
.sp
.cp 3
Version : 2001-03-19
.sp
.cp 3
Release :  6.1.2     Date : 1995-11-01
.sp
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Specification:
 
.CM *-END-* specification -------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.fo
.oc _/1
Description:
 
.CM *-END-* description ---------------------------------
.sp 2
***********************************************************
.sp
.cp 10
.nf
.oc _/1
Structure:
 
.CM *-END-* structure -----------------------------------
.sp 2
**********************************************************
.sp
.cp 10
.nf
.oc _/1
.CM -lll-
Code    :
 
 
VAR
      m94protfile : tsp_int4;
      m94line     : tsp_dataline;
 
 
(*------------------------------*) 
 
PROCEDURE
      m94create_prot (VAR error : integer);
 
CONST
      open_file_err = 'ERROR ON Open File: ';
 
VAR
      os        : tsp_os;
      format    : tsp_vf_format;
      open_err  : tsp_vf_return;
      rec_len   : tsp_int4;
      block     : tsp_int4;
      poolp     : tsp_int4;
      shortname : tsp_c20;
      fn        : tsp_vfilename;
      errtext   : tsp_errtext;
      i         : integer;
      ok        : boolean;
      str20     : tsp_c20;
 
BEGIN
s10fil (mxsp_vfilename, fn, 1, mxsp_vfilename, bsp_c1);
sqlos (os);
CASE os OF
    os_unix :
        shortname := 'trace.prot          ';
    os_vms :
        shortname := 'RVX_UTIL_DN         ';
    os_windows, os_win32, os_os2 :
        shortname := 'trace.prt           ';
    END;
(*ENDCASE*) 
s10mv1 (20, mxsp_vfilename, shortname, 1, fn, 1, 20);
error := 0;
rec_len := 0;
format := vf_plaintext;
poolp  := 0;
sqlfopen (fn, voverwrite, vf_stack,
      m94protfile, format, rec_len, poolp, 0,
      block, open_err, errtext);
IF  open_err <> vf_ok
THEN
    error := ord (open_err);
(*ENDIF*) 
IF  error <> 0
THEN
    BEGIN
    m94line := m90blankline;
    str20 := open_file_err;
    FOR i := 1 TO 20 DO
        m94line.text [ i ] := str20 [i];
    (*ENDFOR*) 
    FOR i := 1 TO 15 DO
        m94line.text [ 19 + i ] := shortname [i];
    (*ENDFOR*) 
    m94line.pos    := 34;
    m94line.length := 34;
    m90putint (m94line,error, 6, ok);
    FOR i := 1 TO 40 DO
        m94line.text [ m94line.pos+1 + i ] := errtext [i];
    (*ENDFOR*) 
    m94line.pos := m94line.pos + 41;
    sqlwrite (m94line.text);
    sqlabort;
    END;
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      m94switch_prot (first_file : boolean;
            VAR error  : integer);
 
CONST
      open_file_err = 'ERROR ON Open File: ';
 
VAR
      os        : tsp_os;
      format    : tsp_vf_format;
      open_err  : tsp_vf_return;
      rec_len   : tsp_int4;
      block     : tsp_int4;
      poolp     : tsp_int4;
      shortname : tsp_c20;
      fn        : tsp_vfilename;
      errtext   : tsp_errtext;
      i         : integer;
      ok        : boolean;
      str20     : tsp_c20;
 
BEGIN
s10fil (mxsp_vfilename, fn, 1, mxsp_vfilename, bsp_c1);
sqlos (os);
CASE os OF
    os_unix :
        shortname := 'trace.prot          ';
    os_vms :
        shortname := 'RVX_UTIL_DN         ';
    os_windows, os_win32, os_os2 :
        shortname := 'trace.prt           ';
    END;
(*ENDCASE*) 
IF  NOT first_file
THEN
    shortname [5] := '2';
(*ENDIF*) 
s10mv1 (20, mxsp_vfilename, shortname, 1, fn, 1, 20);
error := 0;
rec_len := 0;
format := vf_plaintext;
poolp  := 0;
sqlfopen (fn, voverwrite, vf_stack,
      m94protfile, format, rec_len, poolp, 0,
      block, open_err, errtext);
IF  open_err <> vf_ok
THEN
    error := ord (open_err);
(*ENDIF*) 
IF  error <> 0
THEN
    BEGIN
    m94line := m90blankline;
    str20 := open_file_err;
    FOR i := 1 TO 20 DO
        m94line.text [ i ] := str20 [i];
    (*ENDFOR*) 
    FOR i := 1 TO 15 DO
        m94line.text [ 19 + i ] := shortname [i];
    (*ENDFOR*) 
    m94line.pos    := 34;
    m94line.length := 34;
    m90putint (m94line,error, 6, ok);
    FOR i := 1 TO 40 DO
        m94line.text [ m94line.pos+1 + i ] := errtext [i];
    (*ENDFOR*) 
    m94line.pos := m94line.pos + 41;
    sqlwrite (m94line.text);
    sqlabort;
    END;
(*ENDIF*) 
END;
 
(*------------------------------*) 
 
PROCEDURE
      m94write_prot (VAR ln : tsp_line;
            length    : integer;
            VAR error : integer);
 
VAR
      len       : integer;
      write_err : tsp_vf_return;
      errtext   : tsp_errtext;
      lnaddr    : tsp_addr;
      nam       : tsp_name;
 
BEGIN
error := 0;
IF  length > 0
THEN
    BEGIN
    len := length;
    WHILE (len > 1) AND (ln [len ] = ' ') DO
        len := len - 1
    (*ENDWHILE*) 
    END
ELSE
    BEGIN
    ln  [1]  := ' ';
    len := 1
    END;
(*ENDIF*) 
lnaddr := s30gad (ln);
&ifndef BATCH
sqlfwrite (m94protfile, lnaddr, len, write_err,errtext);
IF  write_err <> vf_ok
THEN
    error := ord(write_err);
&else
(*ENDIF*) 
nam := '#                 ';
nam [1] := chr(0);
m90ctrac ( 1, nam, ln, len, 1);
&endif
END;
 
(*------------------------------*) 
 
PROCEDURE
      m94close_prot;
 
VAR
      close_err : tsp_vf_return;
      errtext : tsp_errtext;
 
BEGIN
sqlfclose (m94protfile, false, 0, 0, NIL, close_err, errtext);
END;
 
.CM *-END-* code ----------------------------------------
.SP 2 
***********************************************************
*-PRETTY-*  statements    :         75
*-PRETTY-*  lines of code :        206        PRETTYX 3.10 
*-PRETTY-*  lines in file :        500         1997-12-10 
.PA 
