Open_sql_parts

Internφ programovacφ jazyk

function Open_sql_parts(var curs : cursor; var select, from, where, order : string) : Boolean;

Parametry

curs prom∞nnß typu kurzor (neboli prom∞nn² kurzor) - viz podrobnosti
select prvnφ Φßst dotazu v jazyce SQL: obsah klauzule SELECT
from druhß Φßst dotazu v jazyce SQL: obsah klauzule FROM
where t°etφ Φßst dotazu v jazyce SQL: obsah klauzule WHERE
order Φtvrtß Φßst dotazu v jazyce SQL: obsah klauzule ORDER BY

Popis

Zastaralß funkce, nahrazenß obecn∞jÜφ funkcφ Open_sql_cursor.

Funkce otev°e prom∞nn² kurzor, kter² je odpov∞dφ na zadan² dotaz query v jazyce SQL. Dotaz se zadß po Φßstech - ka₧dß ve zvlßÜtnφm °et∞zci o dΘlce max. 255 znak∙. Funkce p°idß p°ed jednotlivΘ Φßsti slova "SELECT", "FROM", "WHERE" a "ORDER BY" a z°et∞zφ je za sebou. Tφm zφskß kompletnφ dotaz a pak pracuje stejn∞ jako funkce Open_sql_cursor. Parametry where a order mohou b²t prßzdnΘ °et∞zce.

Hodnota funkce

Funkce vracφ hodnotu FALSE, pokud se akci poda°ilo ·sp∞Ün∞ provΘst. V opaΦnΘm p°φpad∞ vracφ TRUE a povahu chyby lze zjistit volßnφm funkce Signalize. Nejb∞₧n∞jÜφ p°φΦinou chyby je nesprßvnß syntaxe dotazu nebo to, ₧e kurzor je ji₧ otev°en. DoporuΦujeme v₧dy testovat v²sledek tΘto funkce.

P°φklad:

    ...
    else if msg=MSG_INT_JE then begin 
{ do prom∞nn²ch start a stop je zadßn interval dat pro zobrazenφ zßznam∙ }
      dolnφ:='(datum>='+ start + ')';
      hornφ:='(datum<='+ stop + ')');
      podmφnka:='';
      if start<>'' then podmφnka:=dolnφ;
      if stop <>'' then
        if podmφnka='' then podmφnka:=hornφ
        else
        begin { vytvo°enφ podmφnky pro definici kurzoru}
          podmφnka:=dolni + 'AND' + hornφ;
        end;
      if podmφnka<>"" then
      begin {otev°enφ prom∞nnΘho kurzoru sql_curs}
        if not Open_sql_parts(sql_curs, "*", "tpenφze", podmφnka, "datum") then
        begin {otev°enφ pohledu do kurzoru sql_parts}
          Open_view("*pp°ehled", sql_curs, AUTO_CURSOR+NO_INSERT+NO_EDIT+NO_DELETE, 0, 0, id_p°ehled)
        end
        else info_box("Chyba", "èpatn∞ zadßno datum!");
      end
    end

Viz