|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2003 Messages : 99 ![]() |
Voila, je vous explique le problème.
Je viens de passer de sqlapi à QT pour mes connections à la base de données. Toutes mes requêtes "simple" fonctionnement correctement. En revanche dès que je fais des requêtes "d'administration" ça plante. Dès que la requête contient DROP ou ALTER voici les erreurs que j'ai: 2012-04-10 16:45:10 CEST [1760]: [55-1] ERROR: syntax error at or near "ALTER" at character 25 2012-04-10 16:45:10 CEST [1760]: [56-1] STATEMENT: PREPARE qpsqlpstmt_7 AS ALTER TABLE users ADD COLUMN users_profile_name_ref VARCHAR(64) default NULL 2012-04-10 16:45:10 CEST [1760]: [57-1] ERROR: syntax error at end of input at character 9 2012-04-10 16:45:10 CEST [1760]: [91-1] ERROR: syntax error at or near "DROP" at character 25 2012-04-10 16:45:10 CEST [1760]: [92-1] STATEMENT: PREPARE qpsqlpstmt_d AS DROP VIEW IF EXISTS users_view 2012-04-10 16:45:10 CEST [1760]: [93-1] ERROR: syntax error at end of input at character 9 Le pire est lorsque je veux changer l'encodage: en C++ j'écris: SET CLIENT_ENCODING TO 'LATIN9' et dans les log j'ai: 2012-04-10 16:44:39 CEST [1760]: [1-1] LOG: statement: select version() 2012-04-10 16:44:39 CEST [1760]: [2-1] LOG: duration: 1.000 ms 2012-04-10 16:44:39 CEST [1760]: [3-1] LOG: statement: SET CLIENT_ENCODING TO 'UNICODE' 2012-04-10 16:44:39 CEST [1760]: [4-1] LOG: duration: 0.000 ms 2012-04-10 16:44:39 CEST [1760]: [5-1] LOG: statement: SET DATESTYLE TO 'ISO' 2012-04-10 16:44:39 CEST [1760]: [6-1] LOG: duration: 0.000 ms 2012-04-10 16:45:08 CEST [1760]: [7-1] ERROR: syntax error at end of input at character 9 Je commence à devenir fou avec ce foutu caractère 9. Lorsque j'exécute ces requêtes dans PostGreAdmin, aucun souci. J'ai essayé de changer d'utilisateur en prenant le "root" et pas d'amélioration. Pourtant mon utilisateur précédent a tous les droits. Je précise que je fonctionne avec PostGre 8.4 et Qt 4.8. Que le projet C++ est en Multi-Byte Character Set Si quelqu'un a une idée je suis preneur, ca fait deux jours que je m'arrache les cheveux. |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : mars 2003 Messages : 99 ![]() |
Petite précision.
Les lignes concernant le SET CLIENT ENCODING TO 'UNICODE' sont en faite générées par le drivers PQSL lors de l'ouverture de la connexion. Dans la doc de QT, il est bien écrit que le drivers ne gère que l'UNICODE. Ma requête pour passer en LATIN9 échouait sans être trop logger, juste: 2012-04-10 16:45:08 CEST [1760]: [7-1] ERROR: syntax error at end of input at character 9 J'ai déjà un problème en moins, pas de latin9, ce sont les collègues qui géreront la crise de se côtés. lol. Il me reste plus que les ALTER et DROP |
|
|
00
|
|
|
#3 | ||
![]() ![]() Inscription : octobre 2008 Messages : 1 708 ![]() |
Les ALTER TABLE, DROP VIEW etc... sont des ordres SQL dit de type "DDL" = data definition language et à ce titre ne peuvent pas faire l'objet d'un PREPARE c.a.d en SQL une requête du style:
Dans l'API de Qt, il faut appeler QSqlQuery::exec() sans prepare. Exemple: Code :
|
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : mars 2003 Messages : 99 ![]() |
Hihaaa, t'es un ange.
Ca marche nikel. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com