У нас адресов больше 30 тысяч

Комментарии

Комментариев: 23

  • Avatar
    Kdesys

    Пишет:

    В приложении возникла ошибка:

    21.10.2011 15:46:22
    NHibernate.Exceptions.GenericADOException: could not update: [PEP.NHiber.Letter#4622122d-d25c-419e-aa4f-afe8ce5eca6f][SQL: UPDATE Letter SET FrmEconomicMember = ?, ToEconomicMember = ?, NameTo = ?, NameFrm = ?, LetterNote = ?, LetterEmail = ?, isEmail = ?, NeedNotification = ?, LetterNumber = ?, PostRegisterNumber = ?, DateCreated = ?, DatePublication = ?, DatePrinted = ?, DateDispatched = ?, DateConfirmation = ?, DateCanceled = ?, DateLastEdit = ?, AddressTo = ?, AddressFrom = ?, AddressNotify = ?, PostRegisterId = ?, DistributionId = ?, DeliveryIsCanceled = ? WHERE LetterId = ?] ---> System.Data.OleDb.OleDbException: Размер поля недостаточен, чтобы принять добавляемые данные. Попробуйте вставить меньшее количество данных.
    в System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
    в System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
    в System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
    в System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
    в System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
    в System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
    в NHibernate.JetDriver.JetDbCommand.ExecuteNonQuery()
    в NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd)
    в NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation expectation)
    в NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session)
    --- Конец трассировки внутреннего стека исключений ---
    в PEP.E.B(Boolean )
    в PEP.E.a(Object , EventArgs )
    в System.Windows.Forms.Control.OnClick(EventArgs e)
    в System.Windows.Forms.Button.OnClick(EventArgs e)
    в System.Windows.Forms.Button.WndProc(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    App: Печать конвертов! 2.4.0.5
    OS: Microsoft Windows NT 6.1.7601 Service Pack 1
    CLR: 2.0.50727.5448 

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    У нас тестовая база разработчиков на 13000 - постоянно не падает

    клиенты с десятками тысяч адресов у нас есть, но жалоб что "все время падает" от них - нет, нужно разбираться с вашим конкретным случаем

    нужно предметно смотреть/разговаривать - в случае возникновения ошибок нам пишут отчёты по ошибке (снимок экрана, журнал работы программы и т.п.), мы оперативно разбираемся и исправляем. в общем больше информации нужно

    ну и вообще говоря с такими большими базами возможно организационно стоит работать иначе

    например отдельные базы создавать для разных задач или разных групп пользователей

    экспорт/импорт между базами мы сделали

    сколько кстати пользователей работают у вас одновременно с базой?

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    опп. не успел второе сообщение прочитать, читаю

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    С базой работает один пользователь, делить базу возможности нет.

    Возможно какое-то из полей слишком длинное и не помещается в список рассылки? Тогда сообщите максимальные размеры полей. 

    Помогите пожалуйста. 

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    Всё понятно, воспроизвёл вашу ошибку на своём компьютере

    У какого то их добавляемых вами контрагентов какое то из полей "слишком длинное" для текущего варианта нашей программы

    сегодня выложу исправленную версию, в которой ошибки не будет

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    Вы лучше сейчас скажите какая длина максимальная для текущей версии?

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    Вот я сейчас анализирую

    вы же никакими другими средствами кроме программы с базой данных не работали?

    если нет, то остаётся такой вариант, что

    в письме наименование получателя - 250 символов

    но оно у вас наверно где то сложилось из

    "Наименование юр лица" (до 250 символов) + "Кому:" (до 250 символов)

    либо

    "Короткое наименование юр лица" (до 200 символов) + "Кому:" (до 250 символов)

    В общем несколько вариантов может быть

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    Собрал вариант программы, который обрезает поле до 250 символов

    и пишет в примечание "Поле "Кому" обрезано до 250 (максимально допустимой длины)"

    так что настроив соответствующим образом пользовательский фильтр, все письма с такой проблемой можно будет найти и поправить поле Кому руками

    Пробуйте (только перед обновлением не забудьте сделать резервную копию базы данных).

    если всё будет нормально, на следующей неделе обновим программу на сайте




    setup.exe
    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    пока просто нашли длинное наименование и сократили его руками.

    Сейчас возникла новая ошибка.

    При добавлении контрагентов в список рассылки:

    22.10.2011 12:38:04
    NHibernate.Exceptions.GenericADOException: could not update: [PEP.NHiber.Letter#444c2b6f-588e-4dba-99bf-4d3bf5149ba5][SQL: UPDATE Letter SET FrmEconomicMember = ?, ToEconomicMember = ?, NameTo = ?, NameFrm = ?, LetterNote = ?, LetterEmail = ?, isEmail = ?, NeedNotification = ?, LetterNumber = ?, PostRegisterNumber = ?, DateCreated = ?, DatePublication = ?, DatePrinted = ?, DateDispatched = ?, DateConfirmation = ?, DateCanceled = ?, DateLastEdit = ?, AddressTo = ?, AddressFrom = ?, AddressNotify = ?, PostRegisterId = ?, DistributionId = ?, DeliveryIsCanceled = ? WHERE LetterId = ?] ---> System.Data.OleDb.OleDbException: Превышено число блокировок файлов общего доступа. Увеличьте значение параметра реестра MaxLocksPerFile.
    в System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
    в System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
    в System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
    в System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
    в System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
    в System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
    в NHibernate.JetDriver.JetDbCommand.ExecuteNonQuery()
    в NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand cmd)
    в NHibernate.AdoNet.NonBatchingBatcher.AddToBatch(IExpectation expectation)
    в NHibernate.Persister.Entity.AbstractEntityPersister.Update(Object id, Object[] fields, Object[] oldFields, Object rowId, Boolean[] includeProperty, Int32 j, Object oldVersion, Object obj, SqlCommandInfo sql, ISessionImplementor session)
    --- Конец трассировки внутреннего стека исключений ---
    в PEP.E.B(Boolean )
    в PEP.E.a(Object , EventArgs )
    в System.Windows.Forms.Control.OnClick(EventArgs e)
    в System.Windows.Forms.Button.OnClick(EventArgs e)
    в System.Windows.Forms.Button.WndProc(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    App: Печать конвертов! 2.4.0.5
    OS: Microsoft Windows NT 6.1.7601 Service Pack 1
    CLR: 2.0.50727.5448

     

    Я у вас прям бета-тестер...

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    Какие то косяки системных компонентов уже пошли

    на вскидку - вы что, все 30000 контрагентов разом в рассылку пихаете?

    или какими порциями?

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    Сначала пытался запихнуть 35 тысяч, вылезла ошибка.

    Затем залил первые 20 тысяч - нормально. Вторые 15 тысяч не залились - та же ошибка.

    Так как первые 20 тысяч уже залиты, попытался залить 10 тысяч. Получилось. Затем залил оставшиеся 5 тысяч. Всё получилось.

     

    Пожалуйста оптимизируйте каким-либо образом программу. Ооочеееньь медленно работают следующие функции:

    • импорт из файла;
    • выбор (пометка) контрагентов;
    • добавление в список рассылки.
    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    ok, озадачился

    в последний раз меня так предметно спрашивали про выдачу на печать 400 конвертов разом: http://forum.russianit.ru/post5732.html

    мы стараемся делать то что нас просят, ну вы конечно всех превзошли..

    на таких объёмах просто уже в системные ограничения можно упереться.

    но проверю/посмотрю/разберусь всё равно

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    да? всего 400? :-)

    Нажал на рассылку и нажал кнопку "Печатать конверт". Сижу жду уже пол часа :-)

    Наверное оставлю, вечером отпишусь. 

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    Все контрагенты нормально добавились в рассылку. Не знаю сколько времени это заняло, но ошибок не было.

    Для справки, система: Intel i5 2410M, 4Gb RAM

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    Нашли две ошибки: 

    1. В рассылке неправильно делается сортировка по номеру.

    Если нажать на столбец с номером, записи сортируются следующим образом:

    1

    10

    100

    1000 и т.д. 

     

    2. На шаблоне конверта C5 наименования контрагентов прописываются не полностью (теряются слова).

    Сделайте что-бы помещалось всё - это очень важно.

    Можно даже с переносом по буквам.

    Например, 

    Кому: СУПЕРДЛИННОЕНАЗВАНИЕОРГАН

    ИЗАЦИИ

     

    3. Можно ли редактировать шаблоны конвертов? 

    Например, мы бы хотели перенести логотип в правый верхний угол и убрать надпись "место марки".

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    1. по поводу сортировки - не очень понимаю как вы хотите чтобы они сортировались. на мой взгляд тот порядок что вы написали - правильный. возможно вы имели ввиду что номера сортируются как строки и 10 получается раньше чем 2. это действительно так.

    2. в стандартных бланках сделано всё просто - буквы должны быть не меньше чем буквы надписей штампа (Куда..) т.е. уменьшать их до бесконечности неправильно. место куда вбивать - тоже ограничено. т.е. мы стараемся укладываться в естественные рамки, если вас они не устраивают - действительно можно завести пользовательские бланки конвертов (ниже). касаемо переноса букв - такая возможность есть. откройте пункт меню "Сервис | Настройки" и на первой же вкладке вы найдёте перенос по словам или по символам.

    3. Для того чтобы завести свой "пользовательский" конверт - перейдите в раздел "Шаблоны" и импортируйте какой нибудь стандартный бланк (они поставляются вместе с программой c расширениtv lbk) и исправьте его. Логотип можно менять прямо на "фоновом рисунке" шаблона, либо уже в окне печати конверта по клавише "конверт". Но помните что пользовательские конверты отъедают больше памяти при массовой печати! (приходится печатать меньшими порциями)

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    1. Именно это я и имел ввиду, поправьте пожалуйста и выложите ссылку на исправленную версию здесь.

    2 и 3 спасибо, будем пробовать. 

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    первое не так просто сделать, не обещаю быстро исправить (подумаю как быть на этой неделе)

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    Не очень понимаю сложности (в плане программирования).

    Надеюсь, что исправите как можно скорее.

    Очень неудобно работать с большими объемами данных.

    Или хотя бы добавьте колонку индекс получателя, чтобы можно было сортировать по нему. 

    Спасибо. 

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    есть новости?

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    Пока никакого прогресса

    дело в том что в версии 2.4 мы добавили сложноустроенную нумерацию сообщений

    и очевидно что для "правильной" сортировки изменения нужно вносить в том числе в неё

    конкретно в вашем случае "простых номеров" помогло бы заполнение номера нулями (или пробелами) слева до определённой длинны

    Но это нужно менять для существующей уже базы скриптом обновления очевидно (могу скрипт написать)

    Кроме того, неочевидно как нумерация вяжется вообще с рассылками и должна ли учитываться в общей последовательности входящих/исходящих номеров

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Kdesys

    как продвигается оптимизация по скорости работы программы и нумерации?

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Виктор Вагин

    работаем над новой версией, на этой неделе хотим выпустить

    0
    Действия с комментариями Постоянная ссылка

Войдите в службу, чтобы оставить комментарий.