Versions Compared

Key

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

...

Koska pervasiven PDAC komponenttikirjastoista ei ole saatavilla lähdekoodeja, siitä emme ole voineet tuottaa titan rajanpinnan kaltaista liittymää. Sql rajapinta on tehty omilla rutiineilla jotka ovat *

  • function LuoSql(TietokantaAlias, sql, tapa) - luo kyselyn ja palauttaa sen muuttujan (jatkossa alla kysely). Voidaan myös lisätä suoraan sql parametriksi esim. q := luosql(dbname,'select count

...

  • ( * ) as c from from tuote'); joka tekee luonnin lisäksi sql lauseen asettamisen. Vapaaehtoinen 3. parametri tapa voidaan myös antaa. Se voi olla välillä 1-3, 1= avaa kyselyn, 2 = ajaa kysely (update, insert, delete tms), 3= ajaa kyselyn ja vapauttaa sql muutujan. Kun tapa=3, paluu arvona on vaikutettujen rivien määrä.
  • procedure VapautaSql(Kysely) - vapauttaa LuoSql:llä luodun kysely
  • procedure Asetasq(Kysely, SqlLause) - asettaa kyselylle sqllauseen
  • procedure Avaasql(kysely) - avaa sql lauseen esim. raportointia tai aineiston muuta läpikahlausta varten
  • procedure AjaSql(kysely) - ajaa sql lauseen esim. update, insert tai delete.
  • procedure SuljeSql(kysely) - sulkee sql kyselyn
  • function eofSql(kysely) - palautaa True jos kysely on loppu
  • function SqlFirst(kysely) - palaa ensimmäiseen tietueeseen
  • function Sqlnext(kysely) - siirtyy seuraavaan tietueeseen
  • function SqlPrev(kysely) - siirtyy edelliseen tietueeseen
  • function SqlLast(kysely) - siirtyy viimeiseen tietueeseen
  • function Sqlfbi(kysely,kentta) - palauttaa avatusta kyselystä kentän integerinä
  • function Sqlfbb(kysely,kentta) - palauttaa avatusta kyselystä kentän Booleanin
  • function Sqlfbs(kysely,kentta) - palauttaa avatusta kyselystä kentän stringinä
  • function Sqlfbd(kysely,kentta) - palauttaa avatusta kyselystä kentän DateTimeä

...

64 bittisessä ympäristössä uuden excel driverin kanssa voi olla ongelmaa, jos se ei toimi, kannattaa kokeilla 2007 versio ajuria
https://www.microsoft.com/en-us/download/details.aspx?id=23734

Excel välilehtien luku

Code Block
languagedelphi
var
  lahdetiedosto,q;
  con;
  ds: TAdoDataSet;
  lista;
begin
  lista := tstringlist.create;
  LahdeTiedosto := 'c:\temp\testi.xlsx';
  ds := TAdodataSet.create(nil);   // dataset taulurakenteen hakuun
  // Luodaan ADODb:llä excel yhteys
  con := TAdoconnection.create(nil);
  con.connectionstring := 'Provider=Microsoft.ACE.OLEDB.12.0;Data Source='+lahdetiedosto+';'+
           'Extended Properties="Excel 12.0 Xml;HDR=No;IMEX=1"';
  con.loginprompt := false; // ei suotta kysely  käyttäjätunnusta
  con.OpenSchema(20,emptyparam, emptyparam, ds);
  while not ds.eof do
  begin
    lista.add(ds.fieldbyname('TABLE_NAME').asstring);
    ds.next;
  end;
  // tässä kohden meillä on selvillä välilehtien nimet lista-nimisessä merkkijono listasas
  logentry('välilehdet ovat:');
  logentry(lista.text);
  // avataan kysely ekalle välilehdelle 
  q := TAdoQuery.Create(nil);
  Q.connection := con;
  q.sql.text := 'select '+
                'f1 as paaryhma, '+
                'f2 as ryhma, '+
                'f7 as nimi, '+
                'f15 as lvv, '+
                'f17 as viimostohinta, '+
                'f18 as keskihinta '+
                'from ['+lista.strings[0]+']';
  q.active := true;


  // sitten jatketaan normalisti



Muut

  • procedure ShowMessage(s);

...