Bonjour a tous.
J'essaie de créer des relations en utilisant ADOX.
Je ne peux pas en SQL car is je prends comme Provider dans ma chaîne de connexion 'Mircosoft.Jet.OLEDB.4.0' alors je ne peux faire des requêtes sontenant le mot 'module' ou 'zone' pourquoi j'en sais rien.
si je prends le provider 'MSDASQL.1' alors là je ne peux pas dans ma requête SQL ajouter des 'ON UPDATE CASCADE' qui ne sont pas gérés.

J'essaie donc de créer ma relation en utlisant l'objet Key de ADOX seulement ca ne fait rien!!!!
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
 
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;
Voilà si quelqu'un a déjà fait et réussi je suis preneur.
J'ai même essayé de faire la requête en mode SQL et de rajouter le 'ON UPDATE CASCADE' après via une ADOXKey mais je crois que une fois l'objet crée on ne peut plus le modifier.