AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MySQL Funktion (z.B. YEAR()) gibt je nach DB unterschiedliche Typen zurück
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Funktion (z.B. YEAR()) gibt je nach DB unterschiedliche Typen zurück

Ein Thema von Medium · begonnen am 3. Aug 2022 · letzter Beitrag vom 7. Aug 2022
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.752 Beiträge
 
Delphi 12 Athens
 
#1

AW: MySQL Funktion (z.B. YEAR()) gibt je nach DB unterschiedliche Typen zurück

  Alt 4. Aug 2022, 20:55
Das verbirgt sich im TDataSet im protected FieldOptions, das in abgeleiteten Klassen dann veröffentlicht wird.

Mit AutoCreateMode kann man festlegen, wie mit statischen und dynamischen Feldern umgegangen werden soll:
  • acExclusive arbeitet so wie gehabt. Wenn keine statischen Felder da sind werden alle Felder dynamisch erzeugt.
  • acCombineComputed lässt dabei dann noch (statische) berechnete Felder zu.
  • acCombineAlways mischt die statischen Felder mit den (noch nicht vorhandenen) dynamischen Felder.

PositionMode steuert die Reihenfolge der Felder.

UpdatePersistent passt einige der (statischen) Feldeigenschaften an die Informationen der Datenbank an. Das betrifft z.B. auch die Länge von Stringfeldern - ein häufiges Problem in früheren Versionen und beliebtes Argument gegen statische Felder.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
jobo

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

AW: MySQL Funktion (z.B. YEAR()) gibt je nach DB unterschiedliche Typen zurück

  Alt 4. Aug 2022, 21:54
Wie alt ist diese mySQL Version wohl? Ach, egal. Aber wenn man es weder selbst noch anderswo nachvollziehen kann, dann wird es spätestens kritisch.


Wie wär es mit einer Konvertierung in Text?
Man müsste nur die Werte auf '00' formatieren. Ggf. sogar diese Werte auch wieder in Zahlen umwandeln. Verhält sich vielleicht anders als cast.

(OT: Ich verstehe nicht, warum man sich mit so altem Zeug abgibt)
Gruß, Jo
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: MySQL Funktion (z.B. YEAR()) gibt je nach DB unterschiedliche Typen zurück

  Alt 5. Aug 2022, 00:49
Wie alt ist diese mySQL Version wohl? Ach, egal. Aber wenn man es weder selbst noch anderswo nachvollziehen kann, dann wird es spätestens kritisch.
Unnötig passive-agressive irgendwie, vor allem weil dies
Wie wär es mit einer Konvertierung in Text?
eigentlich eine garnicht so üble Idee ist! Sicher nicht elegant, performant oder gar ratsam, aber ich brauche hier wirklich keine 100% einwandfreie Lösung. Das Programm läuft auf einem PC beim Kunden, wird auch immer so bleiben, es sei denn er entscheidet sich doch endlich mal unserem stetigen Rat nach Rundumerneuerung nachzugehen und dieses in großen Teilen der frühen XP-Ära entsprungenen Systems abzulösen. Ist halt keine kleine Investition, wenn es eine Individualentwicklung für eine spezielle Produktionsanlage an einem Standort mit einem Bedien-PC ist.
(Edit: Derselbe Kunde hat immerhin kürzlich ein genau soetwas für eine andere Anlage bestellt - die im Moment noch aktiv unter WinXP betrieben wird. Da hat zum Glück deren eigene IT den Hammer fallen lassen und gesagt, dass diese Kiste aus dem Netzwerk verschwinden muss, und die Software ist aus Gründen nicht unter neueren OSs lauffähig.)


(OT: Ich verstehe nicht, warum man sich mit so altem Zeug abgibt)
Weil wir durch solche kleinen Dienstleistungen auch als Kleinstunternehmen noch gern als Lieferant bei Großkonzernen gesehen werden, die letztlich meinen Unterhalt finanzieren. Auf hohem Roß reiten ist hier einfach nicht. Du willst gar nicht wissen, wie viele Konzerne an wie vielen teils kritischen Stellen wie alte Hard- und Software einsetzen. In dem Segment ist halt nicht alles flashy und neu und aalglatt, und die Entscheidungsträger sind halt (leider!) oft auf dem Trip "Läuft doch, warum ändern? Kostet nur, und geringer unmittelbarer Mehrwert." - Und wenn man noch nicht oft genug damit auf die Nase gefallen ist, oder das Nasefallen nicht allzu sehr weh tat, bleibt das auch so. Wenn ich anfange deshalb den Kunden vollzuweinen, sucht er sich halt einen, der trockenen Auges die Arbeit macht und ich mache den Laden dicht. Ist das dein Vorschlag?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium ( 5. Aug 2022 um 00:56 Uhr)
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: MySQL Funktion (z.B. YEAR()) gibt je nach DB unterschiedliche Typen zurück

  Alt 5. Aug 2022, 07:21
DataTypeMap wurde bereits erwähnt. Warum wird es nicht genutzt?

Delphi-Quellcode:
// FormCreate
Queryx.DataTypeMap.AddFieldNameRule('feldname', ftLargeInt); // <-- Hier den Typ des Entwicklungsrechners eintragen
Ich kann mir nicht vorstellen, dass es das bei D2007 nicht geben soll. Ich hab´s schon in D7 genutzt.
Sollte es kein DataTypeMap geben, Unidac updaten.
Chris
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#5

AW: MySQL Funktion (z.B. YEAR()) gibt je nach DB unterschiedliche Typen zurück

  Alt 7. Aug 2022, 12:46
Moin...
Zitat:
Das AdvDBGrid (TMS) möchte als Datenquelle ein TDataSource. Eine Query kann ich da nicht direkt einhängen, und ohne die Feld-Deklarationen in der Query-Komponente, findet es auch keine Daten.
Das verstehe ich nicht. Du kannst doch eine Query "laden" und in die Datasource einhängen. Die TField der Query werden beim "Laden" dann automatisch anhand des Typs erstellt. Da kannst du mal schauen ob das Grid die Werte "versteht" (ohne TField separat was ja meckert)

Das Einzige was dann anders ist: Die Captions der Columns mußt du im Grid definieren...


Geändert von haentschman ( 7. Aug 2022 um 12:53 Uhr)
  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 01:57 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