QSqlQuery chamar função PostgreSQL
-
Eu tentei segui a documentação da classe QSqlQuery, segui o exemplo que mostra como executar stored procedures que em PostgreSQL são funções. Na documentação mostra o seguinte exemplo:
@ QSqlQuery query;
query.prepare("CALL AsciiToInt(?, ?)");
query.bindValue(0, "A");
query.bindValue(1, 0, QSql::Out);
query.exec();
int i = query.boundValue(1).toInt(); // i is 65@No meu caso isso não funcionou, ou seja, usando a palavra CALL. Só deu certo colocando o select completo.
@ action.prepare("select operational."f_InsertTechnical"(?, ?, ?)");
action.bindValue(0, "Matheus Saraiva da Silva");
action.bindValue(1, "matheus.saraiva@house.com");
action.bindValue(2, "+554941414141");
@Reparem que no meu banco a função f_InsertTechnical não está no esquema padrão, ou seja o public está um um esquema chamado operational, sendo assim no select o nome da função deve ser precedido do nome do esquema. Será que isso está influenciando no funcionamento do CALL?
Eu tentei incluir o nome do esquema ("CALL operational."f_InsertTechnical"(?, ?, ?)") mas sem sucesso. -
Acho que não está relacionado ao Qt, mas sim ao Pg.
Veja "aqui":http://stackoverflow.com/questions/1953326/how-to-call-a-function-postgresqlMas não sou um profundo conhecedor de Pg para ter certeza.
Dei uma olhada nos fontes do driver do Qt, e não vi nada que trate os comandos do lado do Qt. O QSqlDriver repassa a string diretamente para a lib do Pg.
Qual tutorial você viu a chamada à CALL?