|
This one may be a bit tricky. The contents of the field and the NULL indicator are unrelated to each other. WS-LAST-DIFF-SEQ-IND may have a value of zero and be NOT NULL or it may contain a value of 100 and be NULL. Even if the value of the field is x'00', I do not believe this affects the null indicator in any way. I ran a quick (ugly) program to test this theory; I'll post it to embarrass myself in front of the real SQL folks on the list! :-) F* Test NULL vs x'00' F* COMMIT(*NONE) OUTPUT(*PRINT) DBGVIEW(*SOURCE) D FIELD1 S 1 D FIELD1Null s 5i 0 inz C* Create a table that allows null C/Exec SQL CREATE TABLE BUCK/SQLSAMPLE (FIELD1 CHAR (1)) C/End-Exec C* Put a record with x'00' C/Exec SQL C+ insert into buck/sqlsample (FIELD1) values(x'00') C/End-Exec C* Put a record with 'A' C/Exec SQL C+ insert into buck/sqlsample (FIELD1) values('A') C/End-Exec C* Put a record with NULL C/Exec SQL C+ insert into buck/sqlsample (FIELD1) values(NULL) C/End-Exec C* Define the cursor C/Exec SQL Declare Crsr Cursor for C+ select field1 from buck/sqlsample C/End-Exec C* Open the file C/Exec SQL Open Crsr C/End-Exec C* Read the records C DoU SqlCod<>0 C/Exec SQL Fetch Crsr into :FIELD1 :FIELD1Null C/End-Exec C If SQLCOD=0 C FIELD1 DSPLY 'BUCK' C FIELD1Null DSPLY 'BUCK' C Else C SqlCod DSPLY 'BUCK' C SqlSTT DSPLY 'BUCK' C EndIf C EndDo C* Close the cursor C/Exec SQL Close Crsr C/End-Exec C* Delete the file C/Exec SQL Drop table buck/sqlsample C/End-Exec C Eval *INLR=*ON Buck Calabro > -----Original Message----- > From: Howard Weatherly > Sent: Tuesday, June 29, 1999 12:04 PM > To: MIDRANGE-L@midrange.com > Subject: Re: Hex '00' to Hex '40'? > > Brad, Sorry about that last post, a Microsoft moment occured! > > Anyway to continue the x'00' is a null and you need to account for nulls > in you > programs: > > 2 WS-LAST-DIFF-SEQ-IND PIC S9(04) BINARY VALUE ZERO. > > EXEC SQL FETCH C1 INTO > :COPY-TABLE, > :LAST-DIFF-SEQUENCE :WS-LAST-DIFF-SEQ-IND, > . > . > In the code you check the indicator variable for a negative to know if the > field > is null. > +--- | This is the Midrange System Mailing List! | To submit a new message, send your mail to MIDRANGE-L@midrange.com. | To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com. | To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.