AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Kleines Tool: SQL - TableToClass
Thema durchsuchen
Ansicht
Themen-Optionen

Kleines Tool: SQL - TableToClass

Ein Thema von Hobbycoder · begonnen am 11. Sep 2018 · letzter Beitrag vom 1. Jan 2024
Antwort Antwort
Seite 5 von 5   « Erste     345   
Hobbycoder
Registriert seit: 22. Feb 2017
Hi,

ich bin von Natur aus ein fauler Mensch (ob das auf alle Entwickler zutrifft kann und will ich nicht behaupten).
Jedenfalls ging es mir auf den Keks ständig das Klassengerüst für meine Datenbanktabellen zu schreiben. Jedenfalls bei 102 Tabellen + Views schon echt Arbeit.

Weil mir ja nun die DP und deren User wirklich viele gehen (nämlich ihre Zeit, um mir bei meinen Fragen und Problemen zu helfen), will ich mal was zurückgeben, sofern gewünscht.

Nun, dann schreibe ich mir halt ein kleines Tool, dass mir zumindest mal das 'Grobe' abnimmt. Herausgekommen ist ein doch recht nützliches Werkzeug.
Ich bin mir sicher, sowas gibt es schon. Trotzdem habe ich mich nicht auf die Suche gemacht, sondern einfach das ganze nach meinen Bedürfnissen umgesetzt.
Sicherlich arbeitet jeder Entwickler etwas anders, so dass es nicht für alle 'brauchbar' ist.
Wer aber sich schnell aus der Tabelle eines SQL-Servers eine Klasse erstellen will, der kann das nutzen.

Es ist kein Allrounder, sondern wirklich nur ein ganz kleines Tool, was nichts anderes macht, als die Felder aus einer Tabelle lesen, die Datentypen zu assoziieren und das ganze in eine Delphi-Klasse umzusetzen. Nicht mehr und nicht weniger. Zusätzlich erstellt es gleich eine TObjectList und packt auch die SQL-Abfrage gleich mit hinein. Eben so, wie ich es immer mache. So dauert jetzt das Erstellen eine Klassen-Unit zu einer neuen Tabelle statt 5-10 Minuten nur noch 15 Sekunden. Für mich eine echte Erleichterung.

Danach braucht man nur noch alles ein wenig nach seinen Bedürfnissen anpassen, dass zu löschen, was man nun nicht benötigt, und fertig.

Wer will kann sich das ja mal anschauen oder auch gerne nutzen.

Zur Zeit wird MySQL, MSSQL, Interbase/Firebird und ODBC unterstützt. Ich könnte aber noch andere DBMS aufnehmen, wenn der Bedarf besteht. Dann müsste ich es aber erst ein wenig umbauen.

Und wie gesagt, ich bin mir bewusst, dass es solche Tools bestimmt schon gibt. Aber ich wollte weder was kaufen, noch mir irgendwelche Softwarepakete installieren, sondern das einfach mal selbst machen.

Exe-Datei und Schreenshot im Anhang.

Feedback (in freundlicher Form) durchaus erwünscht.
Miniaturansicht angehängter Grafiken
tabletoclass2.jpg  
Angehängte Dateien
Dateityp: zip TableToClass.zip (3,29 MB, 118x aufgerufen)
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder (24. Sep 2018 um 10:28 Uhr)
 
Hobbycoder
 
#41
  Alt 15. Sep 2018, 13:24
Ich würde noch Postgresql gut finden,
Das kann ich machen

auch wenn ich das Tool absehbar nicht brauche.
Schade Falls doch, weißt du ja wo du es findest.

@sql field types: Wieso nutzt Du die Metainfo Funktion nicht, auf die mkinzler hingewiesen hat?
Mach ich jetzt ja.

Außerdem müsste doch ein simples "select * from <quelle> where 1=0" reichen, damit Delphi selbst die Feldtypen an die Felder bindet? Dort wären sie dann abgreifbar.
Ja, bedingt. Dort bekomme ich aber meines Wissens nach keine Informationen über den Default-Wert, der einem Feld hinterlegt ist.

Wahrscheinlich gibt es nur bei Float Typen aus der DB Interpretationsspielraum bzw. müsste der Anwender entscheiden können, was was werden soll, money, double, bcd, ..
Auf jeden Fall kann der Benutzer mittels Doppelclick auf ein Feldname festlegen, welchen Datentyp er gerne für dieses Feld verwenden möchte. So kann er aus einem Extended auch ein Currency machen, oder sich irgendwas als String liefern lassen. Das Program passt gleich das Property und den Getter/Setter an. (Sowas ähnliches wünschte ich mir in der Delphi-Ide auch gerne mal. Einfach mal den Datentyp des Properties ändern und Getter/Setter und zugeordnete Methoden würde sich auch gleich mit anpassen. Vielleicht geht's ja auch, und ich hab noch nicht herausgefunden wie )

Es soll ja letztlich erst mal nur eine halbwegs komplette Vorlage zu einer Klasse bilden. In 99% aller Fälle wird diese ja sowieso dann noch vom Benutzer in Delphi abgeändert. Nur erspart man sich erst mal einiges an Tipparbeit, vergisst keine Properties, hat erstmal eine 100%-tige Zuordnung zu den DB-Feldern und kann diese schnell mal eben in seinem Programm verwenden. Und sei es nur, um sich mal eben ein Fenster zu erstellen um irgendwelche DB-Zustände einzusehen.
  Mit Zitat antworten Zitat
Edem
 
#42
  Alt 16. Dez 2019, 19:42
Hy, hast du so was nicht für SQLite?
  Mit Zitat antworten Zitat
MichaelP

 
Delphi 10 Seattle Architect
 
#43
  Alt 17. Dez 2019, 11:42
Hallo
unterstützt du mittlerweile auch postgres/postgis Datenbanken?
  Mit Zitat antworten Zitat
EmWieMichael
 
#44
  Alt 18. Dez 2019, 09:02
Bisher bilde ich einen Datensatz einer Tabelle ganz simpel in einem Record ab; in einem weiteren Record wird die Feldstruktur (Typ und Länge) einer Tabelle definiert. Basis-SQL-Funktionen (wie z. B. Tabelle erzeugen, Satz anfügen, ändern, löschen) werden mit Hilfe der Strukturdaten erstellt und sind für alle Tabellen verfügbar. Das heißt, eine neue Tabelle samt Basisfunktionen ist mit der Definition des Datenrecords und des Strukturrecords verfügbar.
Das Anlegen eines Satzes erfolgt dann mit einem Aufruf wie DBAddSet(Person, dbPerson). Mit der gleichen Funktion kann dann aber auch für alle anderen Tabellen ein Satz angelegt werden: DBAddSet(Adresse, dbAdresse).

Auf die Idee hier mit Klassen zu arbeiten bin ich noch nicht gekommen.
Aber, mal ganz vorsichtig gefragt: Wo liegt der Vorteil dieser Vorgehensweise?

Gruß Michael
  Mit Zitat antworten Zitat
joehd

 
Delphi 10.2 Tokyo Professional
 
#45
  Alt 1. Jan 2024, 23:35
Hallo also der Threat ist ja schon einges her aber kann man das auch mit SQLITE machen ... Ich nutze gerne SQLite und dann Zeos um auf meinem lokalen Entwicklungs PC das zu testen ...
Wir an dem Tool noch was gemacht oder gibt es den Source ?
Grüße und frohes neues
Joachim
joe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 05:22 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