Re: Screen Mismatch exercise 12

"James B. Byrne via Aubit4gl-discuss" <[email protected]> Thu, 18 Mar 2021 15:08:30 -0400
Newsgroups gmane.comp.lang.4gl.aubit.general
Message-ID <[email protected]>

On Thu, March 18, 2021 12:57, James B. Byrne via Aubit4gl-discuss wrote:
> I am getting a Screen Mismatch error in what is a very simple screen.
>
>
>
> DATABASE stores_demo  -- set PG_DBPATH=database_name@host_address:tcp_port
>
> SCREEN
> {
>   Number     Date Placed     PO No.       PO Date        Paid Date
>  [f001   ] [f002         ] [f003    ] [f002         ] [f002         ]
> }
>
> TABLES
>   orders
>
> ATTRIBUTES
>   f001 = orders.order_num;
>   f002 = orders.order_date;
>   f003 = orders.po_num;
>   f004 = orders.ship_date;
>   f005 = orders.paid_date;
>
> INSTRUCTIONS
>   SCREEN RECORD sa_order[5] (orders.order_num THRU orders.paid_date)
> |________________________________________________________________^
> | Error at line 30, character 66
> | Mismatch in screen record
>
>
> This is the exact code provided in exercise 12 of I4GL by Example.  What is
> wrong with this?
>
>


DEBUG=ALL gives this:

pg8.c                3214   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_open_cursor_inter
nal()  before replace_ibind ni =0
pg8.c                3218   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_open_cursor_inter
nal()  cid->DeclareSql= DECLARE chkscatt_31 CURSOR WITH HOLD FOR select
syscolatt.cond
ition,seqno from syscolatt WHERE tabname='orders' AND colname='paid_date' ORDER
BY seq
no buff2= DECLARE chkscatt_31 CURSOR WITH HOLD FOR select
syscolatt.condition,seqno fr
om syscolatt WHERE tabname='orders' AND colname='paid_date' ORDER BY seqno
pg8.c                3232   dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_open_cursor_inter
nal()  Bad prepare ERROR:  relation "syscolatt" does not exist
LINE 1: ...TH HOLD FOR select syscolatt.condition,seqno from syscolatt ...
                                                             ^
pg8.c                4181   dbg (     0,     0,0) SetErrno                 () 
In SetE
rrno - res=0x801975a60
pg8.c                4197   dbg (     0,     0,0) SetErrno                 () 
This st
ate=42P01
pg8.c                4209   dbg (     0,     0,0) SetErrno                 () 
Postgre
s says : 42P01 relation "syscolatt" does not exist
pg8.c                4211   dbg (     0,     0,0) SetErrno                 () 
And Pos
tgres says : (null)
. . .

I do not understand this but from appearances this is saying that the compiler
is expecting to find a table named syscolatt in order to get the
characteristics of the columns in the form.  That fails and so the form
compilation fails.  But, that table is specific to Informix is it not?

-- 
***          e-Mail is NOT a SECURE channel          ***
        Do NOT transmit sensitive data via e-Mail
   Unencrypted messages have no legal claim to privacy
 Do NOT open attachments nor follow links sent by e-Mail

James B. Byrne                mailto:[email protected]
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3