EXCEL vers SQL

bezin

Habitué
soit une table dans, une base de données, comprenant les arguments suivants : (column1, column2)
et soit un tableau excel dont les colonnes sont également (column1, column2)

normalement si on veut insérer ces lignes dans la table manuellement, on utilise insert into <table> <liste valeurs>

le but de la macro qu'on veut créer en C++ ,est de créer une requête sql qui permet de transposer automatiquement ces lignes cers la table.

première question: comment accéder à une base de données en C++?

merci
 

boub popsyteam

Grand Maître
C'est pas une macro c'est une moulinette :)

Une macro c'est dans excel et c'est du VBA :o

Et le plus dur c'est pas acceder à la BDD en C++ mais lire un fichier excel ...
 

bezin

Habitué
et euh, comment on fait?
et à supposer que l'on puisse lire le fichier excel puisqu'on connait sa structure, le but en lui même n'est pas de faire migrer ces informations ves une table, mais de créer la requête permettant de le faire.
il faut que l'utilisateur tape lui même la requête sur son éditeur pour que le programme roule.
merci
 

bezin

Habitué
euh en fait, ce qu'on nous demande de faire c'est de créer un script SQL dont l'extension est .sql qui permet d'automatiser l'insertion des lignes à partir du tableau excel dans la table.

en fait , la base de données n'est pas relationnelle mais documentaire :/
(c'est quoi ce truc?)
 

zeb

Modérateur
NON. La syntaxe correcte est [fixed]INSERT INTO <table> VALUES (<liste valeur>)[/fixed]

Questions:
- C'est du scolaire ou du boulot ?
- Si boulot, C'est du one-shot ou il faut une moulinette pour le faire régulièrement ?
- Un script (SQL ou pas) doit être interprété par une application. Quelle est cette application ?
 

bezin

Habitué
euh oui c 'est effectivement la bonne syntaxe.

lol zeb quand je te lis j'ai l'impression de lire du chinois...
mais pour répondre à ta première question, je suis en plein stage :/ et je rame...
je ne sais même pas ce qu'est un script...
ce qu'on nous a demandé en fait, c'est de créer un fichier *.sql qui contient l'ensemble des instructions qui permettent de réaliser le travail précité.
je crois que le programme contiendra les étapes suivantes:
- lecture fichier excel
- boucle avec insert ligne par ligne
et puis c'est tout...
non?
 

zeb

Modérateur
C'est facile ça.
Et en quel langage dois-tu le faire ?

(En VBA, directement dans EXCEL, ça pourait être cool, non, genre un bouton "ENREGISTRER DIRECT EN SQL :) )

C'est quoi ça : [:zeb] Tu vas en mettre partout ?
 

bezin

Habitué
je suppose que je dois le faire en langage sql...
lol oui et c'est facile... super facile :d

euh pour le lien, comme je me suis dite un peu trop tard que ça pouvait ne pas relever du domaine du C++ je l'ai mis au hasard dans la rubrique sql.
je n'ai pas le droit?
 

zeb

Modérateur
Tu fais deux sujets pratiquement identique, c'est tout.
Quel SGBD utilises-tu ? (chinois? système de gestion de base de données)

NON TU NE DOIS PAS LE FAIRE EN SQL.
Le SQL est un langage pour dialoguer avec une base de données.
Toi, tu dois écrire du SQL, pas en SQL. Suis-je clair ?

Ma question reste: En quoi programme-tu ?
 

bezin

Habitué
lol je sais ce que SGBD signifie ( mieux effectivement mieux valait prendre ses précautions) je crois que c'est sqlserver.
mais le probléme c'est que, pour nous montrer où la requête sera écrite, ils se sont connéctés à leur base de données via un lien internet :/
et sur la page , il y a une zone de texte où il y a écrit script sql:

et je programme en C++ ( c'est que c'est le seul langage que je connaisse. et encore....:s)

écrire du sql? pas en sql?
 

zeb

Modérateur
SQLServer -> Donc c'est une base relationnelle.
Mais c'est peut-être aussi une base documentaire [:spamafote]
C'est comme dire : "Non, ce n'est pas une voiture à essence, c'est une voiture de fonction !"

En fait, pour ton programme, tu as en entrée un classeur EXCEL, et en sortie un script SQL.

Tu veux pas le faire dans Excel ?
C'est trop simple un truc comme ça :
Code:
Dim i As Long
Open nomdufichier.Sql For Output As #1
For i = 1 To 65536
    Write #1, "INSERT INTO nomdelatable (COL1, COL2) VALUES (" & Cells(i, 1) & ", " & Cells(i, 2) & ")"
Next
Close #1
 

zeb

Modérateur
Ben si c'est une variable, il fait comme il veut :o

(Une variable avec un point dedans ..... :whistle: ....)

Pis si le contenu de ces colonne est de type chaines, pis si ces chaînes contiennent des apostrophes, pis ... Ah bas oui, c'est pas aussi simple.

Je dis ça juste parce que lire du Excel en C++, c'est galère.
Et que je n'ai aucune idée des composants tous faits où des APIs dont il dispose pour le faire [:spamafote].
 

bezin

Habitué
ce n'est pas du VB ça? et où est -ce que je suis sensée transcrire ce code?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 054
Membres
1 586 393
Dernier membre
mathhh28
Partager cette page
Haut