Je suis en stage et je n'ai à mon actif qu'une vingtaine d'heures de java et d'ada, soit presque rien.
Je suis chargé de fabriquer un outils capable de prendre une source de données (access, excel, ou xml)
et de générer automatiquement un script reproduisant le contenue de cette source dans une base SQL serveur.
(ça semble difficile considérant que je ne savais pas ce qu'était visual studio il y a trois semaine encore et que je ne connaissais
meme pas l'éxistence du cigle SQL, mais tant qu'il y a de la vie il y de l'éspoir)
Je me suis donc attelé à l'analyse du problème et j'ai trouvé une excellente source qui fait exactemement ce que je veux,
enfin qui devrait, mais elle contient plusieurs bugs, dont notament un qui me dépasse.
Le script généré à partir d'une base access est globalement le bon, mis a part la propriété "AllowDbNull" ce qui n'est quand meme pas rien. Pour récuperer ses propriétés, l'auteur de cette source utilise la méthode :
oOleDbDataReader = new System.Data.OleDb.OleDbCommand("SELECT * FROM [" + sCurrentTable + "]", oOleDbConnection).ExecuteReader(System.Data.CommandBehavior.KeyInfo);
oDataTableInfosTable = oOleDbDataReader.GetSchemaTable();
Cette methode renvoie une datatable "
oDataTableInfosTable" qui contient toutes les informations seulement celle-ci sont fausses. En effet la propriété "AllowDbNull" ne correspond pas au valeurs stoquées dans access. Je me suis donc dis que cette méthode ne marchait pas et j'ai refait la mème chose avec le provider odbc, qui malheuresement ne marche pas non plus.
Le résultat n'est pas le meme que pour le provider OleDb, la propriété étant bonne pour les colonne conténant des booléens. mais tt ce qui est chaine de caractère est automatiquement en null autorisé. Sachant que les données sur lesquels je travaille contienent 50 à 60 tables, il est difficile de refaire cette propriété à la main.
N'ayant apris que le C# du fait de la courte durée de mon stage j'aurais besoin d'une autre façon d'acceder à cette propriété dans ce language.
D'avance merci.
Ps: la source que j'utilise a été faite avec Visual Studio 2005 et j'utilise Visual Studio 2008, cela peut-il poser problème ??
Que pouvait me dire de la classe d'événement Prepare SQL ?????