[Résolu] execution d'une requete sql en direct plante OO

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

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.
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

[Résolu] execution d'une requete sql en direct plante OO

Message par agardunor »

Bonjour,

Je débute avec base et je fais manifestement pas les choses correctement, car c'est ma deuxième bouteille à la mer sur le forum en deux jours d'utilisation...j'en suis désolée. Je suis en phase de test/apprentissage :marto:

Voici mon problème:

Je veux executer un select dans une table qui contient 2 enregistrements:

pour cela,
Panneau "base de données" :je clique sur l'icône "Requêtes",
Panneau "tâche": créer une requête en mode SQL
dans le menu edition j'active : Executer directement la requête SQL
Je tape ma commande :

Code : Tout sélectionner

select * from embranchement
puis Edition/Executer la requête

et là, ça plante directement, pas de message, rien. Je dois lancer la récupération au démarrage.

J'ai tenté le select de plusieurs table et c'est la même punition.
même chose avec

Code : Tout sélectionner

select curdate()
En revanche si j'exécute:

Code : Tout sélectionner

script
J'ai une box avec le message :
"impossible de charger le contenu des données"
"statement does not generate a result set"

Je joins ma base.

Merci d'avance pour votre aide.
@+
Pièces jointes
maraichage.odb
(5.91 Kio) Téléchargé 74 fois
Dernière modification par agardunor le 04 août 2021 16:38, modifié 1 fois.
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16955
Inscription : 03 mars 2006 17:02
Localisation : Venise verte

Re: execution d'une requete sql en directe fait planter OO

Message par jeanmimi »

