- 1
[Opened] Tableaux postgresql
Posted by dlalleme on 01/29/2012 17:33
Bonsoir,
Jelix 1.3.1
Postgresql 9
Je veux insérer des informations dans ma base postgresql dont une table contient des colonnes tableau comme ceci
..., frequence Char(1) NOT NULL Default 'H', saisonnier Boolean NOT NULL Default false, jour Boolean[], mois Boolean[], debut_saison Timestamp[], fin_saison Timestamp[], ...
Je veux utiliser les outils du framework donc dao et j'essaie la syntaxe suivante pour insérer mes données
$marche->jour = "'{false,false,false,false,false,false,false}'"; $marche->mois = "'{true,true,true,true,true,true,true,true,true,true,true,true}'"; $MonMarche->insert($marche);
J'ai l'erreur suivante :
Erreur dans la requête (ERROR: array value must start with "{" or dimension information
Je pense que c'est juste un problème de syntaxe que je ne trouve pas malgré quelques essais. Je voudrais continuer à utiliser la méthode DAO, mais si cela n'est pas possible, je ferais du jDb. Merci de m'indiquer s'il y a une solution à ma demande.
À bientôt
Cordialement
Denis
[Opened] Tableaux postgresql
Posted by foxmask on 01/29/2012 20:25
Il se peut que le parser pour PostgreSQL "shoot" les accolades ce qui serait un bug dans le framework. En attendant qu'on trouve passer à jDb serait bénéfique ;)
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Tableaux postgresql
Posted by laurentj on 01/30/2012 11:58
Bonjour,
pourquoi mettre des quotes dans la chaine ? Ce ne serait pas plutôt ça qu'il faut faire ?
$marche->jour = "{false,false,false,false,false,false,false}"; $marche->mois = "{true,true,true,true,true,true,true,true,true,true,true,true}";
[Opened] Re: Tableaux postgresql
Posted by dlalleme on 02/01/2012 18:21
Bonsoir,
@foxmask : Oui, c'est que j'ai utilisé en attendant. Ça marche nickel, mais je préférerai rester en DAO pour l'homogénéité du développement.
@laurentj : Les quotes font parties de la syntaxe postgresql pour traiter les tableaux, on peut aussi utiliser le mot clef ARRAY avec des segments; exemples : INSERT INTO toto VALUES (..., ARRAY[10,45,78,90,110], ...);
En attendant jDb est opportun ..
À bientôt
Denis
- 1