Tema: Re: q: MySQL ataskaitos
Autorius: Laimis
Data: 2016-04-27 19:36:12
Trolis rašė:

> Pvz ODBC nepalaikė parametrų, todėl pasijungiau per JDBC.
>> Parametrizuotas užklausas Libre palaiko, kaip ir prepared statement
>> (poziciniai parametrai), tačiau čia gali kilti problemų ir tekti
>> aiškintis, kaip tai transformuojasi/nusibeldžia iki backend'o ir to,
>> ką pats backend'as palaiko. Yra juk dar direct SQL (pass-through MS
>> Access'o terminais) komandos/užklaudos, kai gali pasinaudoti backend'o
>> navarotais (ne SQL, nestandartinės funkcijos, komandos, procedūros).
>
> Kaip tuo pasinaudoti?


Neturiu po ranka MySQL, tačiau SQLite'e ir ODBC, tai veikia. Reikia 
LibreBase bazės data source'ui (kažkur prie advanced setting'ų; 
susirasi) nustatyti „Replace named parameters with ?“ ir perkrauti 
Libre. Tuomet vardiniai parametrai transformuojami į pozicinius, kuriuos 
palaiko SQLite (ir kitos DB) ir tokios (pavyzdžiui) LibreBase užklausos 
puikiai suveikia, tikrinau:

SELECT * FROM "test" WHERE "fname" LIKE :fname || '%' AND "lname" LIKE 
:lname || '%'

Prepared statement'ai (užklausų parametrizavimas), tai jau scripting'as:
https://wiki.openoffice.org/wiki/Documentation/DevGuide/Database/Using_Prepared_Statements
http://www.openoffice.org/api/docs/common/ref/com/sun/star/sdbc/PreparedStatement.html

> Join,

Na, SQLite'o ODBC Join'as, veikia:
SELECT * FROM t1 LEFT JOIN t2 ON t1.id = t2.id


> DATE_ADD(CURDATE(), INTERVAL -3 DAY); (interval neveikia)

Neveikia, tai kaip? Nes tai MySQL'o funkcija, kuri neveikia jau turbūt 
anam gale, o ne Libre. O jei nepavyksta net paleisti tokios funkcijos, 
tai kas vyksta?
Šiaip analogiška SQLite funkcija veikia:
SELECT date('now','-3 day') -> 2016-04-24


> Reiktų nesudėtingo parametrizavimo, pvz pasirenkini datą ar Jų
> diapazoną, klasifikatorių ir duoda eventų sąrašą.
> Su LibreOffice Base bandžiau chartus padaryti, tai irgi nepavyko. Lūžo
> visokeriopai. Pvz sugeneruoja preview, bet neleidžia executinti.
> Tuo tarpu tuos pačius chartus pavyko padaryti per LO calc.

Pasinagrinėk tą Jasper'į. Jis neveltui reporting'ui skirtas: (advanced) 
GUI designer'iai, galimybės...