Bonjour,
Pour avoir un résultat avec une requête SELECT en SQL direct, il peut être intéressant de créer d’abord la requête avec l’Assistant, puis de la sauvegarder avant de l’éditer en SQL.
Le Guide HSLDB mis à disposition dans le forum est aussi utile pour construire les instructions.
LibreOffice : Version : 24.2.1 (x64)(14 mars 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: execution d'une requete sql en directe fait planter OO

Message par Dude »

Salut,
agardunor a écrit :même chose avec

Code : Tout sélectionner

select curdate()
Cette instruction n'est pas supportée. Où l'as-tu trouvée ? :shock:
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

Re: execution d'une requete sql en directe fait planter OO

Message par agardunor »

Bonjour,

Trouvé dans une liste de fonctions builtin sous le lien ci dessous:
https://wiki.openoffice.org/wiki/FR/Doc ... h09#INSERT

j'avoue que je ne sais pas trop comment appeler ce type de fonction... j'ai fait un vilain mélange avec ce que j'ai côtoyé dans le passé (select getdate() en sybase). J'avais testé ça pour voir si mon plantage était lié à la structure de la table ou pas (ben c'était une fausse bonne idée).

Maintenant, j'ai un peu progressé sur mon problème, et en gros, je n'ai pas de plantage lorsque j’exécute le SQL via la touche f5 (edition/executer la requete). Je parle ici des select dans une table.

ça plante quand je clique sur l'icone "executer directement l'instruction SQL". Je vais essayer de creuser.

Je pense qu'il faut que je me méfie des "faux-amis". Pas facile d'oublier les vieux réflexes quand on a bossé sur d'autres SGBD.

@+
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: execution d'une requete sql en directe fait planter OO

Message par Dude »

agardunor a écrit :j'avoue que je ne sais pas trop comment appeler ce type de fonction.
Dans le lien que tu donnes, il y a pourtant des exemples d'utilisation. :roll:
Ces instructions se placent dans une clause WHERE ou en tant que donnée à insérer/mettre à jour.

Sans vouloir offenser, tu devrais potasser les tutoriels avant de te lancer.
Ta table contient un champ texte comme clé primaire, ce qui est une lourde erreur.
Capture.PNG
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

Re: execution d'une requete sql en directe fait planter OO

Message par agardunor »

Tu as complétement raison pour les tutoriels et tu ne m'offenses pas !
pour les clés, je serais passée sur du numérique si j'avais prévu de gros volumes, ce qui n'est vraiment pas le cas, vu l'usage que je veux en faire. Et j'ai une aversion pour les champs identity, même si je n'ai pas l'expérience dans HSQLDB (et pas envie de gerer les identifiant, mais je peux changer d'avis, si ça devient galère !).
Là encore je peux tout à fait avoir tort : je sais pas comment se comporte la base avec des clés en varchar.

je maintiens un petit script de création de la base sur le côté. Donc si je dois changer ça, ça devrait pas être trop trop méchant, surtout à ce stade :D .

Merci pour ton aide, en tous cas.
bonne fin de soirée.
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: execution d'une requete sql en directe fait planter OO

Message par Dude »

agardunor a écrit :pour les clés, je serais passée sur du numérique si j'avais prévu de gros volumes, ce qui n'est vraiment pas le cas, vu l'usage que je veux en faire.
Refais ta base en déclarant tes tables avec des clés correctes et regarde si tu as toujours le plantage.
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

Re: execution d'une requete sql en directe fait planter OO

Message par agardunor »

clé integer sans identity code:

Code : Tout sélectionner

CREATE  TABLE "embranchement"
(idembranchement integer not null primary key, "embranchement" VARCHAR(50) default 'Cryptogames' ,  -- Cryptogames et Spermaphytes
"propriete" VARCHAR(50)) 

-- insertions 

insert into "embranchement" values (1,'Cryptogames','organes reproducteurs cachés') 
insert into "embranchement" values (2,'Spermaphytes','organes reproducteurs apparents') 
plantage si j'active SQL direct

ci-joint base de test.
Prochain message je teste avec identity
Pièces jointes
aaa.odb
(3.39 Kio) Téléchargé 73 fois
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

Re: execution d'une requete sql en directe fait planter OO

Message par agardunor »

avec identity:

Code : Tout sélectionner

CREATE  TABLE "embranchement"
(idembranchement integer identity, "embranchement" VARCHAR(50) default 'Cryptogames' ,  -- Cryptogames et Spermaphytes
"propriete" VARCHAR(50)) 

-- insertions 

insert into "embranchement" ("embranchement","propriete") values ('Cryptogames','organes reproducteurs cachés') 
insert into "embranchement" ("embranchement","propriete") values ('Spermaphytes','organes reproducteurs apparents') 
même résultat: exection de la requête ok, mais plantage si SQL direct

base de test jointe
Pièces jointes
aaa.odb
(3.42 Kio) Téléchargé 65 fois
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

Re: execution d'une requete sql en directe fait planter OO

Message par agardunor »

en revanche ça ne plante plus avec:

Code : Tout sélectionner

CREATE  TABLE TEST
(TRUC integer identity, MACHIN VARCHAR(50) default 'Cryptogames' ,  -- Cryptogames et Spermaphytes
BIDULE VARCHAR(50)) 

-- insertions 

insert into TEST (MACHIN,BIDULE) values ('Cryptogames','organes reproducteurs cachés') 
insert into TEST (MACHIN,BIDULE)  values ('Spermaphytes','organes reproducteurs apparents') 
puis en ayant activé SQL direct direct, ça ne plante plus:

Code : Tout sélectionner

select * from TEST 
base jointe.

je tente autre chose pour voir en quoi la casse lui déplait.
Pièces jointes
aaa.odb
(3.47 Kio) Téléchargé 72 fois
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

Re: execution d'une requete sql en directe fait planter OO

Message par agardunor »


La modération vous a écrit: Merci de ne pas poster plusieurs messages à la suite. Vous disposez d'un bouton ÉDITER en haut à droite de chaque message et d'un autre bouton ajout si vous désirez ajouter un complément lorsqu'il n'y a pas de réponse.

ok, trouvé: erreur dans mon select, il fallait des "" pour la table comme pour le create:

Code : Tout sélectionner

CREATE TABLE "embranchement"
("embranchement" VARCHAR(50) default 'Cryptogames' NOT NULL PRIMARY KEY,  -- Cryptogames et Spermaphytes
"propriete" VARCHAR(50))
-- insertions 

insert into "embranchement" values ('Cryptogames','organes reproducteurs cachés') 
insert into "embranchement" values ('Spermaphytes','organes reproducteurs apparents') 

puis le select:

Code : Tout sélectionner

select * from "embranchement"
et là ça passe en sql direct.

Base jointe.
Pièces jointes
aaa.odb
(3.62 Kio) Téléchargé 67 fois
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25143
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: execution d'une requete sql en directe fait planter OO

Message par Dude »

agardunor a écrit :Tu as complétement raison pour les tutoriels
Dans ce cas pourquoi ne pas les suivre ? :?
La conception des tables doit se faire via l'assistant idoine et pas en envoyant un CREATE TABLE.
agardunor
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 02 janv. 2020 18:33

Re: execution d'une requete sql en directe fait planter OO

Message par agardunor »

je m'y mets !

Merci pour le coup de main.
@+
OpenOffice 4.1.10 sous mac OS 11.5.1 (Big Sur)
Verrouillé