![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: -
SQLite und datensensitive Komponenten?
Hi zusammen,
neuer Anlauf im Bereich Datenbanken, spannendes Neuland für mich. :) Folgende Situation: Ich nutze nach Empfehlungen hier aus dem Forum den ![]() Nun würde ich allerdings gerne eine Tabelle mit einer datensensitiven Komponente verbinden (analog TLineSeries auf DBChart mit TClientDataset), stehe diesbezüglich aber leider absolut auf dem Schlauch. Logisch erscheint mir, dass man auch hier das Feld DataSource der Series benutzt. Nur: Was muss ich dort eintragen? :gruebel: Oder ist das schlicht und ergreifend nicht möglich und das sind die Abstriche, die man zugunsten einer solch' schlanken Lösung nun einmal machen muss? Beste Grüße Sven |
AW: SQLite und datensensitive Komponenten?
Wenn du eine TDatasource aufs Formular nimmst und dort das Dataset zuweist, kannst du in jeder DB-Komponente (z.B. TDBEdit, TDBGrid, TDBText, etc.) diese Datasource verwenden.
|
AW: SQLite und datensensitive Komponenten?
Wenn ich das richtig überblicke, ist TSQLiteTable nicht von TDataset abgeleitet, da wird das nichts mit mal eben zuweisen. Hier könnte man dann auf eine der zahlreich verfügbaren TMemoryTable-Implementationen zurückgreifen oder selbst ein TClientDataset definieren. In beiden Fällen müssten die Datasets dann zur Laufzeit aus der TSQLiteTable mit Daten bestückt werden, dann kann man auch RAD-like die üblichen Zuweisungen vornehmen.
|
AW: SQLite und datensensitive Komponenten?
Zitat:
|
AW: SQLite und datensensitive Komponenten?
@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! |
AW: SQLite und datensensitive Komponenten?
Wenn Du XE5 verwendest kannst Du FireDAC verwenden
|
AW: SQLite und datensensitive Komponenten?
XE 5? Davon kann ich nur träumen. Die Angabe da unter meinem Benutzernamen ist tatsächlich aktuell. :(
|
AW: SQLite und datensensitive Komponenten?
Oder du nimmst die Komponenten von dieser Seite
![]() die auch einen TDataSet enthalten. |
AW: SQLite und datensensitive Komponenten?
Hab mit SQLLite-Komponenten ohne Generics leider nur schlechte Erfahrungen gemacht (Bugs ohne Ende), lasse mich gerne eines Besseren belehren.
Vielleicht doch eine Nummer größer, also FB (embedded) und Zeos o.ä.? FB ist eh mächtiger und auch nicht (viel) komplizierter. Alternativ kann man auch mit den vielen Text-orientierten TDataset-Derivaten seine ersten Gehversuche starten, das wäre dann ganz ohne DB (einfach mal Torry.net konsultieren) |
AW: SQLite und datensensitive Komponenten?
Zitat:
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 ![]()
Delphi-Quellcode:
* (Freeware, Benutzer: Admin, Passwort: a1)
// ********** 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; |
AW: SQLite und datensensitive Komponenten?
@TraumtänzerDieter: Das schau' ich mir mal näher an. Besten Dank.
@Furtbichler. Zeos habe ich auch schon probiert, sollte zumindest theoretisch ja auch mit SQLite funktionieren. Allerdings habe ich das Problem, dass ich in allen heruntergeladenen Archiven nicht ein Package finde, mit dem ich die Komponenten installieren kann. Ich gebe zu: Ich fühle mich deswegen momentan ziemlich minderbemittelt. :D Denn alle Tutorials, die ich finden konnte, gehen genau davon aus. @Perlsau: Hm, doof umschrieben, zugegeben. "TLineSeries mit Werten befüllen" sollte klarer ausdrücken, was ich machen will. Deine vorgeschlagene Alternative mit den CleintDataSets kommt für mich leider nicht in Frage. Von denen will ich ja gerade weg. :D Denn da nervt mich, dass jedes Mal die gesamte Datenmenge weggeschrieben wird. Das ist f+r meine Ansprüche einfach nicht pratikabel. Im Prinzip brauche ich eine simple lokale Datenbank, die es mir ermöglicht, unter Delphi 5 mehrere Tabellen (max. 7-8) mit jeweils ~500.000 Datensätzen abzuspeichern. Schön wäre außerdem eine Anbindung an datensensitive Komponenten (TLineSeries in DBChart) sowie möglichst wenig DB-Gedöns, das ich dem User abseits der Exe noch mitgeben muss. Da dachte ich nun mit der im Startpost erwähnten Komponente die Lösung gefunden zu haben (benötigt nur die dll), allerdings fehlt mir da die Möglichkeit, die Daten direkt in DB-Komponenten anzeigen zu lassen. +++edit+++ Die von TraumtänzerDieter vorgeschlagenene Komponente funktioniert nicht unter Delphi 5. Nach dem Löschen der vom Compiler nicht erkannten Module vcl, rtl, dbrtl sowie unbekannten Compilerdirektiven (Warn, Align 8), stockt der Compiler bei der Zeile
Delphi-Quellcode:
TFormatSettings ist ihm nicht bekannt.
DefaultFormatSettings: TFormatSettings;
|
AW: SQLite und datensensitive Komponenten?
Zitat:
|
AW: SQLite und datensensitive Komponenten?
Zitat:
In D5 Enterprise hast du die nötigen ADO-Komponenten schon an Bord und du vermeidest damit die völlig veraltete BDE. Auf den Zielrechnern sind in der Regel alle nötigen Treiber (OLE-DB Provider) als Teil des Windows OS schon installiert. Dies gilt allerdings nicht für Windows 7 und höher aber man kann die Treiber (Jet Engine 8) einfach nachinstallieren. ![]() Damit kannst du sämtliche datensensitiven Komponenten benützen. Ausserdem kannst du relativ leicht von MS Access auf MS SQL Server umschalten da die SQL Dialekte eine grosse gemeinsame Schnittmenge haben. Ein weiterer Vorteil ist dass du als Entwickler mit MS Access eine sehr leistungsfähige Benutzeroberfläche hast um die Datenbank zu administrieren (Tabellen anlegen, Testdaten einfügen/ändern/löschen usw.) Das Datenbankformat *.mdb und damit die Jet Engine ist inzwischen von MS abgekündigt und wird nicht mehr weiterentwickelt. Aber über die ADO-Komponenten stehen dir auch viele andere Datenbanken offen (insbesondere MS SQL Server). |
AW: SQLite und datensensitive Komponenten?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 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 by Thomas Breitkreuz