Bonjour,
Je suis nouvelle dans Postgresql, j'examine une éventuelle migration d'une BDD Access vers Postgresql.
Depuis un programme vb6 j'essaie d'ajouter une ligne dans la base Postgresl (9.3) via un driver odbc (7.4) et connection ADO.
Problème: lorsque le champ contient un espace dans le nom, l'update plante (si j'enlève l'espace dans le nom du champ de postgresql , l'ajout fonctionne).
script de création de table dans postgresql:
Code vb6 pour inserer une ligne:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE matable ( "nom avec espace" integer NOT NULL, champ character varying(40) ....)
Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Dim Db1 As New ADODB.Connection Dim Rst1 As New ADODB.Recordset Db1.ConnectionString = "Driver={PostgreSQL ODBC Driver(UNICODE)};server=localhost;Port=5432;" _ & "Database=ddbname;Uid=postgres;Pwd=monmdp;" Db1.Open => la connection fonctionne Db1.Execute "delete from matable" Rst1.Open "matable", Db1, adOpenKeyset, adLockPessimistic, adCmdTable Rst1.AddNew Rst1("nom avec espace") = 1234 '=> l'affectation fonctionne, le champs est reconnu Rst1("champ") = "test" Rst1.Update ' ===> ça plante ici Rst1.Close Db1.Close
J'obtiens l'erreur suivante :
Quelle syntaxe utiliser pour affecter un nom de champ avec espace dans postgresql?erreur: -2147467259: erreur de syntaxe sur ou près de "avec"; Error while executing the query
L'implication est grande car dans le cas d'une migration cela signifierait qu'il faille changer tous les noms de champs dans le programme existant.
En vous remerciant par avance
Noemieze
Partager