Solved

Is it possible to update a record via linked server with a mobile app?

  • 15 March 2019
  • 9 replies
  • 185 views

Userlevel 2
Badge +2
In a default-control-procedure we update a record via the linked server, without any problem with the windows app.
If we use the same default-control-procedure in the mobile app with get an unkown error.
The error occurs during the post of the ExecuteDefault script
icon

Best answer by Rémon Bal 29 March 2019, 14:22

The credits are for Arjan Jonas

For the linked server properties on the SQL server, go to "Server options", then set the value "Collation Compatible" to true

View original

9 replies

Userlevel 3
Does the application pool user (the one that controls indicium) have rights to the linked server?
Userlevel 4
Badge +1
As Robbert points out, this seems an authorisation issue.

But reading this, I do have a further question: are you updating data from a default procedure?
Default procedures are meant to retrieve data from the database and/or do calculations in order to show them on the screen (form) the user is editing.
When you update data from within a default procedure (it is possible, nothing is stopping you), data will be modified, regardless of if the user actually finishes and saves the action he was doing.

To summarise:
  • User enters edit mode (or presses add)
  • Default procedure fires and updates a record (on the linked server)
  • User moves to next field in the form
  • Default procedure fires and updates a record (on the linked server)
  • User presses cancel
  • Changes to the data have not been saved to the database (except for the data that has been modified via the default procedure)
There are edge cases where you would want to save some data whenever a default procedure fires, but there are not many, so please be careful when using a default procedure in order to modify data.
Userlevel 2
Badge +2
As Robbert points out, this seems an authorisation issue.

But reading this, I do have a further question: are you updating data from a default procedure?
Default procedures are meant to retrieve data from the database and/or do calculations in order to show them on the screen (form) the user is editing.
When you update data from within a default procedure (it is possible, nothing is stopping you), data will be modified, regardless of if the user actually finishes and saves the action he was doing.

To summarise:
  • User enters edit mode (or presses add)
  • Default procedure fires and updates a record (on the linked server)
  • User moves to next field in the form
  • Default procedure fires and updates a record (on the linked server)
  • User presses cancel
  • Changes to the data have not been saved to the database (except for the data that has been modified via the default procedure)
There are edge cases where you would want to save some data whenever a default procedure fires, but there are not many, so please be careful when using a default procedure in order to modify data.


I want to develop an App where the user can scan a barcode, when the barcode is scanned it has to be updated in the linked server, and the textbox where the barcode is "entered" has to be made empty, so the user can immediately scan the next barcode without having to clear the textbox manually. As far as I know the only option to clear the field is in the default procedure, so I have to update the value in the default procedure. Is this an "edge case" or is there a better solution?
Userlevel 4
Badge +1
Cool! This is definately an edge-case and a creative solution at that. Just be aware that the user is not able to 'un-scan' in this example.

You could off-course do that by implementing another task where the user can 'un-scan' in the same way. Without knowing any backgroud, I think it would be a good idea to implement that function as well, as users will make mistakes.

As far as other solutions, process flows seem an obvious place to look, but I don't think it is possible to let the flow act on 'filling in a field'.
Userlevel 3
When the linked server in a default is not working you can always work with a extra table where you insert the barcodes and let a job on the background handle the communication to the linked server.
This will also help when the linked server is being slow for some reason and makes the scanning for the user faster.

Did you check the authorisation on the linked server?
Userlevel 2
Badge +2
Yes I checked the authorisation on the linked server and should be ok.
I can also use an openquery without any problem. Next thing I'm going to try, is an update by a task.
Userlevel 4
Badge +1
@Rémon Bal how did it work out?
Userlevel 2
Badge +2
We still can't update a record by using the linked server via the mobile app, only with the windows app we can. Next week Arjan Jonas will be in our office, hopefully he can help us with this problem.
If we find a solution I will post it on this forum.
Userlevel 2
Badge +2
The credits are for Arjan Jonas

For the linked server properties on the SQL server, go to "Server options", then set the value "Collation Compatible" to true

Reply