J'ai énorme problème:C# + BDE + problème DBF
J'ai beaucoup de .dbf (~ 50000) et je dois les importer dans la base de données Oracle. Je ouvrir conncection comme ceci:
OleDbConnection oConn = new OleDbConnection();
OleDbCommand oCmd = new OleDbCommand();
oConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + directory + ";Extended Properties=dBASE IV;User ID=Admin;Password=";
oCmd.Connection = oConn;
oCmd.CommandText = @"SELECT * FROM " + tablename;
try
{
oConn.Open();
resultTable.Load(oCmd.ExecuteReader());
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
oConn.Close();
oCmd.Dispose();
oConn.Dispose();
Je les lis dans la boucle, puis insérez dans Oracle. Tout va bien. MAIS: Il y a environ 1000 fichiers que je ne peux pas ouvrir. Ils soulèvent l'exception "pas un tableau". Donc, je google, et installer Borland Database Engine. Maintenant tout va bien ... mais non. Maintenant, quand je lis des fichiers, sur les exceptions d'exception de fichier 1024: "Ressource système dépassée". Mais j'ai beaucoup de ressources gratuites. Lorsque je supprime BDE, tout va bien, pas d'erreur "ressources système dépassées", mais je ne peux pas lire tous les fichiers.
Aide s'il vous plaît. PS: Essayé en utilisant ODBC mais rien ne change.
"Le problème persiste même si j'utilise une connexion tout le temps", Désolé je ne peux pas être utile, le seul autre conseil que j'ai est de rechercher des défauts de fuite de mémoire avec la version du BDE que vous utilisez, ou exécuté avec un profileur de mémoire/ressource. Bonne chance pour résoudre ça. –
Comment exactement utilisez-vous le BDE dans ce processus? Basé sur votre code, vous allez directement à travers les pilotes Microsoft, de sorte que vous n'auriez même jamais accéder au BDE. Comment savez-vous que les fichiers DBF qui se plaignent d'être invalides sont réellement valides? Pouvez-vous les faire ouvrir correctement dans un autre programme? –
Oui. Je peux les ouvrir dans DBF Viewer 2000 sans problèmes. Pour autant que je sache après l'installation de BDE, il remplace les pilotes Microsoft. –