Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-10-02 Par sujet ribotb

Bonsoir François,

J'avais à plusieurs reprises créé des tables par copier-coller à partir 
de feuille Calc. Mais je ferai des essais avec cette procédure.  En tout 
cas, merci de l'avoir porté à notre connaissance.


Bonne soirée et bon dimanche,
Bernard


Le 02/10/2010 19:26, Francois Gatto a écrit :

Bonsoir Bernard,

Le 02/10/2010 10:27, ribotb a écrit :

C'est un truc que je ne connaissais pas, l'association d'une table à un
fichier csv. Mais est-ce que ça n'équivaut pas au copier-coller d'une
feuille Calc,


Pas tout à fait !


procédure beaucoup plus simple puisque la table se crée
automatiquement


Oui mais un automatisme *très* relatif ;)


(il suffit alors de choisir les champs et demander
éventuellement la création d'une clé primaire) ? Pour résumer la
procédure en une phrase :-)



Les limites de cette procédure via Calc seront rapidement atteintes 
notamment lors de l'import d'un nombre de lignes très important et 
supérieur aux possibilités d'une feuille.


Par ailleurs, suite à des besoins spécifiques, l'injection de 
plusieurs centaines de millier de lignes est assez rébarbatif sous 
HSQLDB sur un serveur Ubuntu. Certaines manips sur les tables 
deviennent particulièrement fastidieuses et "longuissimes".
Aussi j'ai dû me rabattre vers une config LAMP qui offre une grande 
souplesse et efficacité.



Bernard


Bonne soirée
Francois Gatto



Le 02/10/2010 09:59, François Gatto a écrit :

Bonjour,

Le 01/10/2010 22:45, yves dutrieux a écrit :

Bonsoir,

Le 30 septembre 2010 21:33, Ludovic CHEVALIER a
écrit
:


Salut!

Il s'agit de requêtes de type "INSERT INTO TABLE (???,???)
VALUES(XXX,XXX);



Si c'est des inserts, perso, j'aurais généré un fichier texte csv
avec les
valeurs et utilisé la commande sql
insert from file (ou qq chose du genre, je connais plus la syntaxe).

Yves




Voilà, voilà.

Ludo



Merci Yves d'avoir réveiller mes neurones.

Certes, sauf erreur de ma part, il ne s'agit pas du simple emploi
d'une séquence du genre "insert from file".

HSQLDB permet effectivement d'injecter en masse des données via des
fichiers de type csv.
La procédure est "légèrement" longue et on y trouvera intérêt que dans
des insertions par lots.

La démarche est la suivante :
1 *création* d'une table (temporaire) de type TEXT,
2 *association* du fichier csv à injecter,
3 *insertion* des données dans une table (existante ou à créer)
4 *suppression* de la table temporaire

En SQL voici un exemple :

1 *création* d'une table (temporaire) de type TEXT

CREATE TEXT TABLE "TableCsv" (
"ID" identity,
"Nom" varchar(25) ,
"Temps" Time );

2 *association* du fichier csv à injecter

SET TABLE "TableCsv" SOURCE "insertion_donnees.csv";

3 *insertion* des données dans une table "LaTable"
existante *et* de même structure.

INSERT INTO "LaTable" SELECT * FROM "TableCsv";

4 *suppression* de la table temporaire

DROP TABLE "TableCsv";

Voilà !

Bon faudra bien veiller à respecter les structures des tables et
l'agencement des données dans le fichier à importer.

Un peu de lecture ici :
http://hsqldb.org/doc/2.0/guide/texttables-chapt.html

Bonne journée
Francois Gatto

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



--
Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1


---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 101002-0, 02/10/2010
Analyse le : 02/10/2010 19:35:42
avast! - copyright (c) 1988-2010 AVAST Software.
http://www.avast.com





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-10-02 Par sujet Francois Gatto

Bonsoir Bernard,

Le 02/10/2010 10:27, ribotb a écrit :

C'est un truc que je ne connaissais pas, l'association d'une table à un
fichier csv. Mais est-ce que ça n'équivaut pas au copier-coller d'une
feuille Calc,


Pas tout à fait !


procédure beaucoup plus simple puisque la table se crée
automatiquement


Oui mais un automatisme *très* relatif ;)


(il suffit alors de choisir les champs et demander
éventuellement la création d'une clé primaire) ? Pour résumer la
procédure en une phrase :-)



Les limites de cette procédure via Calc seront rapidement atteintes 
notamment lors de l'import d'un nombre de lignes très important et 
supérieur aux possibilités d'une feuille.


Par ailleurs, suite à des besoins spécifiques, l'injection de plusieurs 
centaines de millier de lignes est assez rébarbatif sous HSQLDB sur un 
serveur Ubuntu. Certaines manips sur les tables deviennent 
particulièrement fastidieuses et "longuissimes".
Aussi j'ai dû me rabattre vers une config LAMP qui offre une grande 
souplesse et efficacité.



Bernard


Bonne soirée
Francois Gatto



Le 02/10/2010 09:59, François Gatto a écrit :

Bonjour,

Le 01/10/2010 22:45, yves dutrieux a écrit :

Bonsoir,

Le 30 septembre 2010 21:33, Ludovic CHEVALIER a
écrit
:


Salut!

Il s'agit de requêtes de type "INSERT INTO TABLE (???,???)
VALUES(XXX,XXX);



Si c'est des inserts, perso, j'aurais généré un fichier texte csv
avec les
valeurs et utilisé la commande sql
insert from file (ou qq chose du genre, je connais plus la syntaxe).

Yves




Voilà, voilà.

Ludo



Merci Yves d'avoir réveiller mes neurones.

Certes, sauf erreur de ma part, il ne s'agit pas du simple emploi
d'une séquence du genre "insert from file".

HSQLDB permet effectivement d'injecter en masse des données via des
fichiers de type csv.
La procédure est "légèrement" longue et on y trouvera intérêt que dans
des insertions par lots.

La démarche est la suivante :
1 *création* d'une table (temporaire) de type TEXT,
2 *association* du fichier csv à injecter,
3 *insertion* des données dans une table (existante ou à créer)
4 *suppression* de la table temporaire

En SQL voici un exemple :

1 *création* d'une table (temporaire) de type TEXT

CREATE TEXT TABLE "TableCsv" (
"ID" identity,
"Nom" varchar(25) ,
"Temps" Time );

2 *association* du fichier csv à injecter

SET TABLE "TableCsv" SOURCE "insertion_donnees.csv";

3 *insertion* des données dans une table "LaTable"
existante *et* de même structure.

INSERT INTO "LaTable" SELECT * FROM "TableCsv";

4 *suppression* de la table temporaire

DROP TABLE "TableCsv";

Voilà !

Bon faudra bien veiller à respecter les structures des tables et
l'agencement des données dans le fichier à importer.

Un peu de lecture ici :
http://hsqldb.org/doc/2.0/guide/texttables-chapt.html

Bonne journée
Francois Gatto

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-10-02 Par sujet Francois Gatto

Le 02/10/2010 12:31, yves dutrieux a écrit :

Bonjour François,



La création inverse par contre elle, existe bel et bien (un select * vers un
fichier csv) - j'ai confondu :-/



Oui l'export est simple et efficace. J'avais il y a quelques temps 
répondu là dessus et sur cette liste il me semble ;-)


Bonne soirée
Francois Gatto

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-10-02 Par sujet ribotb
C'est un truc que je ne connaissais pas, l'association d'une table à un 
fichier csv. Mais est-ce que ça n'équivaut pas au copier-coller d'une 
feuille Calc, procédure beaucoup plus simple puisque la table se crée 
automatiquement (il suffit alors de choisir les champs et demander 
éventuellement la création d'une clé primaire) ? Pour résumer la 
procédure en une phrase :-)


Bernard

Le 02/10/2010 09:59, François Gatto a écrit :

Bonjour,

Le 01/10/2010 22:45, yves dutrieux a écrit :

Bonsoir,

Le 30 septembre 2010 21:33, Ludovic CHEVALIER  a 
écrit

:


Salut!

Il s'agit de requêtes de type "INSERT INTO TABLE (???,???) 
VALUES(XXX,XXX);




Si c'est des inserts, perso, j'aurais généré un fichier texte csv 
avec les

valeurs et utilisé la commande sql
insert from file (ou qq chose du genre, je connais plus la syntaxe).

Yves




Voilà, voilà.

Ludo



Merci Yves d'avoir réveiller mes neurones.

Certes, sauf erreur de ma part, il ne s'agit pas du simple emploi 
d'une séquence du genre "insert from file".


HSQLDB permet effectivement d'injecter en masse des données via des 
fichiers de type csv.
La procédure est "légèrement" longue et on y trouvera intérêt que dans 
des insertions par lots.


La démarche est la suivante :
1 *création* d'une table (temporaire) de type TEXT,
2 *association* du fichier csv à injecter,
3 *insertion* des données dans une table (existante ou à créer)
4 *suppression* de la table temporaire

En SQL voici un exemple :

1 *création* d'une table (temporaire) de type TEXT

CREATE TEXT TABLE "TableCsv" (
"ID" identity,
"Nom" varchar(25) ,
"Temps" Time );

2 *association* du fichier csv à injecter

SET TABLE "TableCsv" SOURCE "insertion_donnees.csv";

3 *insertion* des données dans une table "LaTable"
 existante *et* de même structure.

INSERT INTO "LaTable" SELECT * FROM  "TableCsv";

4 *suppression* de la table temporaire

DROP TABLE  "TableCsv";

Voilà !

Bon faudra bien veiller à respecter les structures des tables et 
l'agencement des données dans le fichier à importer.


Un peu de lecture ici :
http://hsqldb.org/doc/2.0/guide/texttables-chapt.html

Bonne journée
Francois Gatto

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



--
Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1


---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 101001-1, 01/10/2010
Analyse le : 02/10/2010 10:27:48
avast! - copyright (c) 1988-2010 AVAST Software.
http://www.avast.com





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-10-02 Par sujet ribotb

Moi non plus...

Bernard

Le 01/10/2010 23:22, François Gatto a écrit :

Bonsoir,

Le 01/10/2010 22:45, yves dutrieux a écrit :

insert from file


Je ne suis pas sûr qu'une commande de ce genre soit autorisée.
Et je n'ai pas connaissance d'une commande du genre "bulk insert".

Pour mes besoins d'import de données de type csv j'utilise (parfois) 
le gestionnaire de carnet d'adresses (Fichier>Assistants>Source de 
données des adresses)


Francois Gatto



-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



--
Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1


---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 101001-1, 01/10/2010
Analyse le : 02/10/2010 10:21:22
avast! - copyright (c) 1988-2010 AVAST Software.
http://www.avast.com





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-10-02 Par sujet François Gatto

Bonjour,

Le 01/10/2010 22:45, yves dutrieux a écrit :

Bonsoir,

Le 30 septembre 2010 21:33, Ludovic CHEVALIER  a écrit
:


Salut!

Il s'agit de requêtes de type "INSERT INTO TABLE (???,???) VALUES(XXX,XXX);



Si c'est des inserts, perso, j'aurais généré un fichier texte csv avec les
valeurs et utilisé la commande sql
insert from file (ou qq chose du genre, je connais plus la syntaxe).

Yves




Voilà, voilà.

Ludo



Merci Yves d'avoir réveiller mes neurones.

Certes, sauf erreur de ma part, il ne s'agit pas du simple emploi d'une 
séquence du genre "insert from file".


HSQLDB permet effectivement d'injecter en masse des données via des 
fichiers de type csv.
La procédure est "légèrement" longue et on y trouvera intérêt que dans 
des insertions par lots.


La démarche est la suivante :
1 *création* d'une table (temporaire) de type TEXT,
2 *association* du fichier csv à injecter,
3 *insertion* des données dans une table (existante ou à créer)
4 *suppression* de la table temporaire

En SQL voici un exemple :

1 *création* d'une table (temporaire) de type TEXT

CREATE TEXT TABLE "TableCsv" (
"ID" identity,
"Nom" varchar(25) ,
"Temps" Time );

2 *association* du fichier csv à injecter

SET TABLE "TableCsv" SOURCE "insertion_donnees.csv";

3 *insertion* des données dans une table "LaTable"
 existante *et* de même structure.

INSERT INTO "LaTable" SELECT * FROM  "TableCsv";

4 *suppression* de la table temporaire

DROP TABLE  "TableCsv";

Voilà !

Bon faudra bien veiller à respecter les structures des tables et 
l'agencement des données dans le fichier à importer.


Un peu de lecture ici :
http://hsqldb.org/doc/2.0/guide/texttables-chapt.html

Bonne journée
Francois Gatto

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-10-01 Par sujet François Gatto

Bonsoir,

Le 01/10/2010 22:45, yves dutrieux a écrit :

insert from file


Je ne suis pas sûr qu'une commande de ce genre soit autorisée.
Et je n'ai pas connaissance d'une commande du genre "bulk insert".

Pour mes besoins d'import de données de type csv j'utilise (parfois) le 
gestionnaire de carnet d'adresses (Fichier>Assistants>Source de données 
des adresses)


Francois Gatto



-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-09-30 Par sujet Alex Thurgood

Bonjour,


Quel moteur de BDD derrière ? Je pose la question, car la plupart des moteurs 
de BDD ont un accès client ligne de commande, et avec ça, en général, tu peux 
passer un ensemble d'instructions SQL directement à la base, par exemple en les 
mettant tous dans un fichier SQL. Il faut pour cela que la DB et la table soit 
identifiée dans ce fichier.


Alex

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-09-30 Par sujet ribotb
Je ne connais pas de moyen de faire de l'insertion de masse avec OOo 
mais peut-être y-a-t-il moyen de faire autrement.


Je suppose que tu n'as pas écrit les 900 instructions SQL "a la mano" et 
qu'elles ont été générées à partir d'une source de données. Si cette 
source de données ressemblait à une feuille de calcul (ou pouvait être 
mis sous la forme d'une feuille de calcul) il serait possible 
éventuellement de créer une table avec l'assistant de création de OOo Base.


Bernard

Le 30/09/2010 21:33, Ludovic CHEVALIER a écrit :

Salut!

Il s'agit de requêtes de type "INSERT INTO TABLE (???,???) VALUES(XXX,XXX);

Voilà, voilà.

Ludo


-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org


   

--
Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1


---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 100930-0, 30/09/2010
Analyse le : 30/09/2010 22:54:39
avast! - copyright (c) 1988-2010 AVAST Software.
http://www.avast.com





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-09-30 Par sujet Ludovic CHEVALIER
Salut!

Il s'agit de requêtes de type "INSERT INTO TABLE (???,???) VALUES(XXX,XXX);

Voilà, voilà.

Ludo


-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-09-30 Par sujet ribotb

Bonjour,

Pour aller dans le sens de Jean-Michel, ce serait bien de connaitre le 
genre de requêtes à exécuter.


Bernard Ribot

Le 30/09/2010 12:59, Ludovic CHEVALIER a écrit :

Bonjour.

Je souhaite exécuter un grand nombre de requêtes SQL sur une de mes bases.

Je connais la fonction qui permet de le faire via le menu Outils.
Seulement, la boîte de dialogue est limitée à quelques requêtes
seulement, et moi, j'en ai environ 900.

Je suis obligé de faire une macro Basic ou bien y'a t-il une solution
plus ... friendly user???

Merci d'avance pour vos conseils éclairés.

Ludo

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org


   

--
Bernard Ribot Windows 7 / Windows XP SP3 OpenOffice.prg 3.2.1


---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 100930-0, 30/09/2010
Analyse le : 30/09/2010 21:25:33
avast! - copyright (c) 1988-2010 AVAST Software.
http://www.avast.com





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



Re: [users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-09-30 Par sujet Jean Michel PIERRE



Bonjour.

Je souhaite exécuter un grand nombre de requêtes SQL sur une de mes bases.

Je connais la fonction qui permet de le faire via le menu Outils.
Seulement, la boîte de dialogue est limitée à quelques requêtes
seulement, et moi, j'en ai environ 900.

Je suis obligé de faire une macro Basic ou bien y'a t-il une solution
plus ... friendly user???

Merci d'avance pour vos conseils éclairés.

Ludo
  


Bonjour,
On peut penser que tu veux appliquer 900 critères différents à la même 
table.

Il faudrait donc avoir un aperçu de ta base, avec au moins une des requêtes.
Mais 900 requêtes, je ne vois pas l'utilité.
J.M





-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org



[users-fr] OOo 31.2 - Base - Exécution de requêtes SQL en masse

2010-09-30 Par sujet Ludovic CHEVALIER
Bonjour.

Je souhaite exécuter un grand nombre de requêtes SQL sur une de mes bases.

Je connais la fonction qui permet de le faire via le menu Outils.
Seulement, la boîte de dialogue est limitée à quelques requêtes
seulement, et moi, j'en ai environ 900.

Je suis obligé de faire une macro Basic ou bien y'a t-il une solution
plus ... friendly user???

Merci d'avance pour vos conseils éclairés.

Ludo

-
To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org
For additional commands, e-mail: users-h...@fr.openoffice.org