Тема: Требуется узнать на какой номенклатуре застопорился модуль!
Здравствуйте! Пожалуйста, дайте совет!
Есть самописный модуль(программа) на VB, который производит обмен данными между ТКС и господипрости базами FOX. Один из компонентов модуля производит обновление контрольных сумм, в нем идёт обращение к номенклатуре чтобы обновить значение параметра контрольной суммы. Но возникает ошибка (см. картинку).
Номенклатур тонны...узнать на какой номенклатуре произошёл затык затруднительно!
Запускать голый SQL код (конкретно на котором затык) в SSMS опасно, боюсь заруинить базы.
Есть ли какая-то возможность или снять системный триггер\процедуру о запрете на редактирование таких номенклатур, или может узнать на какой он останавливается, чтоб руками изменить что-то?
прикладываю часть кода:
Form1.Label1.Caption = ""
Form1.Label2.Caption = "Обновление контрольных сумм"
Form1.Label3.Caption = ""
Form1.Label1.Refresh
TextSQL = "INSERT INTO NMK_PAR (NMK_ID, PAR_ID, NMK_PAR_VALUE, NMK_ATTACH) " + _
"SELECT N.NMK_ID, 1606, HASHBYTES('SHA1', '0'), N.NMK_CLASSIF_TYPE_ID " + _
"FROM NMK as N " + _
"WHERE NOT EXISTS(SELECT * FROM NMK_PAR AS NP WHERE (NP.NMK_ID = N.NMK_ID AND PAR_ID = 1606)) " + _
" AND (N.NMK_CLASSIF_TYPE_ID IN (5, 1060, 19, 1040, 1035, 26, 1061, 17) or (N.NMK_CLASSIF_TYPE_ID IN (1036, 1037, 1058) and N.NMK_NOTUSED = 'F'))"
CnSql.Execute TextSQL
TextSQL = "UPDATE VAL " + _
"SET VAL.NMK_PAR_VALUE = (SELECT HASHBYTES( 'SHA1', (CAST(ISNULL(n.NMK_ID, 0) as varchar) + CAST(ISNULL(n.NMK_CLASSIF_TYPE_ID, 0) as varchar) + CAST(ISNULL(n.NMK_NOTE, 0) as varchar) + " + _
" CAST(ISNULL(n.NMK_NAME, 0) as varchar) + CAST(ISNULL(n.CREATE_DATE, 0) as varchar) + CAST(ISNULL(n.CHANGE_DATE, 0) as varchar) + " + _
" CAST(ISNULL(n.NMK_CLASSIF_ID, 0) as varchar) + CAST(ISNULL(KodVMZ, 0) as varchar) + CAST(ISNULL(Pokupn, 0) as varchar))) as HASHSUM " + _
" FROM NMK AS n " + _
" LEFT OUTER JOIN ( " + _
" SELECT NMK.NMK_ID, NMK_PAR.NMK_PAR_VALUE as Pokupn " + _
" From PAR " + _
" RIGHT OUTER JOIN NMK_PAR ON PAR.PAR_ID = NMK_PAR.PAR_ID " + _
" RIGHT OUTER JOIN NMK ON NMK_PAR.NMK_ID = NMK.NMK_ID " + _
" WHERE (PAR.PAR_CODE = 'GT_POKUPN') " + _
" ) AS ParPokupn ON n.NMK_ID = ParPokupn.NMK_ID " + _
" LEFT OUTER JOIN ( " + _
" SELECT NMK_ID, NMK_PAR_VALUE as KodVMZ " + _
" From NMK_PAR " + _
" Where (PAR_ID = 1253) " + _
" ) ParKodVMZ ON n.NMK_ID = ParKodVMZ.NMK_ID " + _
" WHERE n.NMK_ID = val.NMK_ID " + _
" and ((n.NMK_CLASSIF_TYPE_ID IN (5, 1060, 19, 1040, 1035, 26, 1061, 17) or (n.NMK_CLASSIF_TYPE_ID IN (1036, 1037, 1058) and n.NMK_NOTUSED = 'F'))))"
TextSQL = TextSQL + "FROM NMK_PAR as VAL " + _
"WHERE VAL.PAR_ID = 1606 " + _
" AND VAL.NMK_PAR_VALUE <> (SELECT HASHBYTES( 'SHA1', (CAST(ISNULL(n.NMK_ID, 0) as varchar) + CAST(ISNULL(n.NMK_CLASSIF_TYPE_ID, 0) as varchar) + CAST(ISNULL(n.NMK_NOTE, 0) as varchar) + " + _
" CAST(ISNULL(n.NMK_NAME, 0) as varchar) + CAST(ISNULL(n.CREATE_DATE, 0) as varchar) + CAST(ISNULL(n.CHANGE_DATE, 0) as varchar) + " + _
" CAST(ISNULL(n.NMK_CLASSIF_ID, 0) as varchar) + CAST(ISNULL(KodVMZ, 0) as varchar) + CAST(ISNULL(Pokupn, 0) as varchar))) as HASHSUM " + _
" FROM NMK AS n " + _
" LEFT OUTER JOIN ( " + _
" SELECT NMK.NMK_ID, NMK_PAR.NMK_PAR_VALUE as Pokupn " + _
" From PAR " + _
" RIGHT OUTER JOIN NMK_PAR ON PAR.PAR_ID = NMK_PAR.PAR_ID " + _
" RIGHT OUTER JOIN NMK ON NMK_PAR.NMK_ID = NMK.NMK_ID " + _
" WHERE (PAR.PAR_CODE = 'GT_POKUPN') " + _
" ) AS ParPokupn ON n.NMK_ID = ParPokupn.NMK_ID " + _
" LEFT OUTER JOIN ( " + _
" SELECT NMK_ID, NMK_PAR_VALUE as KodVMZ " + _
" From NMK_PAR " + _
" Where (PAR_ID = 1253) " + _
" ) ParKodVMZ ON n.NMK_ID = ParKodVMZ.NMK_ID " + _
" WHERE n.NMK_ID = val.NMK_ID " + _
" and ((n.NMK_CLASSIF_TYPE_ID IN (5, 1060, 19, 1040, 1035, 26, 1061, 17) or (n.NMK_CLASSIF_TYPE_ID IN (1036, 1037, 1058) and n.NMK_NOTUSED = 'F'))))"
CnSql.Execute TextSQL
End If