Tabula_Rasa
Mitglied
Hallo zusammen,
ich benutze folgendes Modul: https://www.npmjs.com/package/mssql.
Ich habe die Dokumentation angeschaut und da führen die nur eine Request mit Rollback und Commit durch - ich habe jedoch drei und erhielt andauernd Fehler. Aus diesem Grund wollte ich hier mal nachfragen, wie ich die Requests in der Transaction gestalten muss.
Der request3 ist dafür da, die Analysen in die Datenbank einzufügen, jedoch bin ich mir nicht sicher, ob ich diese in einer Loop einfügen soll, weil ich da auch Fehler erhielt. Aus diesen Gründen wollte ich hier mal nachfragen, damit ich verstehe, wie eine Transaction mit mehreren Requests und deren Commits und Rollbacks aussehen muss.
ich benutze folgendes Modul: https://www.npmjs.com/package/mssql.
Ich habe die Dokumentation angeschaut und da führen die nur eine Request mit Rollback und Commit durch - ich habe jedoch drei und erhielt andauernd Fehler. Aus diesem Grund wollte ich hier mal nachfragen, wie ich die Requests in der Transaction gestalten muss.
Javascript:
router.post('/post/sichern', (req, res, next)=> {
const transaction = new sql.Transaction();
const request1 = new sql.Request();
const request2 = new sql.Request();
const request3 = new sql.Request();
const analysen = req.body.analysen; // Array of objects of type {id: number, name:string}
request1.input('o_id', req.body.order.id);
request2.input('o_id', req.body.order.id);
const query1 = 'Update orders set ais=1 where o_id=@o_id'; // für request1
const query2 = 'Delete from analysen where o_id=@o_id'; // für request2
transaction.begin(async error => {
if(error) return res.status(500).json(error);
// Hier müssen die Requests hin mit Rollback bei einem Fehler und Commit bei keinem
})
})
Der request3 ist dafür da, die Analysen in die Datenbank einzufügen, jedoch bin ich mir nicht sicher, ob ich diese in einer Loop einfügen soll, weil ich da auch Fehler erhielt. Aus diesen Gründen wollte ich hier mal nachfragen, damit ich verstehe, wie eine Transaction mit mehreren Requests und deren Commits und Rollbacks aussehen muss.