Stosowanie znaków cudzysłowu w skrypcie

Istnieją różne sposoby korzystania z cudzysłowów w instrukcjach skryptów.

Wewnątrz instrukcji LOAD

W instrukcji LOAD należy używać następujących znaków jako cudzysłowów:

  Opis Symbol Pozycja kodu Przykład

Nazwy pól

podwójne cudzysłowy

" " 34 "ciąg znaków"
  nawiasy kwadratowe [ ] 91, 93 [ciąg znaków]
  akcenty ` ` 96 `ciąg znaków`

Literały ciągu

pojedyncze cudzysłowy

' '

39 'ciąg znaków'

W instrukcjach SELECT

W przypadku instrukcji SELECT interpretowanej przez sterownik ODBC może to wyglądać nieco inaczej. Zazwyczaj należy używać podwójnych cudzysłowów prostych (Alt + 0034) w przypadku nazw pól i tabel oraz pojedynczych cudzysłowów (Alt + 0039) w przypadku literałów, a unikać używania akcentów. Niektóre sterowniki ODBC akceptują jednak używanie akcentów jako cudzysłowów, a nawet preferują taki zapis. W takich przypadkach wygenerowane instrukcje SELECT mogą zawierać akcenty jako cudzysłowy.

Przykład cudzysłowów w programie Microsoft Access

Sterownik Microsoft Access ODBC Driver 3.4 (zawarty w aplikacji Microsoft Access 7.0) podczas analizowania instrukcji SELECT akceptuje następujące cudzysłowy:

Nazwy pól i tabel:

[ ]

" " ` `

Literały ciągu:

' '

W innych bazach danych mogą być stosowane inne konwencje.

Poza instrukcjami LOAD

Poza instrukcją LOAD we wszystkich miejscach, gdzie aplikacja QlikView oczekuje wyrażenia, podwójne cudzysłowy oznaczają odniesienie do zmiennej, a nie do pola. Każdy ciąg znaków ujęty w podwójne cudzysłowy jest interpretowany jako zmienna i używana jest wartość tak odczytanej zmiennej.

Pozakontekstowe odniesienia do pól i tabel

Niektóre funkcje skryptu w aplikacji odnoszą się do pól, które zostały utworzone wcześniej lub znajdują się w danych wyjściowych instrukcji LOAD, na przykład Exists() i Peek(). Takie odniesienia do pól noszą nazwę odniesień pozakontekstowych, w odróżnieniu od odniesień do pól źródłowych znajdujących się w kontekście, czyli w tabeli wejściowej instrukcji LOAD.

Pozakontekstowe odniesienia do pól i tabel należy traktować jako literały, a tym samym zapisywać je w pojedynczych cudzysłowach.

Różnica między nazwami a literałami

W zrozumieniu różnicy między nazwami a literałami pomoże porównanie następujących przykładów:

Example:  

'Sweden' as Country

Użycie takiego wyrażenia na liście pól instrukcji LOAD lub SELECT spowoduje załadowanie ciągu znaków „Sweden” jako wartości pola QlikView o nazwie „Country”.

Example:  

"land" as Country

Użycie takiego wyrażenia na liście pól instrukcji LOAD lub SELECT spowoduje załadowanie zawartości pola bazy danych lub kolumny tabeli o nazwie „land” jako wartości pola QlikView o nazwie „Country”. Oznacza to, że ciąg znaków land będzie traktowany jako odniesienie do pola.

Różnica między liczbami a literałami ciągu

W zrozumieniu różnicy między liczbami a literałami ciągu pomoże porównanie następujących przykładów.

Example:  

'12/31/96'

Taki ciąg znaków użyty w wyrażeniu zostanie w pierwszej kolejności zinterpretowany jako ciąg znaków „12/31/96”, a następnie jako data, o ile używany jest format daty „MM/DD/YY”. W takim przypadku wynik zostanie zapisany jako wartość podwójna mająca zarówno reprezentację liczbową, jak i tekstową.

Example:  

12/31/96

Taki ciąg znaków użyty w wyrażeniu zostanie zinterpretowany liczbowo, czyli jako 12 podzielone przez 31 podzielone przez 96.

Używanie znaków cudzysłowów w ciągu

Gdy ciąg zawiera znaki, które mogą być używane jako cudzysłowy, wówczas w przypadku cytowania takiego ciągu ważne jest wyraźne wskazanie początku i końca tego ciągu. Jeśli ciąg zostanie niepoprawnie zacytowany, wówczas skrypt nie zadziała poprawnie lub załaduje dane niepoprawnie.

Istnieją dwie metody cytowania ciągu, który zawiera znaki cudzysłowów.

Użycie konkretnego znaku cudzysłowu w celu zacytowania ciągu

Należy wybrać znak cudzysłowu, który nie jest używany w ciągu, i użyć go w celu zacytowania całego ciągu. Program QlikView użyje tego konkretnego znaku cudzysłowu w celu ustalenia początku i końca ciągu.

W celu zacytowania całego ciągu można użyć dowolnego z poniższych cudzysłowów:

  • Podwójne cudzysłowy " "
  • Nawiasy kwadratowe [ ]
  • Akcenty ` `
  • Pojedyncze cudzysłowy ' '

Example:  

[Tabela '1 "2"]

W celu zacytowania ciągu użyto nawiasów kwadratowych. Ciąg zostanie załadowany jako: Tabela '1 "2"

'ciąg znaków `Nazwa1` "Nazwa2'

W celu zacytowania ciągu użyto pojedynczych cudzysłowów. Ciąg zostanie załadowany jako: ciąg znaków `Nazwa1` "Nazwa2

Używanie znaków ucieczki

Znak ucieczki to dodatkowe wystąpienie cudzysłowu, który jest używany w celu cytowania ciągu. Taki znak musi zostać dodany obok każdego wystąpienia cudzysłowu, które pojawia się w ciągu. Gdy w ciągu używane są wszystkie znaki cudzysłowów, wówczas znaki ucieczki należy dodać obok tego samego typu cudzysłowu, który jest używany do cytowania ciągu. Znaki ucieczki mogą być również używane, gdy wymagane jest użycie znaku cudzysłowu, który jest już używany w ciągu.

Jako znaki ucieczki mogą być używane tylko następujące znaki:

  • Podwójne cudzysłowy " "
  • Nawiasy kwadratowe [ ]
  • Pojedyncze cudzysłowy ' '

Example:  

"Michał powiedział ""Jaki piękny dziś dzień""."

Jeśli w celu zacytowania tego ciągu użyjemy podwójnych cudzysłowów " ", wówczas musimy dodać dodatkowy podwójny cudzysłów obok każdego podwójnego cudzysłowu użytego w ciągu.

Ciąg zostanie załadowany jako Michał powiedział "Jaki piękny dziś dzień". Dzięki użyciu znaku ucieczki "" edytor skryptów QlikView otrzymuje informację o tym, które podwójne cudzysłowy są częścią ciągu, a które wskazują koniec ciągu. Pojedynczy cudzysłów ' użyty w skrócie It's nie potrzebuje znaku ucieczki, ponieważ nie jest używany do cytowania ciągu.

Example:  

'Michał powiedział: "Jaki piękny dziś dzień".'

Jeśli w celu zacytowania tego ciągu użyjemy pojedynczych cudzysłowów, wówczas musimy dodać dodatkowy pojedynczy cudzysłów obok każdego pojedynczego cudzysłowu użytego w ciągu.

Ciąg zostanie załadowany jako Michał powiedział "Jaki piękny dziś dzień". Podwójny cudzysłów " użyty do zacytowania tego, co powiedział Michał, nie wymaga zmiany znaczenia za pomocą znaku ucieczki, ponieważ nie jest używany do cytowania ciągu.

Example:  

[Michał powiedział [Jaki "piękny dziś dzień]].]

Nawiasy kwadratowe [ ] działają inaczej niż dwa pozostałe znaki cudzysłowu. Jeśli jako znaku ucieczki użyjemy nawiasów kwadratowych, wówczas dodatkowy nawias kwadratowy musimy dodać tylko obok zamykającego nawiasu kwadratowego ], a nie obok otwierającego nawiasu kwadratowego [.

Ciąg zostanie załadowany jako Michał powiedział [Jaki "piękny dziś dzień]. Zmiana znaczenia (poprzez użycie znaku ucieczki) nastąpiła tylko w przypadku zamykającego nawiasu kwadratowego ]. Użycie znaku ucieczki nie jest wymagane w przypadku pojedynczego cudzysłowu ' ani podwójnego cudzysłowu ", których użyto w ciągu.