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 :

[MFC/ADO] Pb insertion d'enregistrement ?


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �m�rite
    Homme Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    564
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 564
    Par d�faut [MFC/ADO] Pb insertion d'enregistrement ?
    Bonjour � tous.

    Je d�veloppe une petite appli avec VC 6.0 en utilisant les MFC. J'utilise un base de donn�es Access 2000 et ADO pour l'acc�s � ma base (via la directive #import .... msado15.dll). Dans une table qui comprend 1 ou plusieurs enregistrements je peux �diter, modifier, supprimer et m�me ins�rer de nouveaux enregistrement, par contre j'ai une table qui ne contient aucun enregistrement et je ne peux pas ins�rer un nouvel enregistrement.

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    BOOL CDataDlg::OnInitDialog() 
    {
    	HRESULT hr = NOERROR;
     
    	CDialog::OnInitDialog();
     
    	try
    	{
    		m_pRs.CreateInstance(__uuidof(Recordset));
     
    		// La requête est du genre "SELECT Champ1, Champ2 FROM Table"
    		m_pRs->Open((LPCTSTR)m_strCmdText, (LPCTSTR)m_strConnection, adOpenDynamic, adLockOptimistic, adCmdText);
     
    		if (FAILED(hr = m_pRs->QueryInterface(__uuidof(IADORecordBinding), (LPVOID *)&m_piAdoRecordBinding)))
    			_com_issue_error(hr);
    		if (FAILED(hr = m_piAdoRecordBinding->BindToRecordset(this)))
    			_com_issue_error(hr);
     
    		// Test si le jeu d'enregistrement est vide, s'il est vide on créer un nouvel enregistrement vierge
    		if (m_pRs->BOF == -1 && m_pRs->EndOfFile == -1)
    		{
    			AddNew ();
    		}
     
    		else
    			RefreshBoundData();
    	}
     
    	catch (_com_error &e)
    	{
    		GenerateError(e.Error(), e.Description());
    	}
     
    	return TRUE;	
    }
     
    void CDataDlg::AddNew ()
    {
    	try
    	{
    		m_piAdoRecordBinding -> Update (this);
     
    		if (m_pRs->Supports(adAddNew))
    		{
    			NewBlanckRecord ();
    			m_piAdoRecordBinding -> AddNew (this);
    			m_pRs->MoveLast ();
    		}
    	}
     
    	catch (_com_error &e)
    	{
    		GenerateError(e.Error(), e.Description());
    	}
    }
    Est ce que quelqu'un peu m'aider ? Merci.

  2. #2
    Membre �m�rite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par d�faut
    Quel code impressionnant pour effectuer une simple insertion d'enregistrement!!!

    Est-ce qu'il n'y a pas plus simple? (sans le support explicite de COM avec ADO).

  3. #3
    Membre �m�rite
    Homme Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    564
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 564
    Par d�faut
    Merci mais ta r�ponse ne m'aide pas du tout. Je sais qu'il existe des solutions beaucoup plus simples pour acc�der aux donn�es (je pense � ADO.NET) mais je travail avec Visual C++ 6.0 pour ce projet. Les deux technologies les plus d�taill�es sur le net et dans les livres pour acc�der aux donn�es avec les MFC son ODBC et ADO. Mais tous les exemples que j'ai �tud� comportent toujours des tables remplies de donn�es et moi je veux utiliser un table vide afin d'ins�rer un nouvel enregistrement. En fait je voudrais avoir plus de renseignements sur l'interface IADORecordBinding.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 30/11/2005, 13h44
  2. insertion d'enregistrement avec MySQL Administrator
    Par Lady_jade dans le forum Outils
    R�ponses: 1
    Dernier message: 08/09/2005, 16h04
  3. [MFC] ADO et operateur delete
    Par 0xYg3n3 dans le forum MFC
    R�ponses: 9
    Dernier message: 26/03/2005, 14h38
  4. [DW MX2004] formulaire d'insertion d'enregistrement
    Par jiraya_sama dans le forum Dreamweaver
    R�ponses: 2
    Dernier message: 30/12/2004, 17h54
  5. [MFC] ADO connection
    Par philippe V dans le forum MFC
    R�ponses: 3
    Dernier message: 10/06/2002, 07h36

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