Page 1 sur 1
Comment trouver le nom d'une table d'une base de données
Publié : ven. 02/oct./2015 19:28
par Micoute
Bonsoir à tous,
j'aimerais connaître comment trouver le nom du table d'une base données ouverte à l'aide d'un OpenFileRequester.
Je vous remercie tous grandement pour votre aide qui me sera précieuse.
Re: Comment trouver le nom d'une table d'une base de données
Publié : ven. 02/oct./2015 21:18
par falsam
Micoute a écrit :j'aimerais connaître comment trouver le nom du table d'une base données ouverte à l'aide d'un OpenFileRequester.
On va dire que la question est mal formulée.
OpenFileRequester() ne permet pas d'ouvrir une base de données. Seule la commande OpenDatabase() permet d'ouvrir une base de données.
Je penses que tu as du combiner ces deux fonctionnalités : Si tu utilises OpenFileRequester() ça suppose que tu vas sélectionner une base de données SQLite que tu ouvriras avec la commande OpenDatabase()
Pour répondre enfin à ta question, avec cette méthode tu ne sauras pas quelle est le nom de la table qui a été ouverte.
C'est toi qui va devoir manipuler les commandes SQL pour dire quelle table tu vas utiliser. Exemple :
Avec ce simple exemple on sélectionnes tous les enregistrements de MyTable . l'* te permet de sélectionner toutes les colonnes d'un enregistrement.
J’espère que j'ai bien compris ta demande.
Re: Comment trouver le nom d'une table d'une base de données
Publié : ven. 02/oct./2015 23:19
par microdevweb
hum, je me demande si la demande de micoute n'est pas lister la base de donnée. Retrouver la lise des tables, des item et leur type. Malheureusement personnellement je n'ai pas la réponse, mais je penses que falsam détiens la réponse puisqu'il l'applique dans Sqlite (très bon logiciel d’ailleurs). Je serais intéressé également par cela.

Re: Comment trouver le nom d'une table d'une base de données
Publié : sam. 03/oct./2015 0:09
par falsam
Un code qui montre :
- Comment lister les noms des tables d'une base de données.
- Comment lister la structure d'une table.
J'ai crée une base de données en mémoire ainsi que trois tables pour cet exercice.
Code : Tout sélectionner
Enumeration
#DataBase
EndEnumeration
UseSQLiteDatabase()
Global ReqSql.s
;Création d'une base de donnée en mémoire et de 3 tables
If OpenDatabase(#DataBase, ":memory:", "", "")
;Creation de la table département
ReqSql = "CREATE TABLE departements ("
ReqSql + "numdep INTEGER," ;Numéro de département
ReqSql + "nom TEXTE" ;Libéllé du département
ReqSql + ");"
DatabaseUpdate(#DataBase, ReqSql)
;Creation de la table client
;l'identification client est une clé automatique autoincrémentée
ReqSql = "CREATE TABLE clients ("
ReqSql + "idcli INTEGER PRIMARY KEY," ;Identifiant client automatiquement incrémenté
ReqSql + "nom TEXT," ;Nom
ReqSql + "numdep INTEGER," ;Numéro de département
ReqSql + "actif INTEGER DEFAULT 1" ;Numéro de département
ReqSql + ");"
DatabaseUpdate(#DataBase, ReqSql)
;Creation de la table chiffre d'affaire
ReqSql = "CREATE TABLE ca ("
ReqSql + "idcli INTEGER,"
ReqSql + "montant INTEGER DEFAULT 0"
ReqSql + ");"
DatabaseUpdate(#DataBase, ReqSql)
EndIf
;Liste des tables
ReqSQL="Select * From sqlite_master order by type Desc, name Asc"
Debug "# Liste des tables de la base de données"
If DatabaseQuery(#Database,ReqSQL)
While NextDatabaseRow(#Database)
If GetDatabaseString(#Database,0)="table"
Debug GetDatabaseString(#Database,1)
EndIf
Wend
EndIf
Debug ""
;Lister les éléments d'une table : Exemple avec la table clients
Table.s = "clients"
ReqSQL="PRAGMA table_info("+Chr(34)+Table+Chr(34)+")"
Debug "# Structure de la table Clients"
If DatabaseQuery(#Database, ReqSQL)
While NextDatabaseRow(#Database)
Debug GetDatabaseString(#Database,0) + " - " + ;cid (Column index)
GetDatabaseString(#Database,1) + " - " + ;name (Column name)
GetDatabaseString(#Database,2) + " - " + ;type (Column type)
GetDatabaseString(#Database,3) + " - " + ;not null (Has a NOT NULL constraint)
GetDatabaseString(#Database,4) + " - " + ;dflt_value (Default value)
GetDatabaseString(#Database,5) ;pk (Primary Key ; 1 si oui)
Wend
EndIf
Re: Comment trouver le nom d'une table d'une base de données
Publié : sam. 03/oct./2015 7:43
par Micoute
Merci microdevweb et surtout falsam d'avoir compris ma requête et quand j'ai essayé, ça m'a donné une grande bouffée de satifaction.
En fait, je voudrais faire une application qui me liste la base de donnée ouverte un peu comme SQLite Vision que j'utilise souvent, pour convertir les bases de données, par exemple en JSON ou autres types.
J'ai beaucoup apprécié votre aide et je vous en remercie encore.
Re: Comment trouver le nom d'une table d'une base de données
Publié : sam. 03/oct./2015 9:26
par microdevweb
Merci falsam pour ce partage, aujourd’hui encore j'aurais appris quelque chose vraiment intéressant.