| |
| Posted by neuranuz in reply to Alain De Vos | PermalinkReply |
|
neuranuz
Posted in reply to Alain De Vos
| On Monday, 28 June 2021 at 19:16:40 UTC, Alain De Vos wrote:
> How to execute a random postgresql-query ?
> With random i mean execute any string as known by postgresql.
>
>
> void myexecutefunction(string string_to_execute){
> // Some code to Execute postgre-sq-string
> }
>
> ...
>
> void main(){
> myexecutefunction("CREATE DATABASE test");
> myexecutefunction("CREATE USER test");
> ...
> myexecutefunction("SELECT * FROM testtable");
> }
In case of my implentation the usage is:
auto db = new DBPostgreSQL("host=hostname port=5432 dbname=databasename user=username password=secret");
auto qres = db.query("select first_name, second_name from person");
string first_name = qres.get(0, 0, null);
string second_name = qres.get(1, 0, null);
It's pretty simple;-)
There is also second function "queryParamsArray" that helps to pass query parameters in safe manner without string concatenation:
string[] first_names = ["John", "Sarah"];
string[] second_names = ["Doe", "Connor"];
db.queryParamsArray("with inp as(
select
unnest($1::text[]) first_name,
unnest($2::text[]) second_name
)
insert into person (first_name, second_name)
select inp.* from inp
");
|