AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQLite Datentyp Affinitäten
Thema durchsuchen
Ansicht
Themen-Optionen

SQLite Datentyp Affinitäten

Ein Thema von Aviator · begonnen am 11. Apr 2015 · letzter Beitrag vom 13. Apr 2015
Antwort Antwort
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

SQLite Datentyp Affinitäten

  Alt 11. Apr 2015, 19:35
Datenbank: SQLite • Version: 3 • Zugriff über: sqlite3.dll
Hallo Leute,
ich hab ein etwas größeres Projekt in Aussicht und auch gleich eine Frage dazu. Sicherlich kennen einige (vielleicht auch alle) von euch das Programm HeidiSQL. HeidiSQL unterstützt zur Zeit ja "nur" MySQL (hauptsächlich), MSSQL und PostgreSQL. SQLite sollte vielleicht irgendwann einmal integriert werden, steht aber aktuell noch nicht wirklich fest. Zumindest ist es das, was ich aus den Blogeinträgen und dem Forum rauslesen kann.

Da ich in letzter Zeit aber viel mit SQLite mache, dachte ich mir, ich brauche eine vernünftige Software, um den Inhalt einer Datenbank anzeigen und bearbeiten zu können. Hierfür gibt es zwar schon einige Programme wie z.B. den SQLite Administrator oder den SQLiteBrowser, die sind aber alle sehr spartanisch gehalten und sehr eingeschränkt in den Funktionen, die sie bieten. Kurz und knapp habe ich mich dazu entschlossen, einen eigenen SQLite Datenbank Browser (oder wie auch immer man das nennt) zu programmieren. Es ist zwar einiges an Arbeit und wird sich auch über einen sehr langen Zeitraum ziehen, bis das Programm etwas bieten kann, aber das soll es mir Wert sein. Wir haben in der letzten Zeit hier im Forum ja schon öfters Projekte gesehen, die seit mehreren Jahren programmiert werden, obwohl keiner daran geglaubt hätte. (Bsp.: das MMORPG in Delphi von Zudomon)

Meine Frage ist allerdings gleich zu beginn schon folgende: In SQLite gibt es ja keine direkten Datentypen wie man es von anderen Datenbanken kennt. Sondern nur noch solche Storage Classes (5 an der Zahl wenn ich mich richtig erinnere). Hierbei besteht das Problem, dass in eine Integer Spalte z.B. ein Text gespeichert werden kann. Wenn ich jetzt bspw. mit Zeos diese Spalte als Integer auslese mit Fields[x].AsInteger, dann kommt da logischerweise 0 raus, da ein Text nicht in einen Integer gewandelt werden kann. Allerdings muss es ja möglich sein, diesen Wert (als Text) wieder auslesen zu können. Der SQLiteBrowser beweist uns ja auch, dass das funktioniert. Nur ist die Frage, wie er das macht. Es gibt zwar in der DLL die Funktion sqlite_column_value(), aber ich weiß ja nicht, wann ich diese Funktion aufrufen muss, da ich ja nicht weiß, dass in der Spalte aktuell ein Text anstatt eine Zahl steht.

Wenn das möglich ist, dann wäre die nächste Frage, wie ich denn die Werte intern abspeichere, da ich nach Ausführung eines Statements alle Daten in einer eigenen Klasse, deren Instanzen in einer ObjectList verwaltet werden, vorhalten möchte. Nur weiß ich ja den Datentyp des aktuellen Feldes nicht, das ausgelesen wird. Ich dachte mir, man könnte so etwas mit Generics machen. Nur wollte ich die Klasseninstanz erzeugen und den Datentyp der Spalte übergeben. An dieser Stelle stehe ich jedoch wieder vor dem Problem mit den Affinitäten, da ja in Delphi kein in einer Variable vom Typ Integer gespeichert werden kann.

Ich weiß, dass war jetzt viel Text und ich hoffe es wurde alles verstanden. Aber vielleicht hat ja jemand die Lösung für mich. Wahrscheinlich werde ich mich aber wieder erst morgen früh melden können. Danke schonmal.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: SQLite Datentyp Affinitäten

  Alt 11. Apr 2015, 20:36
