
Originally Posted by
ChrisW67
This is the same issue as
your earlier post in the other forum. QSqlQuery::exec() handles single statements.
I do not agree with this statement. We have many such examples in the code:
"ALTER TABLE rodzaje_biletow"
" ADD COLUMN id_rodzb serial NOT NULL;"
"ALTER TABLE rodzaje_biletow DROP CONSTRAINT rodzaje_biletow_pkey;"
"ALTER TABLE rodzaje_biletow"
" ADD CONSTRAINT rodzaje_biletow_pkey PRIMARY KEY(id_rodzb);"
"ALTER TABLE bilety ADD COLUMN id_rodzb integer;"
"UPDATE bilety "
" SET id_rodzb = (SELECT id_rodzb FROM rodzaje_biletow "
" WHERE bilety.kod_rb=rodzaje_biletow.kod_rb "
" AND bilety.id_rozkladu=rodzaje_biletow.id_rozkladu);"
"DROP VIEW bilety_dobre;"
"ALTER TABLE bilety DROP COLUMN kod_rb;"
"CREATE OR REPLACE VIEW bilety_dobre AS "
" SELECT bilety.*"
" FROM bilety WHERE bilety.dobry = 1::numeric;"
"ALTER TABLE ulgi_kursow ADD COLUMN id_rodzb integer;"
"UPDATE ulgi_kursow "
" SET id_rodzb = (SELECT id_rodzb FROM rodzaje_biletow "
" WHERE ulgi_kursow.kod_rb=rodzaje_biletow.kod_rb "
" AND ulgi_kursow.id_rozkladu=rodzaje_biletow.id_rozkladu);"
"ALTER TABLE ulgi_kursow DROP COLUMN kod_rb;"
);
if( !query.exec(skrypt) )
{
......
}
QString skrypt(
"ALTER TABLE rodzaje_biletow"
" ADD COLUMN id_rodzb serial NOT NULL;"
"ALTER TABLE rodzaje_biletow DROP CONSTRAINT rodzaje_biletow_pkey;"
"ALTER TABLE rodzaje_biletow"
" ADD CONSTRAINT rodzaje_biletow_pkey PRIMARY KEY(id_rodzb);"
"ALTER TABLE bilety ADD COLUMN id_rodzb integer;"
"UPDATE bilety "
" SET id_rodzb = (SELECT id_rodzb FROM rodzaje_biletow "
" WHERE bilety.kod_rb=rodzaje_biletow.kod_rb "
" AND bilety.id_rozkladu=rodzaje_biletow.id_rozkladu);"
"DROP VIEW bilety_dobre;"
"ALTER TABLE bilety DROP COLUMN kod_rb;"
"CREATE OR REPLACE VIEW bilety_dobre AS "
" SELECT bilety.*"
" FROM bilety WHERE bilety.dobry = 1::numeric;"
"ALTER TABLE ulgi_kursow ADD COLUMN id_rodzb integer;"
"UPDATE ulgi_kursow "
" SET id_rodzb = (SELECT id_rodzb FROM rodzaje_biletow "
" WHERE ulgi_kursow.kod_rb=rodzaje_biletow.kod_rb "
" AND ulgi_kursow.id_rozkladu=rodzaje_biletow.id_rozkladu);"
"ALTER TABLE ulgi_kursow DROP COLUMN kod_rb;"
);
if( !query.exec(skrypt) )
{
......
}
To copy to clipboard, switch view to plain text mode
As you can see, there are several SQL commands run by a single QSqlQuery::exec.
Bookmarks