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
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#1

AW: Kleines Tool: SQL-Table to Class

  Alt 14. Sep 2018, 15:03
Danke. Werd ich so machen.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#2

AW: Kleines Tool: SQL-Table to Class

  Alt 14. Sep 2018, 18:48
Hab noch mal eine neue Version hochgeladen.

War noch ein kleiner Fehler in der INI-Datei. Ich habe noch alle o.g. Fehler/Verbesserungen umgesetzt, und ein paar Kleinigkeiten gemacht.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
jobo

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

AW: Kleines Tool: SQL-Table to Class

  Alt 15. Sep 2018, 08:55
Firbird types von alterton.info
Code:
 SELECT r.rdb$field_name           AS field_name,
       r.rdb$description          AS field_description,
       r.rdb$default_value        AS field_default_value,
       r.rdb$null_flag            AS field_not_null_constraint,
       f.rdb$field_length         AS field_length,
       f.rdb$field_precision      AS field_precision,
       f.rdb$field_scale          AS field_scale,
       CASE f.rdb$field_type
         WHEN 261 THEN 'BLOB'
         WHEN 14 THEN 'CHAR'
         WHEN 40 THEN 'CSTRING'
         WHEN 11 THEN 'D_FLOAT'
         WHEN 27 THEN 'DOUBLE'
         WHEN 10 THEN 'FLOAT'
         WHEN 16 THEN 'INT64'
         WHEN 8 THEN 'INTEGER'
         WHEN 9 THEN 'QUAD'
         WHEN 7 THEN 'SMALLINT'
         WHEN 12 THEN 'DATE'
         WHEN 13 THEN 'TIME'
         WHEN 35 THEN 'TIMESTAMP'
         WHEN 37 THEN 'VARCHAR'
         ELSE 'UNKNOWN'
       END                        AS field_type,
       f.rdb$field_sub_type       AS field_subtype,
       coll.rdb$collation_name    AS field_collation,
       cset.rdb$character_set_name AS field_charset
FROM  rdb$relation_fields r
       LEFT JOIN rdb$fields f
              ON r.rdb$field_source = f.rdb$field_name
       LEFT JOIN rdb$collations coll
              ON f.rdb$collation_id = coll.rdb$collation_id
       LEFT JOIN rdb$character_sets cset
              ON f.rdb$character_set_id = cset.rdb$character_set_id
WHERE r.rdb$relation_name = 'TEST2' -- table name
ORDER BY r.rdb$field_position;
Gruß, Jo

Geändert von jobo (15. Sep 2018 um 09:45 Uhr)
  Mit Zitat antworten Zitat
jobo

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

AW: Kleines Tool: SQL-Table to Class

  Alt 15. Sep 2018, 11:36
Ich würde noch Postgresql gut finden, auch wenn ich das Tool absehbar nicht brauche.

@sql field types: Wieso nutzt Du die Metainfo Funktion nicht, auf die mkinzler hingewiesen hat?
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.
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, ..
Gruß, Jo
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
1.002 Beiträge
 
#5

AW: Kleines Tool: SQL-Table to Class

  Alt 15. Sep 2018, 12: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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  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 00:01 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-2025 by Thomas Breitkreuz