[Résolu] Erreur requête MySQL : Parameter index out of range
Modérateur : Vilains modOOs
Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
[Résolu] Erreur requête MySQL : Parameter index out of range
Bonjour,
Avec Base connecté à une BdD MySQL, j'obtiens l'erreur 'Parameter index out of range (2>number of parameters, which is 1)'
Je précise que j'ai crée une requête contenant une requête paramétrée crée sous Base.
Quelqu'un aurait-il une idée SVP ?
Avec Base connecté à une BdD MySQL, j'obtiens l'erreur 'Parameter index out of range (2>number of parameters, which is 1)'
Je précise que j'ai crée une requête contenant une requête paramétrée crée sous Base.
Quelqu'un aurait-il une idée SVP ?
Dernière modification par Oukcha le 03 mars 2020 10:52, modifié 1 fois.
OpenOffice 4.1.7 sous Xubuntu 18.04
Re: Parameter index out of range
Bonjour,
As-tu déjà consulté les messages traitant d'erreurs similaires ? :
https://forum.openoffice.org/fr/forum/s ... t+of+range
A +
As-tu déjà consulté les messages traitant d'erreurs similaires ? :
https://forum.openoffice.org/fr/forum/s ... t+of+range
A +
Re: Connexion MySQL, erreur Parameter index out of range
Oui, mais je ne trouve malheureusement pas de réponse à mon problème.
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
Mme Irma a été frappée par le Coronavirus.
Joins donc :
Joins donc :
- le texte de la requête retournant l'erreur
- un export synthétique des tables concernées (structures et données)
- des copies écran du résultat obtenu / escompté
Re: Connexion MySQL, erreur Parameter index out of range
Voici le texte de ma requête:
et le texte de la requête paramétrée (qui fonctionne) (qui est nommée set_inventory):
J'ai joint la capture d'écran, mais l'export est trop lourd pour être joint au post (9.6 Mo)
Le résultat doit être les colonnes part_num, name, Category, Color, la soustraction de quantité de l'inventaire du set - quantité en stock
En fait, il s'agît de calculer le nombre de pièces manquantes pour terminer un set de lego à partir de l'inventaire de ce set et des pièces que j'ai en stock.
Code : Tout sélectionner
SELECT `SI`.`part_num` AS `num`,
`PA`.`name` AS `name`,
`CA`.`name` AS `category`,
`CO`.`name` AS `color`,
`SI`.`quantity` AS `Quantiy`,
`ST`.`quantity` - `SI`.`quantity` AS `missing`
FROM `lego`.`stock` AS `ST`,
`lego`.`parts` AS `PA`,
`lego`.`categories` AS `CA`,
`lego`.`colors` AS `CO`,
`set_inventory` AS `SI`
WHERE `ST`.`part_id` = `PA`.`id`
AND `PA`.`category_id` = `CA`.`id`
AND `ST`.`color_id` = `CO`.`id`
AND `SI`.`color_id` = `CO`.`id`
AND `SI`.`part_num` = `PA`.`part_num`
AND `SI`.`part_num`
IN (
SELECT `SI`.`part_num`
FROM `SI`
WHERE `ST`.`quantity` < `SI`.`quantity`
)
Code : Tout sélectionner
SELECT `parts`.`part_num` AS `Part`,
`parts`.`name` AS `Name`,
`colors`.`name` AS `Color`,
`inventory_parts`.`quantity` AS `Quantity`,
`setlist`.`set_num` AS `Set`
FROM `lego`.`inventories` AS `inventories`,
`lego`.`sets` AS `sets`,
`lego`.`inventory_parts` AS `inventory_parts`,
`lego`.`parts` AS `parts`,
`lego`.`colors` AS `colors`,
`lego`.`my_sets` AS `my_sets`,
`lego`.`setlist` AS `setlist`
WHERE `inventories`.`set_num` = `sets`.`set_num`
AND `inventory_parts`.`inventory_id` = `inventories`.`id`
AND `inventory_parts`.`part_num` = `parts`.`part_num`
AND `inventory_parts`.`color_id` = `colors`.`id`
AND `my_sets`.`set_id` = `sets`.`id`
AND `setlist`.`set_id` = `sets`.`id`
AND `setlist`.`set_num` = :SetNum
J'ai joint la capture d'écran, mais l'export est trop lourd pour être joint au post (9.6 Mo)
Le résultat doit être les colonnes part_num, name, Category, Color, la soustraction de quantité de l'inventaire du set - quantité en stock
En fait, il s'agît de calculer le nombre de pièces manquantes pour terminer un set de lego à partir de l'inventaire de ce set et des pièces que j'ai en stock.
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
Bien sûr, on ne te demande pas la totalité de la base.Neelix a écrit :mais l'export est trop lourd pour être joint au post (9.6 Mo)
Personne ici, n'a envie d'intégrer 10 Mo de données.
Tu fourniras donc un extrait significatif et exhaustif, permettant de reproduire le problème.
La limite de 500 ko d'informations me semble déjà amplement suffisant.
Re: Connexion MySQL, erreur Parameter index out of range
Voilà ma base exportée.
- Pièces jointes
-
- lego.odb
- (2.4 Kio) Téléchargé 127 fois
Dernière modification par Neelix le 04 mars 2020 09:15, modifié 1 fois.
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
Ce que tu fais ne sert à rien.
Ton ODB ne fait qu'un lien vers la source localisée sur ton disque.
Bis repetitae :
Reporte toi sur la documentation de MySQL pour plus d'info.
Ton ODB ne fait qu'un lien vers la source localisée sur ton disque.
Bis repetitae :
Tu peux le faire en mode Console avec mysqldump par exemple.Dude a écrit :un export synthétique des tables concernées (structures et données)
Reporte toi sur la documentation de MySQL pour plus d'info.
Re: Connexion MySQL, erreur Parameter index out of range
Toutes mes excuses. Je viens de m'en rendre compte et j'ai modifié mon post.
OpenOffice 4.1.7 sous Xubuntu 18.04
Re: Connexion MySQL, erreur Parameter index out of range
Suite à un soucis avec ma bidouille avec hsqldb 2, je suis obligé de joindre 2 autres fichiers, sans lesquelles la base serait vide. Je joins donc un zip qui contient la base de donnée.
- Pièces jointes
-
- lego.zip
- (4.12 Kio) Téléchargé 141 fois
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
A quoi servent tes ODB ?
Si tu ne lis pas et ne fais pas ce qu'on te demande, on ne va pas avancer.
Voici un exemple de script permettant de créer ta table categorie et insérer des enregistrements :
Tu vois bien que ça n'a rien à voir avec ce que tu fournis.
Et tes clés primaires à base de VARCHAR, c'est pour dégrader les perfs ?
Si tu ne lis pas et ne fais pas ce qu'on te demande, on ne va pas avancer.
Voici un exemple de script permettant de créer ta table categorie et insérer des enregistrements :
Code : Tout sélectionner
CREATE TABLE IF NOT EXISTS categorie (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO categorie VALUES(1,'Baseplates');
INSERT INTO categorie VALUES(3,'Bricks Sloped');
INSERT INTO categorie VALUES(4,'Duplo, Quatro and Primo');
INSERT INTO categorie VALUES(5,'Bricks Special');
INSERT INTO categorie VALUES(6,'Bricks Wedged');
INSERT INTO categorie VALUES(7,'Containers');
INSERT INTO categorie VALUES(8,'Technic Bricks');
Et tes clés primaires à base de VARCHAR, c'est pour dégrader les perfs ?
Re: Connexion MySQL, erreur Parameter index out of range
Saches que je suis débutant. Du coup, je commet quelques erreurs. Pour le coup je fais quoi ? J'envoie l'export au format SQL ou je les importe dans un odb ?
Quand aux clés primaires en varchar, ce n'est pas moi qui ai crée cette base, je n'ai fait qu'importer les tables et j'essaye d'en faire une base correcte.
Quand aux clés primaires en varchar, ce n'est pas moi qui ai crée cette base, je n'ai fait qu'importer les tables et j'essaye d'en faire une base correcte.
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
Si tu es débutant, ne pars pas avec MySQL tout simplement.Neelix a écrit :Saches que je suis débutant.
Tu fournis un ODB au format natif HSQL avec tes tables intégrées.
Re: Connexion MySQL, erreur Parameter index out of range
J'ai beau chercher, je ne parviens pas à intégrer les tables SQL à mon odb. Ce n'est pourtant pas faute d'avoir travailler sous Base, mais c'est le genre de manip que je n'ai jamais eu besoin de faire.
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
Ne cherche pas à intégrer mais crée directement tes tables pour faire ton jeu d'essai.
Re: Connexion MySQL, erreur Parameter index out of range
Mais c'est ce que j'ai fait dans mon précédent .odb. Sauf que je n'arrive pas recréer les relations telles qu'elles sont dans mysql. openoffice semble ne pas accepter certains types de relations. Sans compter qu'il manque des clés primaires dans certaines tables, ce qui fait qu'openoffice refuse de créer une relation à partir de ces mêmes tables. Je joins donc à nouveau un fichier odb.
- Pièces jointes
-
- test.odb
- (9.31 Kio) Téléchargé 130 fois
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
Il n'y a aucune requête dans ton ODB.
Re: Connexion MySQL, erreur Parameter index out of range
Effectivement, j'avais oublié les requêtes. Voilà la fichier modifié.
- Pièces jointes
-
- test.odb
- (9.93 Kio) Téléchargé 122 fois
OpenOffice 4.1.7 sous Xubuntu 18.04
- jeanmimi
- Grand Maître de l'OOffice
- Messages : 16955
- Inscription : 03 mars 2006 17:02
- Localisation : Venise verte
Re: Connexion MySQL, erreur Parameter index out of range
Comme le notait Dude, tous les id sont de Type TEXT, dans la Table colors, un des Id est négatif
Ce qu'il faudrait, c'est que les Tables aient des ID_xxxx de Type INTEGER en AUTO-VALEUR.
Ensuite, vérifier que les Relations entre les Tables soient fonctionnelles et enfin construire des Requêtes.
Ce qu'il faudrait, c'est que les Tables aient des ID_xxxx de Type INTEGER en AUTO-VALEUR.
Ensuite, vérifier que les Relations entre les Tables soient fonctionnelles et enfin construire des Requêtes.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Re: Connexion MySQL, erreur Parameter index out of range
Avec de l'aide, je travaille en ce moment à optimiser ma base de donnée, car elle est loin d'être parfaite. Mais, en soi, la base est opérationnelle. J'ai déjà pas mal d'essai, en attendant qu'on examine ma base et me conseille, et mes requêtes fonctionnent toutes. Pour cette requête ci, je pense que ça provient de la requête paramétrée qu'elle appelle. Mais je ne vois pas bien comment régler le problème.
OpenOffice 4.1.7 sous Xubuntu 18.04
- jeanmimi
- Grand Maître de l'OOffice
- Messages : 16955
- Inscription : 03 mars 2006 17:02
- Localisation : Venise verte
Re: Connexion MySQL, erreur Parameter index out of range
Pour que les requêtes fonctionnent, il faut que les Tables puissent entrer en relation.Neelix a écrit :Pour cette requête ci, je pense que ça provient de la requête paramétrée qu'elle appelle. Mais je ne vois pas bien comment régler le problème.
J'ai testé les deux qui étaient déjà affichées et ça n'a pas fonctionné.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Re: Connexion MySQL, erreur Parameter index out of range
Je me doutais un peu que ça ne risquais pas de marcher, mais je n'arrive pas à recréer les relations telles qu'elles sont dans mySQL. openOffice semble plus limité.
OpenOffice 4.1.7 sous Xubuntu 18.04
- Dude
- IdOOle de la suite
- Messages : 25143
- Inscription : 03 mars 2006 08:45
- Localisation : 127.0.0.1
- Contact :
Re: Connexion MySQL, erreur Parameter index out of range
Bon, on va arrêter de raconter n'importe quoi.Neelix a écrit : openOffice semble plus limité.
HSQL peut très bien utiliser des clés primaires en VARCHAR.
C'est juste contre-productif puisqu'on ne peut utiliser d'incrément automatique (autovaleur) dessus.
Ton problème est le même depuis le départ : tu ne lis pas (ou tu ne comprends pas) ce qu'on te demande.
Le langage SQL varie d'un SGBD à un autre et la syntaxe ne peut pas correspondre à 100%.
Alors si tu continues de mixer du MySQL avec du HSQL, tu vas dans le mur.
En plus, il y a des erreurs grossières dans l'ODB fourni :
- En HSQL, il est inutile de faire référence au nom de la base "lego".
- Dans ta requête "required_parts" , la table `set_inventory` n'existe pas.
- Sa colonne "id" est vide, comment veux-tu faire une jointure ?
- Dans ta requête "set_inventory", la table `setlist` n'existe pas.
- Aucune correspondance entre les tables "inventory_parts" et "parts" sur la colonne "part_num"
Donc arrête de faire des copier/coller bêtement, cela n'ira jamais.
Bref, reviens avec quelque chose d'exploitable et qui nous permette d'avancer sur l'erreur citée.
Pour ma part, j'arrête ici de gaspiller mon temps.
Bon courage.