예제 #1
0
        public static bool ImportDB(string pathToDbfFile, SqlConnection conn)
        {
            if (pathToDbfFile == string.Empty)
            {
                MessageBox.Show("Не вказаний путь до файлів ");
                return(false);
            }
            Coffee.Init("Імпорт бази даних ...");
            // Получение Dbf файлов
            string        error;
            List <string> dbfFiles;

            if (!GetFilesFromPath.GetNamesDbfFile(pathToDbfFile, out dbfFiles, out error))
            {
                MessageBox.Show("Помилка отримання dbf файлів.\nТехнічна інформація: " + error, "Помилка");
                Coffee.Term();
                return(false);
            }
            if (dbfFiles.Count == 0)
            {
                Coffee.Term();
                return(true);
            }
            //Подключение к OleDB серверу
            DBServer      oleDbServer      = new DBServer();
            StringBuilder connectionString = new StringBuilder(
                @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + SetupProgram.PathToDBFFile + ";Extended Properties=dBase III");

            if (!oleDbServer.ConnectToOleDB(connectionString.ToString(), out error))
            {
                MessageBox.Show("Помилка підключення до OleDB.\nТехнічна інформація: " + error, "Помилка");
                Coffee.Term();
                return(false);
            }
            //Импорт
            string          prefix    = "imp_"; //Добавим префикс для различия импортированных таблиц от стандартных
            ConvertDbfToSql convertDB = new ConvertDbfToSql(conn, oleDbServer.GetConnectionOleDb(), SetupProgram.IsNeedConvertCp1252To866, prefix);

            foreach (string file in dbfFiles)
            {
                Coffee.Refresh("Імпорт бази даних ..." + file + ".dbf");
                if (!convertDB.ConvertDBFToSQL(file, out error))
                {
                    MessageBox.Show("Помилка конвертації dbf файла " + file + ".\nТехнічна інформація: " + error, "Помилка");
                }
            }
            oleDbServer.DisconnectFromOleDB(out error);
            Coffee.Term();
            return(true);
        }