forum.bitel.ru
http://forum.bitel.ru/

Нетривиальная задача
http://forum.bitel.ru/viewtopic.php?f=22&t=8098
Страница 1 из 1

Автор:  borisk [ 30 май 2013, 21:33 ]
Заголовок сообщения:  Нетривиальная задача

Добрый день!

Занимаюсь задачей переноса данных из старого биллинга в bg. Написал скрипт, все хорошо перенеслось, несколько месяцев обкатывалось в работе. Теперь подступает час X и надо делать окончательный перевод. Но проблема в том, что за эти месяцы в тестовой bg базе работали не только с договорами, но и с различными справочниками и конфигурациями модулей, приводя их к нужному, рабочему виду.
Вот и встал вопрос - можно ли как-то удалить из базы только договора (и связанные с ними сущности модулей)? Посмотрел ContractManager - увы, нет там функции удаления договора.

Автор:  Phricker [ 30 май 2013, 22:58 ]
Заголовок сообщения:  Re: Нетривиальная задача

Код:
public void execute( Setup setup, ConnectionSet connectionSet )
      throws Exception
   {
      print("Start");
      Connection con  = connectionSet.getConnection();
      //
      ContractRemover cr = new ContractRemover( setup, con, null );
      long timeStart = System.currentTimeMillis();
      // удаление ранее загруженных договоров
      String query = "SELECT id FROM contract WHERE gr & (1<<?) != 0";
      PreparedStatement ps  = con.prepareStatement( query );
      ps.setInt( 1, LOADED_GROUP );
      ResultSet rs = ps.executeQuery();
      int count = 0;
      while ( rs.next() )
      {
         cr.deleteContract( rs.getInt( 1 ) );
         ++count;            
      }
      ps.close();
      print( "Removed " + count + " contracts..." );
      long timeEnd = System.currentTimeMillis();
      print( "Process time: " + (timeEnd - timeStart)/1000 + " s." );
   }

Автор:  borisk [ 01 июн 2013, 10:37 ]
Заголовок сообщения:  Re: Нетривиальная задача

Спасибо!

Автор:  borisk [ 06 июл 2013, 10:09 ]
Заголовок сообщения:  Re: Нетривиальная задача

Извиняюсь, вот только сейчас дошел до реализации этой задачи. Полез в доки на классы и не могу найти там ContractRemover. Какое у него полное имя? И может дока по нему какая есть?

Автор:  Phricker [ 06 июл 2013, 13:26 ]
Заголовок сообщения:  Re: Нетривиальная задача

Вам как полностью код класса выложить? :D Он длинный 672 строки.
А в доке его нет.
отправил в лс

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/