none
ADOX et Key ou ADOCommand RRS feed

  • Question

  • Bonjour,$

    je ne sais pas si je suis au bon endroit mais bon.

    Alors j'utilise ADOX pour créer ma base de données sous ACCESS (.mdb). J'arrive à créer les tables, les champs et les index seulement impossible de créer des relations par l'objet Key.

    [code]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Prov = PROVIDER_SOURCE + mNomFichier;
    Catalog->set_ActiveConnection(Prov);
    Catalog->Connect();
    OleVariant NomTableDn = "TOTO";
    TADOXKey *Key = new TADOXKey(NULL);
    OleVariant NomRelation = "Relation1";
    Key->Name = NomRelation;
    Key->Type = KeyTypeEnum::adKeyForeign;
    OleVariant NomTableUp = "TUTU";
    Key->RelatedTable = NomTableUp;
    OleVariant NomChpDn = "Num_TOTO";
    OleVariant NomChpUp = "ID";
    	Key->Columns->Append(NomChpDn,Adox_tlb::DataTypeEnum::adInteger,0);
    Key->Columns->get_Item(NomChpDn)->RelatedColumn = NomChpUp;
    if(Casc_Add) Key->UpdateRule = RuleEnum::adRICascade;
    if(Casc_Del) Key->DeleteRule = RuleEnum::adRICascade;
    KeyVar = (IDispatch *) Key->GetDefaultInterface();
    	Catalog->Tables->get_Item(NomTableDn)->Keys->Append(KeyVar,Key->Type,NomChpDn,NomTableUp,NomChpUp);
    Catalog->Disconnect();
    delete Key;

    [/code]

    Je n'ai aucune erreur  mais aucunes relations ne se créent.

    Alors j'ai aussi essayé en SQL avec ADO, mais si comme provider dans la chaîne de connexion je mets "Microsoft.jet.OLEDb.4.0" alors je ne peux pas exécuter une requête contenant un nom de champ ou de table qui vaut Module ou Zone.

    Si je mets "MSDASQL.1" alors je peux créer les tables avec Module ou Zone mais je ne peut pas créer des relations avec l'option "ON UPDATE CASCADE".

    Je suis donc bloqué. J'ai trois solutions  possible mais aucune ne fonctionne. (Ou du moins je n'y arrive pas).

    Je précise je en suis pas ne Visual C++ mais en C++ builder mais je cherche les réponses ou je peux les trouver!!

    Je suis preneur d'une solution qui fonctionne!!!!!

    Merci d'avance

    • Déplacé Ciprian Duduiala mercredi 7 décembre 2011 07:58 hors contexte (Origine :Visual Basic 6)
    mercredi 30 novembre 2011 13:31

Réponses

Toutes les réponses