J'ai une base de données Access dont j'aimerais extraire le code source afin de pouvoir la placer dans le contrôle Source.Extraction de code source à partir d'une base de données MS Access
J'ai essayé d'extraire les données à l'aide des assemblys PIA (Primary Interop Assemblies), mais je rencontre des problèmes car il ne récupère pas tous les modules et formulaires.
Il y a 140 formulaires et modules dans le code (ne demandez pas, c'est un système hérité dont j'ai hérité) mais le code PIA n'en prend que 91.
Voici le code que j'utilise.
using System;
using Microsoft.Office.Interop.Access;
namespace GetAccesSourceFiles
{
class Program
{
static void Main(string[] args)
{
ApplicationClass appClass = new ApplicationClass();
try
{
appClass.OpenCurrentDatabase("C:\\svn\\projects\\db.mdb",false,"");
Console.WriteLine(appClass.Version);
Console.WriteLine(appClass.Modules.Count.ToString());
Console.WriteLine(appClass.Modules.Parent.ToString());
int NumOfLines = 0;
for (int i = 0; i < appClass.Modules.Count; i++)
{
Console.WriteLine(appClass.Modules[i].Name + " : " + appClass.Modules[i].CountOfLines);
NumOfLines += appClass.Modules[i].CountOfLines;
}
Console.WriteLine("Number of Lines : " + NumOfLines);
Console.ReadKey();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message + "\r\n" +ex.StackTrace);
}
finally
{
appClass.CloseCurrentDatabase();
appClass.Quit(AcQuitOption.acQuitSaveNone);
}
}
}
}
Des suggestions sur ce que ce code pourrait manquer? ou sur un produit/outil là-bas qui va le faire pour moi?
Modifier: Je devrais également mentionner que cela doit script sur le disque, l'intégration avec VSS n'est pas une option car notre système source est SVN. Merci.
Voir aussi http://stackoverflow.com/questions/247292/working-with-multiple-programmers-on-ms-access – Yarik