31
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by Jane on August 02, 2025, 05:02:21 PM »I watched the webinar recording, Johan.
Helpful hint - Ctrl+Shift+X clears the log in debugview++
Helpful hint - Ctrl+Shift+X clears the log in debugview++
32
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 31, 2025, 10:00:56 PM »Hi Jane
Asked in the NT user group last night, still no resolve,
but the problem is outside of the procedures.
Once I have more info will post what I've found
thanks
Johan
Asked in the NT user group last night, still no resolve,
but the problem is outside of the procedures.
Once I have more info will post what I've found
thanks
Johan
33
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 30, 2025, 10:53:08 AM »Hi Jane
Thanks for that idea, will have a look,
it's a decent length, perhaps 20 entries, so will play a roll, but don't think that's the culprit.
Also need to cleanup my procedure and all debug lines, and look with fresh eyes.
thanks
Johan
Thanks for that idea, will have a look,
it's a decent length, perhaps 20 entries, so will play a roll, but don't think that's the culprit.
Also need to cleanup my procedure and all debug lines, and look with fresh eyes.
thanks
Johan
34
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by Jane on July 30, 2025, 07:12:20 AM »Hi, Johan,
Not sure I'm understanding? Do you have a browse with an EIP column and the browse itself is slow to load?
Is the browse page-loaded or file-loaded? How many items are in the EIP dropdown list?
I think that the browse with EIP populates all the EIP possibilities for the column for each row. Which, if you have 15 rows in the browse, would mean it needs to process all of the rows for the EIP selections 15 times. If file-loaded, then for the entire browse. If you only have a few choices that might be reasonable, but if there's a long list there will be a lot of overhead.
When you use an update form, the EIP selections are only populated once when you open the form.
Not sure I'm understanding? Do you have a browse with an EIP column and the browse itself is slow to load?
Is the browse page-loaded or file-loaded? How many items are in the EIP dropdown list?
I think that the browse with EIP populates all the EIP possibilities for the column for each row. Which, if you have 15 rows in the browse, would mean it needs to process all of the rows for the EIP selections 15 times. If file-loaded, then for the entire browse. If you only have a few choices that might be reasonable, but if there's a long list there will be a lot of overhead.
When you use an update form, the EIP selections are only populated once when you open the form.
35
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 30, 2025, 03:07:59 AM »Hi,
Currently have had to remove the EIP dropbox and replaced it with a popup UpdateForm.
Will return to the problem when I get a chance, and will post any findings.
thanks
Johan
Currently have had to remove the EIP dropbox and replaced it with a popup UpdateForm.
Will return to the problem when I get a chance, and will post any findings.
thanks
Johan
36
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 29, 2025, 10:27:15 AM »Hi Bruce
Any advice on how to find this possible problem?
Been chasing all sorts of things past few days, but still having an issue.
From your post earlier
>>>>>>>>>>>>>>>>>>>>
My guess is that the reply to the browser is not completing. ie you have some code in the thread, after the drop down is populated, which delays the ending of the thread. In that case the connection is not closed, so the browser does not start processing the reply.
>>>>>>>>>>>>>>>>>>>>
thanks
Johan
Any advice on how to find this possible problem?
Been chasing all sorts of things past few days, but still having an issue.
From your post earlier
>>>>>>>>>>>>>>>>>>>>
My guess is that the reply to the browser is not completing. ie you have some code in the thread, after the drop down is populated, which delays the ending of the thread. In that case the connection is not closed, so the browser does not start processing the reply.
>>>>>>>>>>>>>>>>>>>>
thanks
Johan
37
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 27, 2025, 09:50:16 PM »Hi Ron
thanks for the idea, am looking into it.
The key is Case sensitive and the filter is constructed by the EIP code
My understanding is if Case sensitive key then UPPER not required?
thanks
Johan
38
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by rjolda on July 27, 2025, 03:04:05 AM »Johan,
I am not sure if it applies here but using the UPPER on any searches really speeds up browses.
e.g instead of where ITM:UID = thisUID go for where UPPER(ITM:UID) = UPPER(thisUID). This takes out the mixed case filtering and speeds up queries.
Ron
I am not sure if it applies here but using the UPPER on any searches really speeds up browses.
e.g instead of where ITM:UID = thisUID go for where UPPER(ITM:UID) = UPPER(thisUID). This takes out the mixed case filtering and speeds up queries.
Ron
39
Web Server - Ask For Help / Re: How to debug this slow request?
« Last post by JohanR on July 26, 2025, 12:43:26 AM »Hi Bruce
Think I found the line that takes roughly 5secs
In the LoadViewRecord
It's the next(p_view) between 5555 and 6666
Still using TPS, not sure if this is an issue
Below the code and the view structure.
My next step is going to duplicate and handcode the action of the view and see if it does the same and also to see if there is something to be done.
Any ideas highly appreciated.
Johan
NetWebServerWorkerBase.LoadViewRecord Procedure(View p_View,File p_File,Key p_Key)
err Long
f String(1024)
code
self.trace('TVCweb LoadViewRecord 1111:' & format(clock(),@t06))
f = p_view{prop:filter}
self.trace('TVCweb LoadViewRecord 2222:' & format(clock(),@t06))
p_view{prop:filter} = ''
self.trace('TVCweb LoadViewRecord 3333:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 3333Filter=:' & p_View{prop:filter})
self.AddKeyToFilter(p_View,p_File,p_Key)
self.trace('TVCweb LoadViewRecord 4444:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 4444Filter=:' & p_View{prop:filter})
set(p_view)
self.trace('TVCweb LoadViewRecord 5555:' & format(clock(),@t06))
next(p_view)
self.trace('TVCweb LoadViewRecord 6666:' & format(clock(),@t06))
err = errorcode()
self.trace('TVCweb LoadViewRecord 7777:' & format(clock(),@t06))
p_view{prop:filter} = self.AssignFilter(f)
self.trace('TVCweb LoadViewRecord 8888:' & format(clock(),@t06))
return err
View:item View(item)
Project(ite:item_isn)
Project(ite:item_desc)
Project(ite:item_amt)
Project(ite:item_qty)
Project(ite:item_gr_total)
END ! of ThisView
Think I found the line that takes roughly 5secs
In the LoadViewRecord
It's the next(p_view) between 5555 and 6666
Still using TPS, not sure if this is an issue
Below the code and the view structure.
My next step is going to duplicate and handcode the action of the view and see if it does the same and also to see if there is something to be done.
Any ideas highly appreciated.
Johan
NetWebServerWorkerBase.LoadViewRecord Procedure(View p_View,File p_File,Key p_Key)
err Long
f String(1024)
code
self.trace('TVCweb LoadViewRecord 1111:' & format(clock(),@t06))
f = p_view{prop:filter}
self.trace('TVCweb LoadViewRecord 2222:' & format(clock(),@t06))
p_view{prop:filter} = ''
self.trace('TVCweb LoadViewRecord 3333:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 3333Filter=:' & p_View{prop:filter})
self.AddKeyToFilter(p_View,p_File,p_Key)
self.trace('TVCweb LoadViewRecord 4444:' & format(clock(),@t06))
self.trace('TVCweb LoadViewRecord 4444Filter=:' & p_View{prop:filter})
set(p_view)
self.trace('TVCweb LoadViewRecord 5555:' & format(clock(),@t06))
next(p_view)
self.trace('TVCweb LoadViewRecord 6666:' & format(clock(),@t06))
err = errorcode()
self.trace('TVCweb LoadViewRecord 7777:' & format(clock(),@t06))
p_view{prop:filter} = self.AssignFilter(f)
self.trace('TVCweb LoadViewRecord 8888:' & format(clock(),@t06))
return err
View:item View(item)
Project(ite:item_isn)
Project(ite:item_desc)
Project(ite:item_amt)
Project(ite:item_qty)
Project(ite:item_gr_total)
END ! of ThisView
40
Web Server - Ask For Help / NT14 CLALIT2 - NetwebForm - Duplicate Record
« Last post by David on July 25, 2025, 03:58:52 PM »I've got a NT14 webserver with a netwebbrowse / form based on a SQLite table using the new Driver Kit. When I attempt to update a record, the form save returns an error message "creates duplicate record...." I've attached a screenshot. The browse and form both use a GUID field as their unique key. Any suggestions on where to troubleshoot this? Thank you.
I've done some additional testing....
Change the database driver to TopSpeed, recompile, netwebform functions fine
Change the database driver to SQLite (Softvelocity), recompile, netwebform funtions fine
Change the database driver to SQLite2 (DriverKit), recompile, netwebform presents "creates duplicate record" error
I've done some additional testing....
Change the database driver to TopSpeed, recompile, netwebform functions fine
Change the database driver to SQLite (Softvelocity), recompile, netwebform funtions fine
Change the database driver to SQLite2 (DriverKit), recompile, netwebform presents "creates duplicate record" error