2009-08-31 8 views
1

J'ai été invité à essayer d'annuler certaines modifications de la base de données en cas d'erreur. Avant même que je commence à essayer d'utiliser une TRANSACTION avec COMMIT ou ROLLBACK, quelqu'un pourrait-il me dire si je peux faire ce qui suit dans MS Access?Accès aux transactions dans le code avec validation et annulation

void Start() { 
    try { 
    AccessDatabaseOpen(); // Opens the access database 
    foreach (File in FileList) { 
     AccessTransactionStart(); // Starts the Transaction 
     AccessWriteSectionDataFromFile(); 
     AccessWriteEmployeeDataFromFile(); 
     AccessWriteSomethingElseFromFile(); 
    } // go to next File in FileList 
    AccessTransactionCommit(); 
    } catch { 
    AccessTransactionRollback(); 
    } finally { 
    AccessDatabaseClose(); 
    } 
} 

La syntaxe est merdique, mais vous devriez obtenir le point: Est-ce qu'une routine dans le code démarrer une transaction, appelez plusieurs autres routines, et soit valider ou annuler la chose ou est cette idée faire croire?

Merci, Joe

Répondre

1

peut une routine dans le code démarrer une transaction , appelez plusieurs autres routines, et soit commettre ou rollback la chose

Oui, c'est la idée de base de la gestion des transactions et votre exemple décrit serait une approche standard pour les traiter à partir du code. Les détails varient en fonction de la situation/des besoins particuliers et, bien sûr, du système de base de données utilisé (par exemple, des transactions imbriquées, la portée, la gestion de la concurrence, etc.).

Si une couche d'abstraction de base de données est impliquée, vérifiez les spécificités de cette couche, car elles sont souvent accompagnées de manipulations de transaction implicites qui peuvent souvent être configurées par certains paramètres/paramètres.

Questions connexes