rcdmk / aspJSON

A fast classic ASP JSON parser and encoder for easy JSON manipulation to work with the new JavaScript MV* libraries and frameworks.
MIT License
204 stars 89 forks source link

JSON (asp update record + retrieve record by JSON) #24

Closed vr2xiq closed 8 years ago

vr2xiq commented 8 years ago

Hi, Are there any method to update the record, then, retrieve the record by JSON, thx.

rcdmk commented 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
vr2xiq commented 8 years ago

Thx for you reply a But why no change right after update SQL? and why no change after Requery? Thx

rcdmk commented 8 years ago

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.