всё ок.
потом отменяю вставку, опять - всё ок. но через несколько раз
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