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.
Comment trouver le nom d'une table d'une base de données
Comment trouver le nom d'une table d'une base de données
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment trouver le nom d'une table d'une base de données
On va dire que la question est mal formulée.Micoute a écrit :j'aimerais connaître comment trouver le nom du table d'une base données ouverte à l'aide d'un OpenFileRequester.
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 :
Code : Tout sélectionner
DatabaseQuery(0, "SELECT * FROM MyTable")
J’espère que j'ai bien compris ta demande.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Comment trouver le nom d'une table d'une base de données
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. 

Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Comment trouver le nom d'une table d'une base de données
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.
- 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Comment trouver le nom d'une table d'une base de données
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.
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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Comment trouver le nom d'une table d'une base de données
Merci falsam pour ce partage, aujourd’hui encore j'aurais appris quelque chose vraiment intéressant.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège