Gambas France BETA


Pas de compte ? Incription

Comment générer une table SQlite3 à partir d'un fichier csv :

En utilisant la fonction Split :



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
PRIVATE SUB creaEnreg()

DIM r AS STRING
DIM fichier AS STRING
DIM stx AS String[]
DIM vx AS String[]

fichier = File.Load("Table1.csv") '<-----------------' chargement du fichier préalablement rempli
stx = Split(fichier, gb.NewLine, "'", TRUE) '<---------' bien respecter la syntaxe

FOR EACH r IN stx '<---------------------------------' chaque ligne est passée en revue
vx = Split(r, ",", "'", TRUE) '<---------------------' tous les champs sont récupérés
hConn.Exec("insert into Table1 values (" & vx[0] & "," & vx[1] & "," & vx[2] & "," & vx[3] & "," & vx[4] & "," & vx[5] & ")") '<------------' insertion des champs dans la Table1
NEXT

hConn.Tables.Refresh

END

Vous pouvez laisser le soin à la base de données de gérer les clés primaires, de la sorte, en signifiant quels champs alimenter :
1
2
3
4
FOR EACH r IN stx '<---------------------------------' pour chaque ligne
vx = Split(r, ",", "'", TRUE) '<------------------' on sort les éléments séparés par une virgule
MConn.hConn.Exec("insert into Table1 ('Nom','URL','Codec','Genre','Pays') values (" & vx[0] & "," & vx[1] & "," & vx[2] & "," & vx[3] & "," & vx[4] & ")")
NEXT '<---------------------------------------------' après insertion de la ligne de valeurs dans la table, on passe à la suivante

Dans le premier code, nous imposons la valeur à la clé primaire, c'est le champ vx[0] (attention aux doublons), dans l'exemple suivant, la clé primaire est géré par la base de données, vx[0] est toujours le premier champ à alimenter mais ici il s'agit du champ 'Nom', suivant le champ de la clé primaire. Le deuxième exemple évite d'avoir à gérer les clés primaires et ses doublons possibles qui provoqueraient des erreurs.

Commentaires sur le format :


Selon que les champs sont entourés de guillemets, d'apostrophes ou de rien, il faudra faire varier son code :
1
2
3
hConn.Exec("insert into Table3 values ('" & vx[0] & "','" & vx[1] & "','" & vx[2] & "')") '<---' pas fait avec gambas et attention aux apostrophes
hConn.Exec("insert into Table3 values (" & vx[0] & "," & vx[1] & "," & vx[2] & ")") '<------------' fait avec gambas et attention aux apostrophes
hConn.Exec("insert into Table3 values ('" & i & "'," & vx[0] & "," & vx[1] & ")") '<--------------' mixe des deux

Conditions :


La connection hConn est créée dans le code, ainsi que la table, Table1.

À l'évidence, il y a ici, 6 champs, dont la clé primaire, dans chaque ligne du fichier csv et dans la table, Table1.
Le fichier csv à utiliser ne doit pas comporter les entêtes de champ, si celui-ci a été généré avec l'IDE de Gambas ou DBbrowser, il faudra penser à effacer la première ligne, qui comporte les noms des champs, dans celui-ci.

====================

Navigation :



<-- Liens du Wiki : <--
<-- Accueil du WIKI : <--

====================

La Documentation :