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 :