61 lines
2.8 KiB
ObjectPascal
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.
|
|
|