IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Insertion dans une Base SQL SERVER depuis Table mémoire [WD23]


Sujet :

WinDev

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2018
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2018
    Messages : 75
    Points : 49
    Points
    49
    Par défaut Insertion dans une Base SQL SERVER depuis Table mémoire
    Bonjour,

    Voici mon problème. J'importe un fichier Excel dans une table mémoire. sur la même fenetre un bouton nommé "Enregistrer" me permet d'enregistrer cette table dans une base SQL SERVER.
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    HDécritConnexion("ConnexionSQLServeur", sLogin, sPWD, sNomServeur, sNomBase, "SQLOLEDB", hOLectureEcriture, "", hCurseurServeur + hCurseurOpenKeyset)
     
    // Ouvrir la nouvelle connexion
    SI PAS HOuvreConnexion("ConnexionSQLServeur") ALORS
    	Erreur("Impossible d'établir la connexion"+RC+ErreurInfo())
    FIN
    nOccurence=3
     
    POUR nIndice=1 À nOccurence
     
    	SI PAS TABLE_IMPORT[nIndice][1]="" ALORS
    		sREQ ="INSERT INTO [mabase].[dbo].[matable] VALUES ('"+TABLE_IMPORT[nIndice][1]+"','"+TABLE_IMPORT[nIndice][2]+"','"+TABLE_IMPORT[nIndice][3]+"','"+TABLE_IMPORT[nIndice][4]+"','"+TABLE_IMPORT[nIndice][5]+"',"+TABLE_IMPORT[nIndice][6]+","+TABLE_IMPORT[nIndice][7]+","+TABLE_IMPORT[nIndice][8]+","+TABLE_IMPORT[nIndice][9]+","+TABLE_IMPORT[nIndice][10]+","+TABLE_IMPORT[nIndice][11]+","+TABLE_IMPORT[nIndice][12]+","+TABLE_IMPORT[nIndice][13]+","+TABLE_IMPORT[nIndice][14]+","+TABLE_IMPORT[nIndice][15]+","+TABLE_IMPORT[nIndice][16]+","+TABLE_IMPORT[nIndice][17]+",'"+TABLE_IMPORT[nIndice][18]+"','"+TABLE_IMPORT[nIndice][19]+"');"
    		SI PAS HExécuteRequêteSQL(sdREQ,"ConnexionSQLServeur",sREQ) ALORS
    			Erreur("erreur",HErreurInfo())
    		FIN
    	FIN
     
    FIN
    HAnnuleDéclaration(sdREQ)
    Erreur dans le code SQL de la requête "sdREQ" Iniialisation de la requête impossible

    Pourtant quand je mets le resultat de ma variable "sREQ" sous SQL SERVER l'import se fait correctement.

    Auriez-vous une idée du problème ?

    Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonjour
    Vous avez essayé hRequêteSansCorrection. Suivant l'aide :

    Le moteur HFSQL n'effectue aucune vérification de la requête. Cette option doit être utilisée si la requête comporte des ordres spécifiques à un type de connexion (Oracle, SQL Server, ...).

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 393
    Points
    9 393
    Par défaut
    Tu ouvres une connexion. cette connexion s'appelle "ConnexionSQLServeur" (le 1er paramètre de ta commande houvreconnexion)
    Puis tu lance ta requête sur une autre connexion, qui n'a pas été ouverte (sdreq).

    Regarde dans cette piste.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre du Club
    Femme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2018
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2018
    Messages : 75
    Points : 49
    Points
    49
    Par défaut
    merci à tous les 2.

    Effectivement j'ai essayé hRequêteSansCorrection mais sans succès.

    Par contre,
    Tu ouvres une connexion. cette connexion s'appelle "ConnexionSQLServeur" (le 1er paramètre de ta commande houvreconnexion)
    Puis tu lance ta requête sur une autre connexion, qui n'a pas été ouverte (sdreq).
    Regarde dans cette piste.
    quelle autre connexion ? j'ai pourtant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HExécuteRequêteSQL(sdREQ,"ConnexionSQLServeur",sREQ)
    ah oui j'ai déclaré plus haut sdreq est une source de donnée. ce qui est équivalent à mon HOuvreConnexion("ConnexionSQLServeur") j'utilise un bout de code existant dans un autre projet...

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion des données Excel dans une base SQL-Server
    Par cedy-kassy dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/03/2012, 11h11
  2. problème d'insertion dans une base SQL Server 2000 Via un trigger
    Par Alexandre_g dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/04/2009, 15h30
  3. probleme d'insertion dans une base sql server
    Par brajae85 dans le forum ASP.NET
    Réponses: 18
    Dernier message: 17/09/2008, 23h09
  4. Réponses: 1
    Dernier message: 17/09/2008, 13h40
  5. Réponses: 0
    Dernier message: 21/04/2008, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo