To Nages: Record deleted but make error also RESOLVED

Post Reply
User avatar
Silvio.Falconi
Posts: 7110
Joined: Thu Oct 18, 2012 7:17 pm

To Nages: Record deleted but make error also RESOLVED

Post by Silvio.Falconi »

Now the record is deleted on archive but when save the array on dbf make error

the error

Code: Select all | Expand

Error description: Error BASE/1102  Argument error: UPPER
   Args:
     [   1] = A   {"00003",4.10,11.00,17.60,0.90,.T.,0,16777215,.F.,"molto fine  ","1234567890123                ... } length: 32

Stack Calls
===========
   Called from:  => UPPER( 0 )
   Called from: .\source\function\DBFFUNC2.PRG => (b)FW_SAVEARRAYTODBF( 879 )
   Called from:  => ASCAN( 0 )
   Called from: .\source\function\DBFFUNC2.PRG => FW_SAVEARRAYTODBF( 879 )
   Called from: .\source\classes\DATABASE.PRG => TRIGHEMODULI:HB_EXECFROMARRAY( 0 )
   Called from: .\source\classes\DATABASE.PRG => TRIGHEMODULI:FW_SAVEARRAYTODBF( 1624 )
   Called from: TEST.PRG => TESTDEL( 131 )
   Called from: TEST.PRG => MAIN( 26 )

TO save a xbrowse ( with array with 31 record + "recno()") I made


Check if there are deleted records

Code: Select all | Expand

      if ! Empty( oBrowse:aDeleted )
             AEval( oBrowse:aDeleted, { |a| a[ 32 ] := -a[ 32 ] } )
            oDbfMod:SaveArrayToDBF( cItemFlds, oBrowse:aDeleted )
         endif
save on first record the code (oRec:codRep) and save on 29 record the counter "00001"

Code: Select all | Expand

AEval( aDataForm, { |a| a[ 1 ] := oRec:codRep } )
         AEval( aDataForm, { |a,i| a[ 29 ] := strzero(i,5) } )
save on archive ( here make the error )

Code: Select all | Expand

oDbfMod:FW_SaveArrayToDBF( aDataForm,cItemFlds,,.t. )
Last edited by Silvio.Falconi on Wed Nov 22, 2023 8:57 pm, edited 1 time in total.
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
Silvio.Falconi
Posts: 7110
Joined: Thu Oct 18, 2012 7:17 pm

Re: To Nages: Record deleted but make error also

Post by Silvio.Falconi »

this morning I corrected with

Code: Select all | Expand

if ! Empty( oBrowse:aDeleted )
              AEval( oBrowse:aDeleted, { |a| a[ 32 ] := -a[ 32 ] } )
              oDbfMod:SaveArrayToDBF( cItemFlds, oBrowse:aDeleted )
           endif
           //save
         AEval( aDataForm, { |a| a[ 1 ] := oRec:codRep } )
         AEval( aDataForm, { |a,i| a[ 29 ] := strzero(i,5) } )
         oDbfMod:ArrayToDBF( aDataForm ,  cItemFlds,, .t., .t. )
on test seem run ok

when I put into prg make error

Error description: Error BASE/1070 Argument error: ==
Args:
[ 1] = C
[ 2] = N 0

Stack Calls
===========
Called from: .\source\function\DBFFUNC2.PRG => FW_FIELDSPUT( 986 )
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
nageswaragunupudi
Posts: 10701
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 3 times
Contact:

Re: To Nages: Record deleted but make error also

Post by nageswaragunupudi »

There is no problem with oBrw:aDeleted array.

When a programmer tries to save this array or any other array to DBF it is his responsibility to match the type of the array elements with the datatypes of the corresponding fields of the DBF.
Regards

G. N. Rao.
Hyderabad, India
User avatar
Silvio.Falconi
Posts: 7110
Joined: Thu Oct 18, 2012 7:17 pm

Re: To Nages: Record deleted but make error also

Post by Silvio.Falconi »

nageswaragunupudi wrote:There is no problem with oBrw:aDeleted array.

When a programmer tries to save this array or any other array to DBF it is his responsibility to match the type of the array elements with the datatypes of the corresponding fields of the DBF.
I actually don't know why when I delete one it assigns a number in position 32, where I added the "recno" field as it is done on yunus.prg
If I add and delete, a number is not inserted
So we arrived at this conclusion which seems to work

AEval( oBrowse:aDeleted, { |a| IF(a[ 32 ] ==0, a[32] := len(oBrowse:aDeleted),nil) } )

also because the programmer checked for days the exact correspondence between fields and values in the fields and everything seemed fine except for the last field which in reality is not a field from the archive but has been added into the array
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Post Reply