SQL-kyselyt
SKJ-kassajärjestelmän tietokantana toimii Pervasive.SQL -tietokanta, joka käyttää 'ohjelmointikielenään' SQL:ää (SQL = Structured Query Language).
Perusoppaita SQL-kyselyihin löytyy täältä.
Koottuja sql-lauseita löytyy testipalvelimen sql kansiosta.
Kyselyiden ajaminen eri ympäristöissä
Pervasive.SQL v8
Kyselyitä ajetaan seuraavasti:
- Avaa SQL Data Manager (Käynnistä->Suorita..-> sqldmgr).
- Käynnistä->Ohjelmat (tai Kaikki ohjelmat..)>Pervasive.SQL v8>SQL Data Manager.
- Valitse tietokanta, johon kyselyn haluat tehdä.
- Kirjoita tai liitä haluamasi kysely yläpuoleiseen laatikkoon ja valitse kyselyn ensimmäinen suoritettava rivi.
- Valitse Tools->Query->Run all SQL statements.
Pervasive.SQL v9 ->
Kyselyitä ajetaan seuraavasti:
- Avaa Pervasive Control Center. Vaihtoehtoisesti voit valita käynnistä->suorita ja kirjoittaa siihen komennoksi pcc.
- Valitse File -> New SQL Document. Voit klikata myös kohdasta 'Common tasks' -> 'Execute SQL command'.
- Valitse haluttu palvelin ja tietokanta.
- Kirjoita tai liitä haluamasi kysely yläpuoleiseen laatikkoon ja valitse kyselyn ensimmäinen suoritettava rivi.
- Valitse SQL -> Execute in Grid (myös F9) tai SQL -> Execute in Text (myös Shift+F9).
SkjSQL
Voit ajaa kyselyitä myös komentorivipohjaisella skjsql.exe:llä, jonka voi hakea osoitteesta http://testi.skj.fi/winskj/skjsql_update.exe.
- Käynnistä skjsql (Käynnistä->Suorita.. -> C:\WINSKJ\SKJSQL.EXE).
- Valitse käytettävä tietokanta kirjoittamalla 'use TIETOKANTA'.
- Kirjoita tai liitä haluamasi kysely ja paina Enter.
Ohjelmasta poistutaan kirjoittamalla 'exit'.
Toimittaessa paljon komentokehotteessa voi ajaa toistuvia sql-lauseita myös esim. seuraavasti:
skjsql TIETOKANTA "select count(*) from tuote"
tai tiedostosta
skjsql TIETOKANTA /f:TIEDOSTONIMI
.
Sql lauseissa voi käyttää puolipistettä ; tai risuaitamerkkiä (#) erottimena.
Tällöin tulee huolehtia, että ennen merkkiä on välilyönti.
Kyselyn parametreja voidaan välittää /P: parametrilla esim. sql.sql tiedostossa lause:
- select sum(summa) from tuotemyy where asiakas=:asnro and pvm=:pvm ;
- select max(summa) from tuotemyy where asiakas=:asnro and pvm=:pvm ;
voidaan ajaa
skjsql
YRITYS {{/p:ASNRO=100 /p:pvm=$spvm /f:}}sql.sql
$spvm korvautuu yyyymmdd päivällä ja $pvm korvautuu yyyy-mm-dd päiväyksellä. Päiväyksenä käytetään aina kuluvaa päivää.
Muut komentoriviparametrit:
- /O:tiedosto vie tulokset tähän tiedostoon. Ajettaesssa /f parametrilla pelkkä /o ohjaa tuloksen näytölle.
- /H tulostaa myös otsikot eli kenttien nimet tuloslistaan.
- /K:toinenkanta, voidaan määrätä toinen tietokanta. Sql-lauseessa se pitää olla $apukanta$.
- /A tulostiedosto jatketaan perään (append).
- /L:logtiedosto vie login tähän tiedostoon, pelkkä /L: tuottaa login näytölle.
- /C lukee sql-lauseen leikepöydältä.
- /OF:arvo=muoto määrittelee muotoiluja (Output Format). Arvo voi olla
- shortdate päivän lyhyt muoto esim yyyymmdd tai dd.mm.yyyy
- longtime ajan pitkä muoto esim. hh:nn:ss
- decimalsep desimaali erotin
Alla mainituilla ei ole vaikutusta TimeStamp, Date, Time kenttiin - shorttime ajan lyhyt muoto (ei vaikutusta time kentissä)
- longdate päivän mitkä muoto (ei vaikutusta date kentissä)
- datesep päivän erotin
esimskjsql YRITYS /of:decimalsep=. /of:shortdate=yyyymmdd /of:longtime=hhnnss "select tuote,saldo, muutospvm, muutosklo from varsaldo"
WinSKJ
WinSKJ:n alta voidaan ajaa SELECT kyselyitä (ei UPDATE / DELETE / ALTER jne.). Nämä kyselyt voidaan myös siirtää esim. Exceliin. Ajo tapahtuu valikosta tiedostojen selailu>export toiminnolla. SQL -lause kirjoitetaan ylös ja painetaan Suorita kysely. Kun tulokset halutaan viedä Exceliin, painetaan Vie tulokset. Jos halutaan viedä myös otsikot, ruksataan Vie myös otsikot.