begin process at 2012 05 28 05:20:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Base de données

 > 

ADO et transformation de code VB en C++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ADO et transformation de code VB en C++

mardi 28 juin 2005 à 16:10:23 | ADO et transformation de code VB en C++

___Jp___

Membre Club
Bonjour à tous,

je bosse sur une petit programme de bases de données via ADO en c++.
Pour cela, je dois détecter si certains colonnes d'une table sont auto-incrementielles.
J'ai bien trouvé une source en VB mais, ne matrisant pas bien ce langage, j'ai du mal à la convertir en C++
Voici cette source :

    Dim rs As ADODB.Recordset
    Dim fld As ADODB.Field
    Dim colFields As ADODB.Fields

    Set rs = New ADODB.Recordset

    With rs
        .Open "SELECT TOP 1 * FROM " & strTableName, cnx
        Set colFields = .Fields

    For Each fld In colFields

    Set oField = New clField
    IsAutoIncrement = fld.Properties("ISAUTOINCREMENT").Value

    IsAutoIncrement contient vrai/faux selon que le champ est autonumber ou pas. Et ca fonctionne aussi bien pour une table en         Ms-Access que pour une table en Sql-Server
source : http://vbfrance.com/forum.v2.aspx?id=61543
    Merci Phil au passage.

J'ai donc commencé comme cela :
 g un objet que l'on va appelé CRst qui encapsule le RecordSetPtr de ADO mais ce dernier reste accessible à coup de ->
il reprend la méthode Open, et est inialisé avec un Connection de ADO.

voici le code :
    CRst tmpRst (conn);

    ADODB::Field15Ptr tmpFieldAutoInc;
     tmpFieldAutoInc.CreateInstance(__uuidof(ADODBField15));
    
    ADODB::FieldsPtr tmpFieldsAutoInc;
    tmpFieldsAutoInc.CreateInstance(__uuidof(ADODBFields));

    bool isautoinc = false;
                               
    tmpRst .Open("SELECT TOP 1 * FROM " + tmpDBTable.m_strName);
    tmpFieldsAutoInc = tmpRcdS.m_pRecordset->Fields;
                               
     for (int i=0; i <= tmpFieldsAutoInc->GetCount(); i++)
     {
          tmpFieldAutoInc = tmpFieldsAutoInc->GetItem(i);
          isautoinc =  tmpFieldAutoInc->Properties("ISAUTOINCREMENT")->Value;
      }

mais ça ne marche pas

tout fonctionne jusqu'à l'affectation de "isautoinc" : la propriété "ISAUTOINCREMENT" semble manquée ou avoir changer de forme. Dans la documentation que j'ai, je n'ai aucune information au sujet d'un changement.


Merci de votre aide et de tous vos conseils potentiels

Jp


mercredi 29 juin 2005 à 16:07:09 | Re : ADO et transformation de code VB en C++

___Jp___

Membre Club
Re bonjour,

bon, je n'ai pas de réponse mais ce n'est pas grave.

Cette solution ne fonctionne qu'avec le pilote OLEDB Jet. Hors j'utilise le pilote SQLOLEDB pour SQL Server.

Cette solution ne fonctionne donc pas dans mon cas.
Je vous laisse la transformer en C++, cela peut être bien utile je pense, la plupart des sources relatives à ADO sont en VB :(

Voila, sinon pour ce qui sont intéressé par une autre solution, je conseille de regarder du coté des tables systèmes de leur base de données.
Ceux qui sont intéressés peuvent continuer la discussion ici, je les aiderais au besoin et selon mes compétences

voila

@ ++

Jp



Cette discussion est classée dans : ado, adodb, isautoincrement, tmpfieldautoinc, tmpfieldsautoinc


Répondre à ce message

Sujets en rapport avec ce message

Autoincrement et ADO [ par LuckyNut ] Bonjour a tous,Je cherche un spécialiste d'ADO pour m'éclairer sur mon problème :J'ai une base de données "user" avec un champ "ID" numéric etde type pb ADO [ par mamag ] Bonjour,j'ai utilisé la librairie ADOLIB.h pour accéder à une base de données ACCESS. Je me suis basée sur des exemples que j'ai trouvé sur internet, ADO [ par mamag ] Bonjour,je suis en train de développer une DLL qui accede à une base de données et effectue des requêtes.j'ai réalisé déjà qqs foncions qui font des r ADO Select [ par mamag ] Bonjour, j'ai réalisée une DLL en VC++ qui utilise l'encapsulation ADO. ( je fais des requetes SQL sur une base ACCESS). j'ai donc utilisé le ADOSelec ADo sopus visual C++ [ par rottboss ] Je ne m y connais pas du tout et je veux me connecter a une table access via visual c++.Je cherche toutes les infos qui peuvent m aider Merci Probleme avec ADO [ par ekinox17 ] Voila ja fais en ce moment un programme en vc++ qui dialogue avec une base de donnée acces via ADO J'utilise un RecordBinding Et justement c là le pro probleme avec ADO [ par Tytoo25 ] bonjour à tous !Voila j'essais de réaliser mon 1er programme avec une base de données, en langage C++, avec Visual 6.0.J'ai trouvé un exemple qui me d Ado et excel [ par raboin ] Alors a force de parcourir le net j'ai vu qu'il y avait 3 facons de faire pour communiquer avec un fichier excel. Ce que je veux faire c'est juste pou DataGrid et MFC [ par torNADoS ] Salut,je travaille avec ODBC et j ai ajouté une grille DataGrid, ce que je veux c'est que quand j'execute une requete SQL de filtrage je voudrais  que OBDC/ADO [ par moumouteb ] Bonjours, Je débute dans les bases de donnés et je voudrais savoir quelles sont les avatages et les inconvénients des interface ADO et OBDC. Merci.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,234 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales