Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Tableaux postgresql

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

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 wink


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Tableaux postgresql

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

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

 
Page
  1. Tableaux postgresql