|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > IVEDI SQL Kullanıcı Kılavuzu > 10. Önişlemci > 10.1 Koşullu derleme |
| Yönerge | Ne yapar |
|---|---|
#IF <koşul> | Koşul doğruysa dalı açar (koşul dili aşağıda) |
#IFDEF <AD> | Makro tanımlıysa dalı açar |
#IFNDEF <AD> | Makro tanımlı değilse dalı açar |
#ELIF <koşul>, #ELSEIF <koşul> | Aynı işleyici: önceki dallar alınmadıysa koşula bakar |
#ELSE, #ENDIF | Kalan dal; bloğun sonu |
Zincir kuralları C önişlemcisininkiyle aynıdır: bir zincirde yalnız bir dal alınır; alınmış bir daldan
sonraki #ELIF'in koşulu değerlendirilmez bile. Kapalı bir dış bloğun içindeki hiçbir koşul
değerlendirilmez ve içindeki #DEFINE, #INCLUDE, #MODE gibi yönergeler
çalışmaz. Çözümlenemeyen bir koşul hata verir ve blok kapalı sayılır. Fazla #ENDIF hatadır.
İç içe en fazla 64 düzey yazılabilir.
koşul := koşul (AND | &&) koşul
| koşul (OR | ||) koşul
| (NOT | !) koşul
| ( koşul )
| terim [ (= | == | <> | != | < | <= | > | >=) terim ]
terim := tamsayı | 'metin' | "metin" | DEFINED(<ad>) | ENV(<ad>) | <gömülü simge> | <makro adı>AND, OR'dan sıkı bağlar: a OR b AND c = a OR (b AND c)."0" dışında
bir şey olması.0 sayılır; değersiz tanımlanmış bir makro 1. Tanımlılığı
ayırt etmek için DEFINED(ad) ya da #IFDEF kullanılır.| Gömülü simge | Değeri |
|---|---|
ERRORLEVEL | Son #SHELL* yönergesinin çıkış kodu |
PLATFORM | 'WINDOWS' ya da 'LINUX' |
WINDOWS, LINUX | Platform için 1 / 0 (#IF WINDOWS kısa yazımı) |
DEBUG | Hata ayıklama derlemesinde 1, değilse 0 |
DATABASE | Geçerli veritabanının adı (yoksa boş) |
STORAGE_ENGINE | Geçerli veritabanının depolama motoru adı (yoksa boş) |
USER | Bağlantının kullanıcı adı (yoksa boş) |
DEFINED(x) | x makrosu tanımlıysa 1 |
ENV(x) | x ortam değişkeninin değeri (yoksa boş) |
#define SURUM 5
#define ETIKET "deneme"
#if SURUM >= 5 AND ETIKET = 'deneme'
--// bu dal alınır
#elif DEFINED(SURUM)
--// alınmış daldan sonra buraya bakılmaz
#else
--// ...
#endif
#if PLATFORM = 'WINDOWS' OR ENV('PATH') <> ''
--// ...
#endif
#shell cmd /c exit 3
#if ERRORLEVEL > 0
--// komut hata verdi
#endif