Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#10

AW: SQLite und datensensitive Komponenten?

  Alt 24. Okt 2013, 07:44
@DeddyH: Ob ich die Daten aus der Tabelle abfrage und in die Series schreibe oder erst in ein TClientDataset, das ich dann der Series zuweise, macht im Endeffekt aber keinen Unterschied, oder? Wäre doch eher noch umständlicher?!
Ich werf' mal einen Blick auf die Zeos-Bibliotheken. Danke!
Den Ausdruck "in die Series schreiben" vestehe ich nicht. Was meinst du damit?

Ich habe letzte Woche an einer Minimalverschlüsselung für eine Projekterweiterung gearbeitet: Weil Firebird 2.5 noch keine Verschlüsselung kennt (soll ja angeblich mit V3.0 kommen), bin ich zur lokalen Bearbeitung der verschlüsselten Tabelle auf ein Clientdataset ausgewichen. Nach einigen Anlaufschwierigkeiten funktioniert das ebenso gut wie irgend ein DBDataset oder eine Query-Komponente. Man darf nur nicht vergessen, beim Start die Daten zu laden und vor Programmende wieder zu speichern. Das Programm PasswortTresor,* quasi ein Abfallprodukt meiner Auftragsarbeit, verwendet diesse Methode. Für SQLite muß man das natürlich anders machen, aber da kennen sich andere besser aus als ich.
Delphi-Quellcode:
// ********** CLIENT-DATASET LADEN *****************
Procedure TDatMod.ClientSet_Laden;
begin
  ClientSet_Zugang.Active := False;
  Qset_Zugang.Open;
  ClientSet_Zugang.ProviderName := 'Prov_Zugang';
  ClientSet_Zugang.Open;
  ClientSetKodieren(1);
  Dsrc_Zugang.Enabled := True;
  Qset_Zugang.Close;
  ClientSet_Zugang.ProviderName := '';
end;

// ********** CLIENT-DATASET SPEICHERN *************
Procedure TDatMod.ClientSet_Speichern;
Var
  Idx : Integer;
begin
  Dsrc_Zugang.Enabled := False;
  ClientSetKodieren(0);
  Qset_Zugang.Open;

  ClientSet_Zugang.First;
  WHILE NOT ClientSet_Zugang.Eof DO
  BEGIN
    Idx := ClientSet_Zugang.FieldByName('IDX_ZUGANG').AsInteger;
    IF NOT ClientSetToQuery(Idx) THEN ShowMessage('Fehler beim Speichern des ClientSets: ' + IntToStr(Idx));
    ClientSet_Zugang.Next;
  END;
  Qset_Zugang.Close;
end;
* (Freeware, Benutzer: Admin, Passwort: a1)
  Mit Zitat antworten Zitat