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 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 vb6 pour inserer une ligne:

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 :
erreur: -2147467259: erreur de syntaxe sur ou près de "avec"; Error while executing the query
Quelle syntaxe utiliser pour affecter un nom de champ avec espace dans postgresql?

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