Files
LOVATO-plugin/libSys/plgZmeny.pas
2026-04-07 18:23:56 +02:00

61 lines
2.8 KiB
ObjectPascal

{ *************************************************************************** }
{ }
{! SKRIPTY BY MĚLY BÝT PSÁNY TAK, ABY BYLY SPUSTITELNÉ VÍCEKRÁT - TZN. MĚLY !}
{! BY OBSAHOVAT RŮZNÉ TESTY EXISTENCE - NAPŘ.: !}
{ }
{ -existuje tabulka TabXXX ? }
{ IF OBJECT_ID('TabXXX','U')IS NOT NULL ... }
{ }
{ -existuje sloupec ABC v tabulce TabXXX ? }
{ IF COLUMNPROPERTY(OBJECT_ID('TabXXX','U'),'ABC','AllowsNull')IS NOT NULL ... }
{ }
{ -existuje default DF__TabXXX__ABC na sloupci ABC v tabulce TabXXX ? }
{ IF OBJECT_ID('DF__TabXXX__ABC','D')IS NOT NULL ... }
{ }
{ kde vezmu 2. parametr systémové funkce OBJECT_ID() - je to sysobjects.xtype }
{ - viz BOL }
{ }
{!!! POZOR - POUŽITÍ RETURN VE ZMĚNOVÝCH SKRIPTECH V plgZmeny.pas NENÍ BEZTRESTNÉ !!!}
{ -protože změnové skripty jsou obaleny knihovanmi BEGIN TRAN..COMMIT, tak }
{ by případný RETURN ponechal transakci neuzavřenou ! Proto bych měl }
{ použít tuto konstrukci: }
{ IF @@TRANCOUNT>0 ROLLBACK /* nebo COMMIT dle situace */ }
{ RETURN }
{ -pokud je kód spouštěn přes EXEC() nebo sp_executesql, tak tam naopak }
{ ROLLBACK (COMMIT) být NESMÍ, protože RETURN ukončuje jen daný EXEC() }
{ -úplně nejlepší je se RETURNu ve změnových skriptech úplně vyhnout }
{ }
{ *************************************************************************** }
unit plgZmeny;
interface
uses
plgType;
{ =========================================================================== }
const
GZmenoveSkripty : array[0..0] of TplgZmenovySkript =
(
// aby bylo mozno nemit zadny zmenovy skript,
// musi zustat prvni skript nedefinovan !!
(PlatiOd : $010020050210;
Skript : '';
)
//last
);
{ =========================================================================== }
implementation
{ ########################################################################### }
{ ########################################################################### }
end.