Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Ako na spatialite z Delphi

Dobrý deň, bežne pracujem s databázou sqlite a pre Delphi používam jednoduchý wrapper od Lukáša gebauera. Teraz by som však potreboval v Delphi spracovať databázu spatialite čo je rozšírenie sqlite. Vedel by mi niekto poradiť ako na to? Na nete som na tému spatialite a Delphi vôbec nič nenašiel tak neviem kde začať. Nepotrebujem graficky vykresliť výsledok, iba poslať do databázy dotaz a výsledok textovo vypísať. Vďaka Štefan

Předmět Autor Datum
Předpokládám, že engine bude stejný. Takže z wrapperu přejít na standardní DB komponenty, které prac…
Jan Fiala 13.10.2016 13:02
Jan Fiala
Ahoj no ja nemám problém pracovať so sqlite aj priamo v Delphi pomocou tsqliteconnection a tsqlitequ…
Stefan77 15.10.2016 21:48
Stefan77
Ten wrapper čo používaš obsahuje: procedure TSQLiteDatabase.EnableLoadExtension(value: boolean); pr… poslední
pme 16.10.2016 17:59
pme

Předpokládám, že engine bude stejný.
Takže z wrapperu přejít na standardní DB komponenty, které pracují s SQL Lite jako s databází a přes Query komponentu provést dotaz a výsledek zpracovat, jak potřebuješ.

P.S. Pokud potřebuješ jen textový výstup, pak bys měl vystačit i s tím wrapperem. Jádro SQL Lite to používá stejné, takže i data budou uložena stejně. SptiaLite knihovny jen pridavaji další funkcionalitu

Ahoj no ja nemám problém pracovať so sqlite aj priamo v Delphi pomocou tsqliteconnection a tsqlitequery pretože Delphi 10 už má podporu aj pre sqlite ale neviem jak tam práve dostať to rozšírenie. Viem že v sqlite treba najprv povoliť načítanie rozšírení pomocou sqlite3_enable_load a potom samotné rozšírenie načítať zrejme cez sqlite3_load_extension ale logicky to nie sú sqldotazy ale funkcie priamo knižnice sqlite3 a nejak sa mi ich nedarí zavolať tak aby sa rozšírenie spatialite načítalo.

Ten wrapper čo používaš obsahuje:

procedure TSQLiteDatabase.EnableLoadExtension(value: boolean);
procedure TSQLiteDatabase.ExecSQL(const SQL: String);

nie som odborník na sqlite ...netuším či to bude fungovať, ale asi takto:

var
  database: TSqliteDatabase;

begin
   ...
   database.EnableLoadExtension := true;
   database.ExecSQL('SELECT load_extension("libspatialite-2.dll")');
   ...
end;

inšpiráciu som čerpal odtiaľto:
http://forums.devart.com/viewtopic.php?f=37&t=2424 4

Zpět do poradny Odpovědět na původní otázku Nahoru