Précédent   Forum des professionnels en informatique > Autres langages > Pascal > Lazarus
Lazarus Forum d'entraide sur Lazarus, l'EDI RAD multiplateforme basé sur Free Pascal
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 09h31   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 29
Points : 13
Points : 13
Par défaut Attacher une Table : Lazarus + ZEOS + SQLITE

Bonjour

Quelqu'un pourrait il me donner la méthode pour attacher une table ou une base à une autre base SQLITE avec les outils cités dans l'objet.

La doc SQLITE donne la commande Attach, mais je n'obtiens rien en mettant ceci dans la requete sql d'un Zquery.

Faut il faire autrement ou utiliser un autre composant zeos ?
(Les commandes pragma ou vacuum marchent avec zquery)

Merci d'avance


Jean Louis
teryen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 20h58   #2
Membre du Club
 
Homme Alain Caumes
Chef de projet MOA
Inscription : juillet 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Alain Caumes
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Transports

Informations forums :
Inscription : juillet 2011
Messages : 26
Points : 56
Points : 56
Normalement

Code :
1
2
 
attach "NouvelleBase.s3db" as NomBase
As-tu essayé de passer cette commande avec l'exécutable Sqlite.exe du site?
acaumes est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 21h47   #3
Candidat au titre de Membre du Club
 
Inscription : septembre 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 29
Points : 13
Points : 13
Je suis sous windows.
J'ai déjà essayé cette commande en mode commande mais cela ne donne rien.
teryen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 23h19   #4
Membre du Club
 
Homme Alain Caumes
Chef de projet MOA
Inscription : juillet 2011
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Alain Caumes
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Transports

Informations forums :
Inscription : juillet 2011
Messages : 26
Points : 56
Points : 56
Bonjour,

Comme ça?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
..\Sqlite\sqlite3.exe TesSQlentr.s3db
SQLite version 3.7.9 2011-11-01 00:52:41
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
NouvelleTable  TestCCC        TestCxc        lasttest
sqlite> attach "test.s3db" as Test;
sqlite> .tables
NouvelleTable  TestCCC        TestCxc        lasttest
sqlite> .databases
seq  name             file
---  ---------------  ----------------------------------------------------------
0    main             D:\Documents\PaPa\winprog\TestDb\TesSQlentr.s3db
1    temp
2    Test             D:\Documents\PaPa\winprog\TestDb\test.s3db
sqlite>
sqlite> select * from test.test;
AQAZ|125
AZE|125
458|GRT
78|LMTRE
sqlite> select * from main.test2;
1|9402772661|940277|2008-03-24 00:00|2008-03-24 00:00||941260|
sqlite>
Tu ne trouves pas les tables de la seconde base parce que les tables listées par la commande .tables sont uniquement celles de la base main mais la seconde base est bien présente et tu peux voir les données de toutes les tables.

La seule contrainte, c'est de préfixer la table par le nom de la base attchée si elle porte le même nom que celui de la base principale

Cordialement
acaumes est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/12/2011, 23h55   #5
Candidat au titre de Membre du Club
 
Inscription : septembre 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 29
Points : 13
Points : 13
Bonsoir

Mea culpa, comme cela ça marche.

Mais je voudrais faire la même chose sous Lazarus avec les composants ZEOS.

J'ai vu des appli le faisant avec delphi, donc j'imagine que c'est possible.

En tout cas merci pour ce début de solution.

Jean Louis
teryen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 20h05   #6
Candidat au titre de Membre du Club
 
Inscription : septembre 2003
Messages : 29
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 29
Points : 13
Points : 13
Bonsoir

Problème résolu. Pour ceux que la solution intéresse, il faut utiliser le composant : TZSQLProcessor et surtout ne pas fermer la connexion.

exemple :

Code :
1
2
3
4
5
6
7
8
 
procedure TForm1.B_Attache_BaseClick(Sender: TObject);
var  base : string;
begin
  if od.execute then base := od.filename;
  ZSQLProcessor1.Script.text := ' ATTACH DATABASE "'+ base +'" as base_attachee ';
  ZSQLProcessor1.Execute;
end;
et la cela marche nickel !

Jean Louis
teryen est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h20.


 
 
 
 
Partenaires

Hébergement Web