In instance 1, you are creating a new dataset, but I don’t see where you actually write that data back to the table.
In instance 2, you’re (potentially) updating the table, but depending on the configured binding the Table may not be polling for updates. You might want to include a call to refresh your binding or wait for a poll event to occur.
In instance 3, you are once again making a new dataset, but you’re not writing it to the table. The refresh binding call you’re using just tells the Table to refresh its binding and THAT data hasn’t changed; the only change is the local dataset.
# The original code shouldn't have worked at all because you are not supplying a list of paths.
tag_path = "[defualt]ms/Test/QueryTag"
dataset = system.tag.readBlocking([tag_path]).value
dataset = system.dataset.addRow(dataset,[8, 'pass')
# no binding refresh necessary, as the binding will get this new value naturally.
query = "INSERT INTO ref_vac_result (ref_vac_result_id, names) VALUES (?,?)"
system.db.runPrepUpdate(query, [8, 'pass'])
self.getSibling("Table").refreshBinding('props.data') # assuming the table has props.data bound to a Named Query
# I don't recommend this route if you're using a binding because these
# changes to the dataset are ephemeral/local and will be lost on page refresh
# or if the underlying data of the binding changes.
table_data = self.getSibling("Table").props.data
dataset = system.dataset.addRow(table_data, [8, "pass"])
self.getSibling("Table").props.data = dataset