Da Du ja schon auf Zudomon verwiesen hast, möchte ich mal damit beginnen, Dich deutlich zu warnen. Hast Du mal nachgeschaut, wann Zudomon seinen Thread eröffnet hat?
Ist Dein Browser dann eine Voraussetzung für das Projekt?
Willst Du das eigentliche Projekt auch mit SQlite umsetzen? Das gleiche Problem was Du mit den Datentypen in Deinem Browser hast, hast Du sehr wahrscheinlich auch mit dem Projekt selbst und mit irgendwelchen Third Party tools. Wir haben es beim Einsatz mit Android und Server Sync stellenweise auch.
Sqlite ist nicht schnell.
Es gibt dutzender Browser, ich kenne nur 2 oberflächlich.
M.E. ist eine professionelle DB Entwicklung nicht wirklich auf einen (guten) Browser angewiesen(, außer vlt. in der DB wird auch programmiert). Sowas ist praktisch um mal eben was nachzuschauen oder ein paar Konfigdaten zu ändern, dann war's das. Der Rest läuft über Skripte.
Bei einem neuen(!) Projekt würde ich eher nach einem geeigneten Persistenzframework Ausschau halten (auch wenn ich da teilweise auch schlechte Erfahrung gemacht habe)
Gruß, Jo
  Mit Zitat antworten Zitat
borstenei

Registriert seit: 12. Nov 2011
121 Beiträge
 
#3

AW: SQLite Datentyp Affinitäten

  Alt 11. Apr 2015, 20:57
Ich benutze für SQLite den SQLiteMaestro..,
http://www.sqlmaestro.com/products/s...stro/purchase/
ich glaube nicht das Du es dafür selber machst?
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: SQLite Datentyp Affinitäten

  Alt 12. Apr 2015, 16:39
Hallo jobo. Ich glaube du hast mich falsch verstanden. Ich möchte kein eigenes Datenbanksystem oder so entwickeln, sondern lediglich ein Programm, dass den Inhalt einer SQLite-Datenbank anzeigen und verändern kann. So was wie borstenei gepostet hat. Nur das das ganze, wenn fertig gestellt, Freeware werden sollte.

@borstenei: Das Programm wird in meiner Freizeit programmiert. In der Firma haben wir wenig bis gar nichts mit SQLite am Hut, da nicht oder nur eingeschränkt mehrbenutzerfähig. Privat habe ich einige Programme geschrieben, die auf SQLite basieren und daher auch die Idee, ein eigenes Programm zu entwerfen.

Nur hänge ich leider an dem Punkt, den ich in #1 beschrieben habe. Wie kann ich z.B. einen Text in einer Integerspalte auslesen. Wenn ich ja erkenne, dass die Spalte eine Spalte des Typs Integer ist, lese ich die ja auch wie ein Integer aus. Und nicht wie einen string.
Und der nächste Punkt ist, wie halte ich die Daten dann intern in meinen Programmstrukturen vor. Denn jeder Datensatz könnte ja in einer Spalte einen anderen Datentyp haben. Ich hoffe, mir kann hierbei jemand helfen.
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#5

AW: SQLite Datentyp Affinitäten

  Alt 12. Apr 2015, 18:22
Aber mal ernsthaft: wieso willst Du Dir das antun, wenn es gefühlt schon 1.498 funktionierende, kostenfreie SQLite-Browser/-Explorer gibt?

https://www.google.de/webhp?#q=sqlit...ource+explorer
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: SQLite Datentyp Affinitäten

  Alt 13. Apr 2015, 12:55
Ich finde es eigentlich schade, dass ein neues Projekt hier sehr oft erstmal runtergemacht wird. Gerade dass MMORPG von Zudomon ist doch ein Beispiel, das genau das Gegenteil beweist und ein solches Projekt schlussendlich doch umgesetzt werden kann. Es spielt doch auch keine Rolle, ob solch ein Programm schon mehrfach existiert. Ich würde die Software hauptsächlich für mich schreiben und wenn sie fertig ist, diese vielleicht auch veröffentlichen. Die existierende Software gefällt mir nicht wirklich oder kostet Geld, was sich nicht lohnt auszugeben. Und es schadet mir auch nicht, das Programm selber zu schreiben, da es in meiner Freizeit gemacht wird.

Das soll jetzt kein Angriff an euch sein, also bitte nicht falsch verstehen. Ich würde mir nur wünschen, dass mir vielleicht jemand bei diesem Problem weiterhelfen könnte, statt nur zu sagen, dass ich es doch sein lassen soll. Alles weitere würde ich dann selbst probieren, sofern keine Rückfragen mehr sind.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: SQLite Datentyp Affinitäten

  Alt 13. Apr 2015, 13:14
Also ich versuche nur, Dich zu warnen, von runtermachen ist keine Rede, bei mir nicht und auch bei den anderen nicht, denke ich.
Frag Dich einfach ernsthaft, ob diese Einwände für Dich relevant sind und wenn nicht, dann gut, hau rein!
Mein erster Post war allerdings unter der Annahme erfolgt, dein sqLite Browser sollte die Basis für Dein Projekt sein.
Es liegt mir vollkommen fern, Deine Freizeitaktivitäten zu regulieren.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort


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:13 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