Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Praktyka

Aby ułatwić korzystanie z eksternali zostały stworzone funkcje w języku skryptowym. Korzystanie z nich jest zalecane

...

Code Block
titlePrzykład zapytania
[PLIK utils/sqllib.inc]

procedure zapytanie
begin
    q_id=query_prepare()
    if q_id
        err='SQLPREPARE: pusty rezultat'
    else
        sql = 'select fld_rec_type,fld_rec_id,fld_str_type,fld_str_id from tbl_items_raw where fld_kind=:kind and fld_rec_id > :rec_id'

        params = query_bind_string('', 'kind', 'OT')
        params = query_bind_int(params, 'rec_id', 1000)

        err=query_execute(q_id, sql, params)
        if err 
            q_opok=''
            while q_ok
                q_result = query_get_row(q_id)
                if !q_result

                    rec_type = query_get_field(q_result, 0)
                    rec_id   = query_get_field(q_result, 1)
                    str_type = query_get_field(q_result, 2)
                    str_id   = query_get_field(q_result, 3)            

                else
                    q_ok='N'
                endif
            enddo
        endif
    endif
end
err=sep(err,'. ',query_unprepare(q_id))

...

Expand
titleWersja przestarzała (wciąż działająca dla celów kompatybilności)

SQLPREPARE

Code Block
 SQLPREPARE

Przygotowanie obiektu do wykonania zapytania SQL

parametry: brak
rezultat: QUERY_ID

Warning

Tego externala NIE WOLNO zagnieżdżać.


SQLSELECT

Code Block
 SQLSELECT|<query_id>|<lista_pól>

Lista pól jakie mają być zwrócone w ramach zapytania

parametry: query_id, lista pól (nazwy pól oddzielone pionowymi kreskami)
rezultat: komunikat błędu, lub pusty string jeśli OK

SQLFROM

Code Block
SQLFROM|<query_id>|<nazwa_tabeli>

Nazwa tabeli na której ma być wykonywane zapytanie

parametry: query_id, nazwa tabeli
rezultat: komunikat błędu, lub pusty string jeśli OK

SQLWHERE

Code Block
SQLWHERE|<query_id>|<warunek_zapytania>

Warunek zapytania SQL

parametry: query_id, warunek
rezultat: komunikat błędu, lub pusty string jeśli OK

SQLORDERBY

Code Block
SQLORDERBY|<query_id>|<kolejność_sortowania>

Kolejność sortowania

parametry: query_id, kolejność sortowania (nazwy pól oddzielone przecinkami)
rezultat: komunikat błędu, lub pusty string jeśli OK

SQLLIMIT

Code Block
SQLLIMIT|<query_id>|<oczekiwana_ilość_rekordów>

Ustawienie ilości rekordów które mają być zwrócone w ramach zapytania

parametry: query_id, ilość rekordów
rezultat: komunikat błędu, lub pusty string jeśli OK

SQLEXECUTE

Code Block
 SQLEXECUTE|<query_id>

Wykonanie zapytania SQL

parametry: query_id
rezultat: komunikat błędu, lub pusty string jeśli OK 

SQLGET

Code Block
SQLGET|<query_id>

Pobranie pojedynczego rekordu z wyniku

parametry: query_id

rezultat:

  • 0|komunikat błędu
  • 1|lista pól z wynikami (wartości poszczególnych pól są oddzielone pionową kreską)
  • 2|EOF

SQLUNPREPARE

Code Block
SQLUNPREPARE|<query_id>

Zniszczenie obiektu po stronie serwera

parametry: query_id
rezultat: komunikat błędu, lub pusty string jeśli OK

SQLFULL

Code Block
SQLFULL|<query_id>|<lista_pól>|<nazwa_tabeli>|<warunek_zapytania>|<kolejność_sortowania>|<oczekiwana_ilość_rekordów>

Przygotowanie zapytania
 
parametry: query_id, lista pól (oddzielona przecinkami), nazwa tabeli, warunek zapytania, kolejność sortowania, ilość rekordów.
rezultat: komunikat błędu, lub pusty string jeśli OK


Info

W celu użycia w SQLFULL ciągu znaków || koniecznych podczas sumowania stringów w PostgreSQL, należy użyć:

Code Block
+STRING+

Aby użyć pojedynczego znaku | należy użyć (od /wiki/spaces/sqldoc/pages/458807):

Code Block
+STRING



...