After using #00 in 9.01 the problem cleared up and the app worked in 9.01. The sqlite addon is very fussy about datatypes as it should be.
Thanks. On Thu, Dec 19, 2019 at 3:47 PM Henry Rich <henryhr...@gmail.com> wrote: > I should have been clearer. > > (#pos)#00 > > is the right way for 9.01 and later. > > (#pos)#<:1 > > works for all versions. > > Henry Rich > > On 12/19/2019 2:58 PM, John Baker wrote: > > Thanks Henry, > > > > I will keep looking after I try your datatype suggestions. > > > > > > > > On Thu, Dec 19, 2019 at 12:55 PM Henry Rich <henryhr...@gmail.com> > wrote: > > > >> As of 9.01 > >> > >> seq=. (#pos)#<:1.0 > >> > >> produces a float result, because of the 1.0. In earlier versions 1.0 > >> produced boolean and the <: created int. > >> > >> Now you can get int by changing the 1.0 to 1 (that will be boolean, then > >> converted to int), or more simply with > >> > >> seq=. (#pos)#00 > >> > >> because 00 is always int. > >> > >> > >> I don't see how the assignment could fail. Is it perhaps failing > >> instead in the first line of the try., where it is passing the wrong > >> type to the DLL? > >> > >> Henry Rich > >> > >> > >> > >> On 12/19/2019 2:47 PM, John Baker wrote: > >>> I have a J application that scans directories of TAB delimited CSV > files > >>> created > >>> by a Python program that downloads image metadata from > >>> https://conceptcontrol.smugmug.com/ > >>> The J app consolidates all the CSV data into one compact sqlite > database. > >>> > >>> This application is complicated so I expected issues with moving to > 9.01. > >>> The app didn't > >>> run in 9.01 failing on sqlite insert statements. I tried again today > >>> aiming to find out why things > >>> work in 8.07 but fail in 9.01. > >>> > >>> The app fails in the following loop and it appears to have nothing to > do > >>> with sqlite or the sqlite addon. > >>> Something strange is happening in the 9.01 for loop. The problem > >> manifests > >>> in the line: > >>> > >>> seq=. (#pos)#<:1.0 NB. insure integer datatype (does not work in 9.01 - > >>> produces floating instead of integer) > >>> > >>> > >>> NB. insert galleries one at a time - allows better debugging > >>> > >>> idg=. ThumbName i. AlbumName > >>> > >>> tab=. 'ThumbnailGallery' > >>> > >>> cln=. 0 {"1 sqldict__dt tab > >>> > >>> > >>> for_gal. ~.AlbumName do. > >>> > >>> > >>> pos=. I. gal=AlbumName > >>> > >>> idGal=. pos { idg > >>> > >>> idThb=. pos { LocalThumbID > >>> > >>> > >>> seq=. (#pos)#<:1.0 NB. insure integer datatype > >>> > >>> > >>> NB. insert gallery data > >>> > >>> try. rc=. sqlinsert__dt tab;cln;<idGal;idThb;seq catcht. rc=. _1 end. > >>> > >>> > >>> if. 0 ~: rc do. smoutput 'failure inserting -> ',(4 s: gal),' trying > next > >>> gallery ...' end. > >>> > >>> > >>> end. > >>> > >>> The assignment > >>> > >>> seq=. (#pos)#<:1.0 NB. insure integer datatype > >>> > >>> > >>> seems to break out of the loop - after running this line in 9.01 seq is > >> not > >>> set and shows > >>> > >>> as a value error in 9.01 - it works fine in 8.07 > >>> > >>> > >>> There may be some side effect of running sqlite addon verbs in a for > >> loop. > >>> > >>> I will keep investigating and see if I can code a work around but there > >> are > >>> issues for sqlite addon apps in J 9.01 > >>> > >>> > >>> John Baker > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- John D. Baker bakerj...@gmail.com ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm