GeneratorMode=gmInsert не срабатывает. Иногда

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Закрыто
Vlady
Сообщения: 8
Зарегистрирован: Пт 28 мар 2014 11:11

GeneratorMode=gmInsert не срабатывает. Иногда

Сообщение Vlady » Пт 13 фев 2015 04:50

qryMAID.insert;
всё ок.
потом отменяю вставку, опять - всё ок. но через несколько раз
ID не присваивается из генератора.
И соответственно не отрабатывает refresh из базы. Update тоже ругается что обновил 0 строк. Убивает случайность процесса и не понимание куда копать.
если подёргать туда-сюда, то может присвоится, а может и нет.
версия unidac - 6.02, D - XE7

Код: Выделить всё

object qryMAID: TUniQuery
    KeyFields = 'ID'
    SQLDelete.Strings = (
      'update SPR_MAID '
      'set usr=:USR, VIS=case when vis='#39'T'#39' then '#39'F'#39' else '#39'T'#39' end'
      'where ID = :ID')
    SQLRefresh.Strings = (
      'SELECT'
      '    m.ID,'
      '    m.NAME,'
      '    m.N,'
      '    m.TEL,'
      '    m.TEL_B,'
      '    m.TEL_SMS,'
      '    m.TEL_DOP,'
      '    m.INFO,'
      '    m.INFO_B,'
      '    m.USR,'
      '    m.D_USR,'
      '    m.TEL_IND,'
      '    m.KV_TYPE,'
      '    m.CITY,'
      '    m.EMAIL,'
      '    m.VLAD,'
      '    m.D_START,'
      '    m.GURU,'
      '    m.ADR,'
      '    m.TEL_HOME,'
      '    m.BD,'
      '    m.CMT,'
      '    m.VIS,'
      '    m.SEND_TYPE,'
      '    p.name vlad_name'
      'FROM'
      '    SPR_MAID m'
      'left join piple p on p.id=m.VLAD'
      'where M.ID = :ID')
    Connection = iBase
    Transaction = Tr
    UpdateTransaction = TrEdit
    SQL.Strings = (
      'SELECT'
      '    m.ID,'
      '    m.NAME,'
      '    m.N,'
      '    m.TEL,'
      '    m.TEL_B,'
      '    m.TEL_SMS,'
      '    m.TEL_DOP,'
      '    m.INFO,'
      '    m.INFO_B,'
      '    m.USR,'
      '    m.D_USR,'
      '    m.TEL_IND,'
      '    m.KV_TYPE,'
      '    m.CITY,'
      '    m.EMAIL,'
      '    m.VLAD,'
      '    m.D_START,'
      '    m.GURU,'
      '    m.ADR,'
      '    m.TEL_HOME,'
      '    m.BD,'
      '    m.CMT,'
      '    m.VIS,'
      '    m.SEND_TYPE'
      'FROM'
      '    SPR_MAID m'
      '--left join piple p on p.id=m.VLAD'
      'where m.KV_TYPE in (0, :KV_TYPE)'
      '  and m.CITY in (:City, :pCity)'
      '  and m.VIS = :V'
      '  &p'
      'order by m.name')
    MasterSource = dsVlad
    MasterFields = 'ID'
    DetailFields = 'VLAD'
    RefreshOptions = [roAfterInsert, roAfterUpdate]
    Options.RequiredFields = False
    Options.ReturnParams = True
    Options.RemoveOnRefresh = False
    Options.DefaultValues = True
    SpecificOptions.Strings = (
      'InterBase.KeyGenerator=GEN_SPR_MAID_ID'
      'InterBase.FetchAll=True'
      'InterBase.GeneratorMode=gmInsert')
    BeforeOpen = KV_TYPEBeforeOpen
    AfterOpen = qryMAIDAfterOpen
    AfterInsert = KV_TYPEAfterInsert
    BeforePost = UsrBeforePost
    Left = 395
    Top = 188
    ParamData = <
      item
        DataType = ftInteger
        Name = 'KV_TYPE'
        ParamType = ptInput
        Value = 0
      end
      item
        DataType = ftInteger
        Name = 'city'
        ParamType = ptInput
        Value = 1
      end
      item
        DataType = ftInteger
        Name = 'pCity'
        ParamType = ptInput
        Value = 1
      end
      item
        DataType = ftString
        Name = 'V'
        Value = 'T'
      end
      item
        DataType = ftInteger
        Name = 'ID'
        ParamType = ptInput
        Value = nil
      end>
    MacroData = <
      item
        Name = 'p'
      end>
  end
  object dsMAID: TDataSource
    DataSet = qryMAID
    Left = 395
    Top = 236
  end

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: GeneratorMode=gmInsert не срабатывает. Иногда

Сообщение ViktorV » Пт 13 фев 2015 10:10

Мы уже исправили эту ошибку, это исправление войдет в следующий билд UniDAC.

Vlady
Сообщения: 8
Зарегистрирован: Пт 28 мар 2014 11:11

Re: GeneratorMode=gmInsert не срабатывает. Иногда

Сообщение Vlady » Сб 14 фев 2015 14:26

Когда его ждать? или может быть есть микро-патч кода?
или до какой версии откатиться, что избежать этой проблемы?

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: GeneratorMode=gmInsert не срабатывает. Иногда

Сообщение ViktorV » Вт 17 фев 2015 08:09

Мы планируем выпустить новый билд UniDAC включающий исправление в следующем месяце. Вы можете откатиться до версии 6.0.1 для избежания возникновения ошибки.

Закрыто