| **Navigation:**  [[introduction.htm|Language Reference]] > 13 - Built-in Functions >====== NULL (return null file field) ====== | [[notify send safe information to a receiver thread .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[numeric return numeric string .htm|{{btn_next_n.gif|Next page}}]] | | || {{newc7.jpg|NewC7.jpg}} **NULL(**//field//**)** **NULL(**//file//, //field//**)** {{blk2blue.jpg|blk2blue.jpg}} | **NULL** | Determines null "value" of a //field//. | | //field// | The label (including prefix) of a field in a FILE structure. This may be a GROUP or RECORD structure. | | //file// | The label of a FILE. | The **NULL** procedure returns a non-zero value (true) if the //field// is null, and zero (false) if the //field// contains any known value (including blank or zero). If the //field// is a GROUP or RECORD structure, all component fields of the GROUP or RECORD must be null for NULL to return true. (All SQL drivers) NULL(datefield) and NULL(timefield) returns TRUE if they are part of a DATE/TIME group and the corresponding column on the server is NULL Support for null "values" in a FILE is entirely dependent upon the file driver. You can pass a file as the first parameter to **NULL**. This allows you to pass references to fields (see the example below). | **Return Data Type:** | LONG | **Example:** **Customer FILE,DRIVER('MSSQL'),PRE(Cus)  !Declare customer file layout** **AcctKey   KEY(Cus:AcctNumber)** **Record     RECORD** **AcctNumber  LONG** **OrderNumber LONG** **Name        STRING(20)** **Addr        STRING(20)** **CSZ         STRING(35)** **           END** **         END** **Header  FILE,DRIVER('MSSQL'),PRE(Hea)  !Declare header file layout** **AcctKey    KEY(Hea:AcctNumber)** **Record     RECORD** **AcctNumber  LONG** **OrderNumber LONG** **ShipToName  STRING(20)** **ShipToAddr  STRING(20)** **ShipToCSZ   STRING(35)** **           END** **        END** ** CODE** ** OPEN(Header)** ** OPEN(Customer)** ** SET(Hea:AcctKey)** ** LOOP** **  NEXT(Header)** **   IF ERRORCODE() THEN BREAK.** **  IF ****NULL****(Hea:ShipToName)         !Check for null ship-to address** **   Cus:AcctNumber = Hea:AcctNumber** **   GET(Customer,Cus:AcctKey)      !Get Customer record** **    IF ERRORCODE()** **     CLEAR(Cus:Record)** **    END** **   Hea:ShipToName = Cus:Name      ! and assign customer address** **   Hea:ShipToAddr = Cus:Addr      ! as the ship-to address** **   Hea:ShipToCSZ  = Cus:CSZ** **  END** **  PUT(Header)                     !Put Header record back** ** END** **!Example Two ' Use of file parameter** **SwapNullState PROCEDURE(File F, *? var)** **  CODE** **    IF ****NULL****(f, var)** **      SETNONULL(f, var)** **    ELSE** **      SETNULL(f, var)** **    END** **See Also:** [[setnull set file field null .htm|SETNULL]] [[setnulls set the null state of columns .htm|SETNULLS]] [[setnonull set file field non null .htm|SETNONULL]] [[getnulls get the null state of a table .htm|GETNULLS]]