На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела C/C++: Базы данных
Модераторы: B.V.
  
    > ODBC для DBF

      Кто мне сможет объяснить следующую проблему:
      Я загружаю( записываю) через ODBC базу данных .dbf на 7936 записей по 50 колонок с
      использованием CDatabase и CRecordset. Однако запись и загрузка данных длятся
      невероятно долго, в то время как DBFViewer грузит туже БД мухой. Частично загрузку
      уудалось ускорить с использование DoFieldExchange ( в 3 раза быстрее) однако с запи-
      сью проблему решить не удалось.
      И еще один глюк. При установке в ODBC Manager под Win98 SE для DBF флажка Exclusive
      время загрузки сразу увеличилось раз в 20 ( судя по постоянно горящему LED HDD драй-
      вер каждую запись считывает непосредственно с дика, хотя до этого он считывал файл
      блоками через буфер). После снятия флажка ничего не изменилось :(.
      Где можно найти описание поддерживаемых ОВИС SQL функций, т. к. вроде они не сов-
      падабт с стандартом SQL_92.
      Буду блогадарен за помощь.
        Разница в быстродействии возникает по той простой причине, что всякие вьюеры, как правило, читают dbf напрямую, без всяких ODBC (формат dbf файла несложен, поэтому достаточно просто написать поддержку). Что касается повышения быстродействия с использованием MFC классов... все эти классы CRecordset CDatabase имеют жуткие ограничения, единственное их преимущество - удобство использования. Тут два пути: либо ты наследуешь класс от CRecordset и дописываешь нехватающую функциональность, либо пишешь все через API. А так, почитай MSDN, смотри в методе CRecordset::Open() параметр dwOptions, метод SetRowsetSize() и раздел Recordset: Fetching Records in Bulk (ODBC)
          Если горит LEG HDD то драйвер ODBC все операции с базой пишет в Log-файл
          (Обычно c:\SQL.log).Попробуй в ODBC Maneger установить Tracing... When to trace в положение Start...
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0183 ]   [ 15 queries used ]   [ Generated: 18.05.24, 14:12 GMT ]