Closed vr2xiq closed 8 years ago
Hi. Do you mean "update a database record" when you say "Update the record"?
This class only provides an easy way to load records from a database into the structure and doesn't create a link between them. If you update a database record and want it to reflect in your JSON structure, you will have to load the recordset again in the object.
rs.open "select someField from table where someCondition = true"
JSON.LoadFirstRecord(rs)
jsonStr = JSON.Serialize() ' { "someField": "someValue" }
conn.execute "update table set someField = 'someOtherValue' where someCondition = true"
jsonStr = JSON.Serialize() ' { "someField": "someValue" } - no change
rs.Requery() ' re-run the database query
jsonStr = JSON.Serialize() ' { "someField": "someValue" } - still no change
JSON.LoadFirstRecord(rs)
jsonStr = JSON.Serialize() ' { "someField": "someOtherValue" } - updated
Thx for you reply a But why no change right after update SQL? and why no change after Requery? Thx
Hi. Thank you for the suggestion.
I don't intend to make this sync because it's not the responsibility of this class.
If I link this to the recordset it will be more coupled and more issues can arise from this that people benefit from it, since the recordset will have to remain opened.
Aside from this, there is no safe way to update the records "automagically" after the update without reading "dirt" records and keeping an open connection to the database.
It's easy to update trough the provided example, with 2 or 3 short lines of code, so this will not be a big issue.
I suggest you to create a method that updates you data and refreshes the JSON object. This way you will have less duplicated code.
Best.
Hi, Are there any method to update the record, then, retrieve the record by JSON, thx.