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

MFC Discussion :

[Visual C++][WinApp]Insertion dans base de données


Sujet :

MFC

  1. #1
    Membre à l'essai
    Homme Profil pro
    BI Développeur
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : BI Développeur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 15
    Points
    15
    Par défaut [Visual C++][WinApp]Insertion dans base de données
    J'utilise Visual Studio.net 2003, mon projet se fait en application windows forms.

    Voila j'ai besoin dans mon programme d'inserer des données et pour ce faire j'ai fait comme ci dessous :
    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
    21
    22
    23
     
    void CMyMessage::writedb(String* s, String* f, String* t,String* h, String* p, String* m)
    {
    	SqlConnection* myConnection=new SqlConnection();
    	SqlCommand* cmd=new SqlCommand();
     
    	myConnection->ConnectionString=S"server=*****; database=*******; integrated security=SSPI; packet size=4096; persist security info=false;";
     
     
    	String* strinsert=S"INSERT INTO _syslogtable ( severity, facility, timespan, hostname, processus, message) VALUES (";
    	strinsert=strinsert->Concat(strinsert,"'",s,"',");
    	strinsert=strinsert->Concat(strinsert,"'",f,"',");
    	strinsert=strinsert->Concat(strinsert,"'",t,"',");
    	strinsert=strinsert->Concat(strinsert,"'",h,"',");
    	strinsert=strinsert->Concat(strinsert,"'",p,"',");
    	strinsert=strinsert->Concat(strinsert,"'",m,"')");
    	cmd->CommandText=strinsert;
    	cmd->Connection=myConnection;
     
    	myConnection->Open();
    	cmd->ExecuteScalar();
    	myConnection->Close();
    }
    Ce code fonctionne correctement, tout ce que j'aimerai savoir c'est si il n'existe pas un moyen pour créer la requete sans devoir faire de concatenation de la chaine de caractères.

  2. #2
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Salut,

    Je vois que l'opérator += pour String est absent pour la concaténation alors que CString la fournit impécablement. Mais bon

    tu as vu ceci pour un tableau de String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [C++]
    [Serializable]
    public: static String* Concat(
       String* values __gc[]
    );
    toi tu as utilisé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [C++]
    [Serializable]
    public: static String* Concat(
       String* str0,
       String* str1,
       String* str2
    );
    Gabrielly

  3. #3
    Membre à l'essai
    Homme Profil pro
    BI Développeur
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : BI Développeur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Merci pour ca mais c'est pour l'insert que je veux des reponses, le concat fonctionne, l'insert aussi, mais je veux juste savoir si il existe un autres moyen pour insérer les parametres de ma fonction autrement que par concatenation.

    Mais merci quand meme de m'avoir prevenu que la syntaxe de mon concat n'etait pas correcte je vais voir comment je dois faire pour la changer.

  4. #4
    Membre à l'essai
    Homme Profil pro
    BI Développeur
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : BI Développeur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Rebonjour,

    Je en veut pas etre desagreable mais une reponse est toujour attendue pour ce sujet.
    Et si vous ne savez pas y repondre dites le clairement ce sera plus simple et je me debrouillerai autrement.

    Je vous remercie d'avance pour le coup de main si il en vient un un jour.

  5. #5
    Membre habitué Avatar de BertrandA
    Inscrit en
    Août 2003
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 170
    Points : 197
    Points
    197
    Par défaut
    Ce code fonctionne correctement
    Ca m'étonnerait il est truffé de fuites mémoire.

    s'il n'existe pas un moyen pour créer la requete sans devoir faire de concatenation de la chaine de caractères.
    en utilisant String::Format()

  6. #6
    Membre à l'essai
    Homme Profil pro
    BI Développeur
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : BI Développeur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Je te remercie bertrand je vais regarder ce que tu m'a dis avec le String::Format();

    Tu entend quoi par fuite de mémoire???

  7. #7
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    memoire allouée non relachée ..
    comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SqlConnection* myConnection=new SqlConnection();
     SqlCommand* cmd=new SqlCommand();
    ou est le delete de ces 2 pointeurs ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    BI Développeur
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : BI Développeur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    C'est juste je les ai oubliés Merci ca doit etre a cause du C# j'en ai fait plus que du C++.

  9. #9
    Membre à l'essai
    Homme Profil pro
    BI Développeur
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : BI Développeur
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par farscape
    salut,
    memoire allouée non relachée ..
    comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SqlConnection* myConnection=new SqlConnection();
     SqlCommand* cmd=new SqlCommand();
    ou est le delete de ces 2 pointeurs ?
    J'ai regarder pour mettre les delete de ces deux pointeurs et je ne dois pas les mettre car j'utilise des classes managées et comme il est dit dans la MSDN ;

    Lorsque vous développez des applications à l'aide des extensions managées pour C++ ou d'un autre langage qui cible le Common Language Runtime, il n'est pas nécessaire d'utiliser l'opérateur delete pour libérer un objet. Le garbage collector s'en charge automatiquement à votre place lorsque l'objet n'est plus utilisé par l'application.

Discussions similaires

  1. Problème d'insertion dans base de donnée
    Par Maestro57 dans le forum Langage
    Réponses: 4
    Dernier message: 11/06/2007, 11h04
  2. Réponses: 2
    Dernier message: 23/11/2006, 11h37
  3. [VB.NET]Requete INSERT dans base de données access
    Par mael94420 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/10/2006, 14h57
  4. Réponses: 6
    Dernier message: 09/06/2006, 13h17
  5. Réponses: 9
    Dernier message: 13/10/2005, 19h24

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