AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Delphi 10.4 Sydney - Erste Eindrücke
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 10.4 Sydney - Erste Eindrücke

Ein Thema von twein · begonnen am 4. Jun 2020 · letzter Beitrag vom 13. Jun 2020
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Delphi 10.4 Sydney - Erste Eindrücke

  Alt 4. Jun 2020, 15:41
Mit 10.3 haben sich Wertmapping in DataTypeValues (Data.Win.ADODB.pas).
Könnte als schon zu 10.3 ein Problem vorhanden sein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Delphi 10.4 Sydney - Erste Eindrücke

  Alt 4. Jun 2020, 15:46
Das mit "FreeAndNil" wird gerade auch hier besprochen:

https://www.delphipraxis.net/204531-...ml#post1466330
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von twein
twein

Registriert seit: 2. Jan 2004
Ort: Düsseldorf
49 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Delphi 10.4 Sydney - Erste Eindrücke

  Alt 4. Jun 2020, 16:01
Nachdem ich das Handtuch wieder aufgehoben habe,
hat sich dann doch wieder einiges erledigt.

[QUOTE=twein;1466406]
Fehlschlag beim Start: FireDAC Property .AsDateTime für meine Klasse für eine Datenbankfeld Time (MS-SQL-Server) kann nicht mehr verwendet werden.
Ist das ein TDateTimeField oder ein TSQLTimeStampField? Hier scheint es zu gehen.
Lese- oder Schreibzugriff? Und was passiert?
Exception message : '12:00:00.0000000' ist keine gültige Datums- und Uhrzeitangabe
Depending on the error condition, it might be possible to restart the application.
Exception class : EConvertError

Mit den vorherigen Versionen war es ein "TTimeField" jetzt ist es ein "TWideStringField"
und ".AsSQLTimeStamp" funktioniert auch nicht!

Nachdem ich nun "Microsoft SQL Server Management Studio v18.5" installiert habe, ist der Feldtyp wieder richtig.
Dann war es wohl ein Treiber-Problem von Windows10 Pro.

Da hätte ich nicht gedacht, das Window10 -1909 so einen so alten MSSQL-Treiber mitbringt, bzw. bin mir eigentlich nicht sicher, von welcher Install-Routine der installiert wird.
Es bleiben ja nur
1. Windows
2. Office oder
3. Delphi

Jetzt funktioniert meine Anwendung auch wieder einwandfrei, ohne umzustricken.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Delphi 10.4 Sydney - Erste Eindrücke

  Alt 4. Jun 2020, 15:57
Mit den vorherigen Versionen war es ein "TTimeField" jetzt ist es ein "TWideStringField"
Kannst du das auf ein simples Beispiel runterbrechen?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.929 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi 10.4 Sydney - Erste Eindrücke

  Alt 4. Jun 2020, 17:35
Mit den vorherigen Versionen war es ein "TTimeField" jetzt ist es ein "TWideStringField"
und ".AsSQLTimeStamp" funktioniert auch nicht!
Das liegt am Treiber, wie du schon festgestellt hast. Ohne den Native Client bzw. dessen Nachfolger macht die Verwendung von MS-SQL echt keinen Spaß. Der mitgelieferte Treiber ist nicht schön...

Bei mir klappt es aber auch mit dem einfachen "SQL Server" Treiber (SQLSRV32.DLL) in Version 10.00.18362. Ich bekomme allerdings in den FireDAC Informationen die Meldung "Warnung: ODBC-Treiber für "SQL Server" ist veraltet. Führen Sie ein Upgrade auf einen neueren ODBC-Treiber für SQL Server durch.".

Es gibt die Funktion TDataSet.GetFieldClass in Data.DB, wo man sich ggf. anschauen könnte welcher Feldtyp das ist und dann mit der alten Version vergleichen, ebenso in TFieldDef.GetFieldClass.

Ja der Defender läuft und es ist alles identisch, wie auch mit der Version 10.3.3.
Es war mit meinem aktuellen Projekt!
Mit einem leeren Projekt, lässt sich die Funktion ja nicht wirklich beurteilen.
Das Problem ist aber, dass hier nun ein separater Prozess verwendet wird. Dadurch ist die aktuelle Funktionalität nicht vergleichbar und es kann durchaus am Defender liegen. Der ist ja ohnehin im Vergleich zu anderen Antivirentools deutlich langsamer, auch wenn das in Tests seltsamerweise nie auffällt. Es ist aber sogar ohne Messung sichtbar, wenn man es vergleicht...

Du kannst die alte Code Insight Funktionalität aber wieder verwenden, das ist einstellbar.

Mit 10.3 haben sich Wertmapping in DataTypeValues (Data.Win.ADODB.pas).
Könnte als schon zu 10.3 ein Problem vorhanden sein.
Das ist ADO, das hat mit FireDAC nichts zu tun, oder?

Bei jeder neuen Version wird dermaßen im Kernel rum-gepfuscht das erstmal gar nichts mehr geht.
In Foren findet man natürlich vor allem auftretende Probleme, aber es gibt auch viele, bei denen es einfach läuft.
Das Problem mit dem Stringgrid hatte ich wegen eines Forenposts gefunden. Unsere eigenen Projekte machen keine Probleme und die Umstellung war mit wenigen Handgriffen in den Buildskripts erledigt...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Delphi 10.4 Sydney - Erste Eindrücke

  Alt 4. Jun 2020, 17:42
Das liegt am Treiber, wie du schon festgestellt hast. Ohne den Native Client bzw. dessen Nachfolger macht die Verwendung von MS-SQL echt keinen Spaß. Der mitgelieferte Treiber ist nicht schön...
Auch werden diese nicht mehr mit Windows Update verteilt.
Etwas was so schön funktioniert hatte (mit W2k und neuer") wird jetzt wieder kaputt gemacht.

Bisher keine Problem. Kann auch daran liegen das wir direkt auf ADO/OLEDB gehen ohne den Delphi-Wrapper ADOGo.

Das ist ADO, das hat mit FireDAC nichts zu tun, oder?
Yo, überlesen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.116 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Delphi 10.4 Sydney - Erste Eindrücke

  Alt 7. Jun 2020, 16:13
Mit den vorherigen Versionen war es ein "TTimeField" jetzt ist es ein "TWideStringField"
und ".AsSQLTimeStamp" funktioniert auch nicht!
Das liegt am Treiber, wie du schon festgestellt hast. Ohne den Native Client bzw. dessen Nachfolger macht die Verwendung von MS-SQL echt keinen Spaß. Der mitgelieferte Treiber ist nicht schön...

Bei mir klappt es aber auch mit dem einfachen "SQL Server" Treiber (SQLSRV32.DLL) in Version 10.00.18362. Ich bekomme allerdings in den FireDAC Informationen die Meldung "Warnung: ODBC-Treiber für "SQL Server" ist veraltet. Führen Sie ein Upgrade auf einen neueren ODBC-Treiber für SQL Server durch.".

Es gibt die Funktion TDataSet.GetFieldClass in Data.DB, wo man sich ggf. anschauen könnte welcher Feldtyp das ist und dann mit der alten Version vergleichen, ebenso in TFieldDef.GetFieldClass.
Kleiner Nachtrag noch:
Es muss (egal auf welcher Windows-Version) der SQL Server Native Client 14 installiert sein, um Features zu nutzen, die nach 2005 hinzugekommen sind, z.B. date, time oder Standard-Instanzen (TCP). Die Version 14 ist AFAIK die einzige Version vom SQL Server Native Client, es gibt aber verschiedeme Builds, die sehr seltsame Bugs haben, teils auch böse Regressionen. Die neueste Version hat keine mit bekannten Bugs, das Produkt ist seit langem eingestellt.
Das hat nichts mit Delphi oder der Zugriffskomponente zu tun. Auch relativ unabhängige Komponenten wie Devart haben ohne aktuelle SQL-Server-Client-Version besagte Macken.
Da der SQL Server Native Client auf allen Clients installiert werden müsste, kann es zur Reduktion von Abhängigkeiten sinnvoll sein, dir eine alternative AsDateTime-Methode zu schreiben (als class helper), die das Feld als Varchar auffasst und das Ergebnis von AsString selbst interpretiert, wenn der FieldType falsch ist. Ich weiß jetzt nicht, wie sich FieldClass davon unterscheidet, aber der FieldType ist definitiv falsch, wenn der SQL Server Native Client 14 nicht installiert ist.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:52 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