Page 1 of 1

CheckDatabaseNull() Question

Posted: Tue Sep 02, 2025 4:21 pm
by swhite
Hi

When I use the CheckDatabaseNull() function I always see the following message in the console window:
row number -1 is out of range 0..-1
I am using Postgres as the database. Is this an error message of some kind or can it be safely ignored? The function is working correctly so I am wondering what is the meaning of the message.

Simon

Re: CheckDatabaseNull() Question

Posted: Wed Sep 03, 2025 5:18 am
by jacdelad
Show us the code which shows the problem.

Re: CheckDatabaseNull() Question

Posted: Wed Sep 03, 2025 8:40 pm
by swhite

Code: Select all

Procedure.i dBRecord(Map tmRec.dBValue(),tnDb.i=#dCDatabaseNo)
   Define ln.i
   ClearMap(tmRec())
  
   For ln=0 To DatabaseColumns(tnDb)-1
      Select DatabaseColumnType(tnDb,ln)
         Case #PB_Database_String
            If CheckDatabaseNull(tnDb,ln)
               tmRec(DatabaseColumnName(tnDb,ln))\ValueS = ""
            Else
               tmRec(DatabaseColumnName(tnDb,ln))\ValueS = GetDatabaseString(tnDb,ln)
            EndIf
            tmRec()\Type = "S"
         Case #PB_Database_Long, #PB_Database_Quad
            If CheckDatabaseNull(tnDb,ln)
               tmRec(DatabaseColumnName(tnDb,ln))\ValueI = 0
            Else
               tmRec(DatabaseColumnName(tnDb,ln))\ValueI = GetDatabaseLong(tnDb,ln)
            EndIf
            tmRec()\Type = "I"
         Default
            If CheckDatabaseNull(tnDb,ln)
               tmRec(DatabaseColumnName(tnDb,ln))\ValueD = 0.00
            Else
               tmRec(DatabaseColumnName(tnDb,ln))\ValueD = GetDatabaseDouble(tnDb,ln)
            EndIf
            tmRec()\Type = "D"
      EndSelect
   Next
   FinishDatabaseQuery(tnDB)
   ProcedureReturn ln
EndProcedure