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
Seite 3 von 3     123   
jobo

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

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.679 Beiträge
 
Delphi 2007 Enterprise
 
#22

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
309 Beiträge
 
Delphi 11 Alexandria
 
#23

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
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#24

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

  Alt 5. Aug 2022, 09:42
Hatte ich bereits beantwortet. Die Methode DataTypeMap() gibt es dort auch nicht.
Ich habe bei Uni nichts gefunden, was irgendwie den Namen "Mapping" trägt, und habe auch nicht wirklich eine Vorstellung davon was das genau macht in diesem Zusammenhang.
Wenn ich nicht irre, sollte ich die letzte Version haben die ich für D2007 mit meiner Lizenz abrufen konnte. (Zudem würde ich nicht riskieren, für einen Zweizeiler potenziell in einem mehrere Mannmonate schweren Projekt nach unerwarteten Folgeeffekten eines Updates jagen zu müssen. Der ganze Thread hier ist schon in WEIT mehr Arbeit ausgeartet, als ich dafür je investieren wollte.)
"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 09:46 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#25

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

  Alt 5. Aug 2022, 17:24
Nur 'ne ganz blöde Idee:
SQL-Code:
SELECT
  Cast(Concat(YEAR(V_Dat),"") as Signed) as yr,
  Cast(Concat(MONTH(V_Dat),"") as Signed) as mn,
  Cast(Concat(DAY(V_Dat),"") as Signed) as dy,
  SUM(Anteil_I) sm
FROM
  rpohis
WHERE
  Tank_Nr = 20
GROUP BY
  DATE(V_Dat)
ORDER BY
  yr DESC,
  mn ASC,
  dy ASC
Mal mit sowas in der Art
SQL-Code:
SELECT
  Cast(Concat(YEAR(sysdate()),"") as Signed) as yr,
  Cast(Concat(MONTH(sysdate()),"") as Signed) as mn,
  Cast(Concat(DAY(sysdate()),"") as Signed) as dy
auf MySQL Tryit Editor v1.0 ausprobieren.
yrmndy
202285
  Mit Zitat antworten Zitat
jobo

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

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

  Alt 6. Aug 2022, 06:26

Unnötig passive-agressive irgendwie, ..

es sei denn er entscheidet sich doch endlich mal unserem stetigen Rat nach Rundumerneuerung nachzugehen

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..

..Du willst gar nicht wissen, wie viele Konzerne an wie vielen teils kritischen Stellen..
Es war überhaupt nicht aggressiv gemeint, nicht mal passiv.
Ich habe versucht, Dein Problem nachzuvollziehen, aber kein System gefunden, was alte genug ist, das Problem zu zeigen. Wahrscheinlich kleiner 5.7 oder kleiner 5. Für eine "2 Zeilen" Gefälligkeitsumsetzung habe ich m.E. einen relativ pragmatischen Workaround vorgeschlagen.

Ich weiß glaube ich sehr gut, wovon ich rede und ich kenne die Situation, die Du schilderst. Ich fürchte, dass es dem Kunde am Ende auch gar nicht klar ist, wieviel Aufwand darin steckt, ein Altsystem am Laufen zu halten. Es gibt Softwarehersteller, die ewigen Support anbieten, ja, gibt es, aber kostet natürlich auch ewig viel.

Das Verrückte ist doch, dass die Arbeit, die durch Anbieter in den Erhalt gesteckt wird, gleichzeitig das Argument des Kunden ist, nie etwas zu ändern. Zumindest läuft es so, wenn der Kunde -wenn schon nicht technisch- es nicht mal an den Wartungskosten merkt.
Ich fahre ein relativ altes Auto aus dem vorigen Jahrtausend, nicht mal Oldtimer, aber was besonderes (für mich). Führt zu dem Effekt, dass die Ersatzteile immer teurer werden. (Während die Reparaturarbeit relativ günstig ist / bleibt. Vielleicht auch, weil es noch nicht viel Software in dem Auto gibt). Es ist jetzt nicht Aufgabe der Werkstatt, an dieser Realität etwas zu verschieben. Ich muss mir selbst überlegen, wofür ich wieviel Geld ausgeben will. Ja, der Vergleich hinkt, die Werkstatt ist nicht der Hersteller. Und der Hersteller ist natürlich in dem Segement sowieso raus.

Was ich sagen wollte, war ja nichts anderes, als das was Du laut Antwort auch Deinem Kunden sagst, das System muss aktualisiert werden. Alternativ muss man halt einen riesen Popanz an Altsystemen in Gang halten (als Anbieter), um sowas nachzustellen. Auch wenn es nur um vermeintlich kleine Goodies geht.
Perspektivisch werden solche Situationen natürlich immer wieder entstehen und die Sachen, die man heute baut, sollte man entsprechend strategisch bestmöglich ausrichten. Delphi war dafür m.E. schon immer ganz gut geeignet im Vergleich zu anderen Systemen. OS seitig kommt da mittlerweile immer stärker Linux ins Spiel, wo dann auch die Freiheitsgrade und Eingriffsmöglichkeiten steigen.
Gruß, Jo
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#27

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

  Alt 7. Aug 2022, 12:05
Nur 'ne ganz blöde Idee:
Werde ich die Tage definitiv mal probieren. Im prinzip ist das ja nen round-trip über Strings, interessant und auch entfernt verwandt mit Jobo's Idee. Sehr ausprobierenswert.

@Jobo: Alles gut, du hast ja auch völlig Recht! Mich hatte in deinem vorigen Beitrag die Wortwahl und "Grundstimmung" nur etwas gejuckt
Das Problem bei dem Kunden ist höchstwahrscheinlich, dass eine komplette Reimplementierung des gesamten Systems locker in der hohen Fünfstelligkeit landen würde, sein Mehrwert allerdings nicht operativ ist, sondern er lediglich alle paar Monate dann kleinere Arbeiten für ein paar hundert Euro weniger bekommen könnte. Die sind einfacher in den Etats unterzubringen als eine große Investition, nach der die Geschäftsführer aber keinen gesteigerten Produkt-Output in ihren hübschen Kurven sehen. Ein Stück weit kann ich das sogar nachvollziehen, auch wenn ich am Ende der "Leidtragende" bin. Ich hab das als "part of the job" mittlerweile akzeptieren können, und wir können ja auch davon leben - so ist's ja nicht. Führt aber halt dann auch gelegentlich zu solchen "Zusammenstößen" wie hier. Nichts für Ungut! Und wie schon geschrieben, finde ich die Lösungsidee sehr interessant! Bin gespannt
"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)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

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
Seite 3 von 3     123   


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 16:40 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