AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Alternative für SQLite auf Android Gerät (fmx)
Thema durchsuchen
Ansicht
Themen-Optionen

Alternative für SQLite auf Android Gerät (fmx)

Ein Thema von stalkingwolf · begonnen am 12. Sep 2017 · letzter Beitrag vom 15. Sep 2017
Antwort Antwort
Seite 1 von 2  1 2      
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 12. Sep 2017, 11:26
Da fehlt irgendwie der entscheidende Teil der Schleife in deinem Beispiel oben. Das "Create Table" wird aber nur einmal ausgeführt und nicht bei jedem der 10.000 Schritte, oder?

Mache mal vor (außerhalb) der Schleife ein StartTransaction und danach ein Commit. Wenn der jede Abfrage einzeln Commited wird das sicher auch langsam. Das dürfte bei anderen Datenbanken aber nicht besser sein.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 12. Sep 2017, 11:46
Interessant wäre es zu sehen, wie das Insert-Statement aussieht, im obigen Beispiel sieht man ja nur die Parameterbefüllung.

Ließe die sich eventuell etwas vereinfachen?
Delphi-Quellcode:
   if feld = 'LG_BMGBthen begin
     flgpl_1_insert.parambyname('LG_BMGB').asstring := myvalue;
     flgpl_1_insert.parambyname('LG_BMGB_ORG').asstring := myvalue;
   end else
   if feld = 'LG_BMGVthen begin
     flgpl_1_insert.parambyname('LG_BMGV').asstring := myvalue;
     flgpl_1_insert.parambyname('LG_BMGV_ORG').asstring := myvalue;
   end else
   if feld = 'LG_EKPRthen begin
     flgpl_1_insert.parambyname('LG_EKPR').asstring := myvalue;
     flgpl_1_insert.parambyname('LG_EKPR_ORG').asstring := myvalue;
   end else begin
     flgpl_1_insert.parambyname(feld).asstring := myvalue;
   end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#3

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 12. Sep 2017, 11:49
Vielleicht sollte man sich Array DML einmal anschauen, oder das Ganze zumindest versuchsweise in eine Transaktion packen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
549 Beiträge
 
#4

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 12. Sep 2017, 11:56
Die fehlende Transaktion war es. Dachte ich könnte mir diese sparen, da wenn das Ding auf dem Pad läuft eh nu einer zugreift.

Danke für den Tipp.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#5

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 12. Sep 2017, 15:23
Was hast du in eine Transaktion geklammert - nur das Statement oder alles?
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
690 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 12. Sep 2017, 15:25
Ich bin mir nicht ganz sicher, aber ich meine dass SqlLite eh nur mit einer transaction geht. Zumindest hatte meine mobile app gemeckert, alt ich 2 transaktions gleichzeitig laufen lassen wollte
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
549 Beiträge
 
#7

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 12. Sep 2017, 16:13
Hab nun alles drin.
musste den Code noch für Android extra anpassen, aber es funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#8

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 13. Sep 2017, 06:48
Schön für dich. Es wäre nett, wenn du die Lösung auch noch postest.
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
549 Beiträge
 
#9

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 13. Sep 2017, 08:04
Code:
{$IFNDEF NEXTGEN}
var TD : TTransactionDesc;
 {$ENDIF !NEXTGEN}
begin
    .
    .
    {$IFNDEF NEXTGEN}
    TD.TransactionID := 1;
    TD.IsolationLevel := xilREADCOMMITTED;  
    MobilConnection.StartTransaction(td);
    {$ELSE}
    MobilConnection.BeginTransaction;
    {$ENDIF !NEXTGEN}
    .
    .
    .
    {$IFNDEF NEXTGEN}
    MobilConnection.Commit(td);
    {$ELSE}
    MobilConnection.Commit;
    {$ENDIF !NEXTGEN}
Wobei es unter Android (Samsung Galaxy S2) immer noch langsamer als unter Windows ist. D.h ca 3sek Windows mit 10k Datensätzen zu 20s auf dem Tablet.
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#10

AW: Alternative für SQLite auf Android Gerät (fmx)

  Alt 13. Sep 2017, 08:15
Und du schließt den ganzen Import in eine(!) Transaktion ein?
In der Regel macht das die Sache langsam. Hast du versucht, kleinere Blöcke (zB 10 Datensätze) in eine Transaktion zu packen?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz