AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQLite mit passwort -303 unsupported feature
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite mit passwort -303 unsupported feature

Ein Thema von QuickAndDirty · begonnen am 13. Nov 2023 · letzter Beitrag vom 4. Jan 2024
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#1

SQLite mit passwort -303 unsupported feature

  Alt 13. Nov 2023, 17:55
Datenbank: SQLite • Version: ? • Zugriff über: Firedac
Habe ein Projekt von Delphi XE11 nach XE 12 übernommen.
Nun folgende Laufzeitfehler.

Auf Android32 kann eine SQLite Connection nicht mehr mit dem einem gesetzten 'Password' parameter erstellt werden.
Es kommt die meldung -303 unsupported feature. "-303. Funktionalität wird nicht unterstützt"
Die Datenbank ist zudem zeitpunkt noch nicht erstellt!
Mit Leerstring als 'Password' und ohne 'Password' parameter geht es.

Außerdem funktioniert unter windows
dieser Code, compiliert mit Delphi XE 12, nicht auf einer mit mit Delphi XE 11 mit passwort erstellten SQLite datenbank .
Delphi-Quellcode:
    fFDSQLiteValidate := TFDSQLiteValidate.Create(nil);
    try
      fFDSQLiteValidate.Database := aDatabase;
      fFDSQLiteValidate.Password := FPassword;
      fFDSQLiteValidate.DriverLink := FPhysSQLiteDriverLink;
      fFDSQLiteValidate.MaxErrors := 10;
      fFDSQLiteValidate.Options := [voCheckIndexes];//[voCheckIndexes]= StandardCheck or [] = QuickCheck
      fFDSQLiteValidate.OnProgress := CheckOnlyProgressEvent;
      fFDSQLiteValidate.OnError := CheckOnlyErrorEvent;
      try
        Result := fFDSQLiteValidate.CheckOnly;
      Except
        On E:Exception do
        Begin
          Result := false;
          FLastCheckOnlyErrorMessage := e.Message;
          Tlog.d(FLastCheckOnlyErrorMessage);
        End;
      end;
    finally
      fFDSQLiteValidate.free;
    end;
Wenn fPassword gesetzt ist, kommt "-303 unsupported feature"
Wenn Fpassword leerstring ist , kommt "Error: file is not a database"

Ist das Phänomen bekannt und die Lösung auch?
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (13. Nov 2023 um 17:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: SQLite mit passwort -303 unsupported feature

  Alt 13. Nov 2023, 22:11
Versuch mal, irgendwo im Projekt die Unit FireDAC.Phys.SQLiteWrapper.FDEStat in die uses-Anweisung aufzunehmen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#3

AW: SQLite mit passwort -303 unsupported feature

  Alt 14. Nov 2023, 10:08
Interessant.
jetzt geht es.
Kann man die magische passwort unit auch 2 mal unterbringen, damit die units die SQLite Passwörter verwenden in jedemfall funktionieren ?

Was hat sich da von XE11 auf XE12 geändert, dass ich diese unit jetzt brauche?
Edit:
Ok, also es ist einfache eine import unit für eine DynLib .
Mit Kompiler schaltern für dynamisches laden oder statisches linken.
War das was hier
FireDAC.Phys.SQLiteWrapper.FDEStat
drin ist früher in
FireDAC.Phys.SQLiteWrapper enthalten und jetzt nicht mehr?

Edit2:
FireDAC.Phys.SQLiteWrapper.FDEStat
FireDAC.Phys.SQLiteWrapper.Stat
Was ist der Unterschied?
ich habe voher FireDAC.Phys.SQLiteWrapper.Stat benutzt. Muss ich diese unit jetzt ausbauen?
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (14. Nov 2023 um 10:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: SQLite mit passwort -303 unsupported feature

  Alt 14. Nov 2023, 10:49
Die Unit FireDAC.Phys.SQLiteWrapper.FDEStat muss verwendet werden um das alte Encryption-Verfahren zu verwenden. Sie muss nach FireDAC.Phys.SQLiteWrapper.Stat stehen, damit die Default-Engine auf FDE geändert wird.

Wenn du sichergehen willst, platziere einen TPhysSWLiteDriverLink auf ein Form und setze das EngineLinkage Property auf slFDEStatic . Damit kann dir die Default-Engine egal sein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#5

AW: SQLite mit passwort -303 unsupported feature

  Alt 14. Nov 2023, 11:06
Danke.
Ich bin leicht schockiert weil ich diesen schrecklichen blog post fand. (Ich hab nur Delphi kein C++)
https://blogs.embarcadero.com/new-fi...or-sqlite-see/

Also der eigentliche Grund für das Gehampel ist, dass wir bei dem alten binary 'libsqlite.a', 'sqlite3_x86.obj' und 'libcgsqlite3.dylib' bleiben können ?
Weil die neuen Versionen dieser Dateien keine Encryption mehr unterstützen und Encryption jetzt ein Premium-Feature ist was man über einen SEETreiber nachkaufen muss?

Also Enshittyfication wie bei games?

Früher hat Firedac immer eine Login Meldung gebracht oder eine andere nervige Warnung, wenn man eine Datenbank mit leerem oder Ohne Password versucht hat zu connecten... deswegen hat die Datenbank ein Passwort.
Muss ich jetzt meine SQLite Datenbank, um zukunftsicher zu sein, von einer DB mit Passwort in eine ohne Passwort umwandeln? Und wird dann wieder eine Meldung kommen wenn die DB kein Passwort hat?

Edit: Auf Android geht es ohne passwort aber wie bekommt man Daten von der alten verschlüsselten DB in die Neue?
TFDBatchMove ??
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (14. Nov 2023 um 11:33 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#6

AW: SQLite mit passwort -303 unsupported feature

  Alt 15. Nov 2023, 16:58
Wenn ich beide Units verwende
Delphi-Quellcode:
uses
FireDac.Phys.SQLiteWrapper,
FireDAC.Phys.SQLiteWrapper.Stat, //diese
FireDAC.Phys.SQLiteWrapper.FDEStat; //und diese
bekomme ich beim linken für Android den fehler

Code:
[DCC Fehler] E2597 C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidNDK-21-23.0.50491.5718\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: error: c:\\program files (x86)\\embarcadero\\studio\\23.0\\lib\\Android\\Release/libsqlite_fde.a(sqlite3_fde.o): multiple definition of 'sqlite3_aggregate_context'
  C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidNDK-21-23.0.50491.5718\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: c:\\program files (x86)\\embarcadero\\studio\\23.0\\lib\\Android\\Release/libsqlite.a(sqlite3.o): previous definition here
  C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidNDK-21-23.0.50491.5718\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: error: c:\\program files (x86)\\embarcadero\\studio\\23.0\\lib\\Android\\Release/libsqlite_fde.a(sqlite3_fde.o): multiple definition of 'sqlite3_aggregate_count'
Also diesen fehler bekomme ich für so ziemlich jede Funktion in sqlite3_fde.o und sqlite3.o
Eine laaange list von Fehlern und dann den Linker Error
Code:
[DCC Fataler Fehler] F2588 Linker-Fehlercode: 1 ($00000001)

In windows geht es nur Android meckert.
Ich brauche beide , um Die Datebank zu konvertieren.
Muss ich den FDEStat import modifizieren?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#7

AW: SQLite mit passwort -303 unsupported feature

  Alt 15. Nov 2023, 17:33
Wenn ich beide Units verwende
...
bekomme ich beim linken für Android den fehler
...
In windows geht es nur Android meckert.
Das steht so auch in der Doku:
Zitat:
For Android, Linux, and iOS platforms, only one static linkage unit may be included in a project simultaneously. In other words, you can use either FireDAC.Phys.SQLiteWrapper.Stat or FireDAC.Phys.SQLiteWrapper.FDEStat, but you cannot use both in the same project. If you do, the linker will generate errors because of duplicate symbols.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
681 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: SQLite mit passwort -303 unsupported feature

  Alt 15. Nov 2023, 18:25
Also der eigentliche Grund für das Gehampel ist, dass wir bei dem alten binary 'libsqlite.a', 'sqlite3_x86.obj' und 'libcgsqlite3.dylib' bleiben können ?
Weil die neuen Versionen dieser Dateien keine Encryption mehr unterstützen und Encryption jetzt ein Premium-Feature ist was man über einen SEETreiber nachkaufen muss?

Das erfordert ein bisschen Ausdauer, aber das ist offensichtlich eine gute Methode um Steinreich zu werden:
- Bring eine Software für Lau auf den Markt
- Warte bis die Software "überall" verwendet wird
- Entferne ein wesentliches Feature der Software und verkaufe es gegen Lizenzen die so abartig teuer sind dass dich jeder dafür hasst.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#9

AW: SQLite mit passwort -303 unsupported feature

  Alt 15. Nov 2023, 18:56
Also der eigentliche Grund für das Gehampel ist, dass wir bei dem alten binary 'libsqlite.a', 'sqlite3_x86.obj' und 'libcgsqlite3.dylib' bleiben können ?
Weil die neuen Versionen dieser Dateien keine Encryption mehr unterstützen und Encryption jetzt ein Premium-Feature ist was man über einen SEETreiber nachkaufen muss?

Das erfordert ein bisschen Ausdauer, aber das ist offensichtlich eine gute Methode um Steinreich zu werden:
- Bring eine Software für Lau auf den Markt
- Warte bis die Software "überall" verwendet wird
- Entferne ein wesentliches Feature der Software und verkaufe es gegen Lizenzen die so abartig teuer sind dass dich jeder dafür hasst.
Nein, das ist nicht der Grund. Im Repro steht: "Simplify the code by removing the unsupported and undocumented...". Den offiziellen Weg mag nur nicht jeder gehen. mORMot geht ihn:
Code:
After a lot of painful debugging and adaptation in plain C, we just updated SQLite3 to latest 3.32.2 revision
- switched to VFS pattern for encryption
- sqlite3 cross-compilation is now done from Linux scripts
Den Bremsklotz für eine Umsetzung bei Embarcadero deutet vermutlich das Wort "painful" an.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
681 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: SQLite mit passwort -303 unsupported feature

  Alt 16. Nov 2023, 08:43
Es geht nicht um Emba. Ich kann verstehen wenn man sich da lieber an Funktionen hält die zuverlässig funktionieren. Es fällt sonst auf Emba zurück wenn der Kram nicht ordentlich geht.

Sqllite.org : SEE (Sqllite Encryption Extension) :
Product To Purchase: SEE Source Code License Only ($2000 USD)
Das meine ich!

<OT>
Btw, ich bekomme keinen einzigen Blog Post von Emba auf. Ich sehe die Hauptseite.
Ein Cclick auf einen Post zeigt mir nur immer wieder die Hautpseite an, auch wenn sich die Adresszeile ändert als würde in einen Beitrag gewechselt. Browser : Chrome.latest.
<OT>
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 08:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz