Dzień dobry,
w jaki sposób mogę uruchomić procedure (Stored Procedure) napisaną w Postgresql w Node.js za pomocą Pool (https://node-postgres.com/api/pool)?
Pozdrawiam,
Łukasz
Wątek przeniesiony 2022-10-14 12:47 z Java przez cerrato.
Dzień dobry,
w jaki sposób mogę uruchomić procedure (Stored Procedure) napisaną w Postgresql w Node.js za pomocą Pool (https://node-postgres.com/api/pool)?
Pozdrawiam,
Łukasz
select * from moja_procedura(31415926);
Adamek Adam napisał(a):
select * from moja_procedura(31415926);
Czy te rozwiązanie obejmuje również procedury, które wykonują modyfikacje danych np: za pomocą UPDATE lub DELETE?
Standardowo dokumentacja powie najwięcej
https://www.postgresql.org/docs/current/sql-call.html
Bo ja ostatnio widziałem Postgresql jak kawalerem bylem ;) I bardzo lubię ta baze danych , jak bym nie uzywal sqlite to pewnie uzywal bym postgresql :D
Notes
The user must have EXECUTE privilege on the procedure in order to be allowed to invoke it.
To call a function (not a procedure), use SELECT instead.
Problem rozwiązany. Może komuś przyda się rozwiązanie:
app.post('/test', (req, res) => {
baza_modal.test(req.body)
.then(response => {
res.status(200).send('wykonano');
})
.catch(error => {
res.status(500).send(error);
})
})
---------------------------------
const test = (body) => {
return new Promise(function (resolve) {
const { id } = body
pool.query("CALL proc_kontrahent_usun($1)", [id],
(error, results) => {
if (error) {
reject(error)
}
resolve(results.rows[0])
}
)
})
}
------------------------------------------------
Wykonanie procedury: (sama procedury wykonuje polecenie DELETE)
let id = kontrahent_id;
fetch('http://XXX.XXX.XXX.XXX:3333/kontrahent_usun', {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ id }),
})
.then(response => {
return response.text();
})
.then(data => {
if (data === 'wykonano') {
this.setState({ komunikat_pokaz_success: true })
this.props.ukryj()
}
} )
.catch((error) => {
this.setState({komunikat_pokaz_error: true});
});