AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AnsiString-Warnungen in DB-Projekten

Ein Thema von Gloegg_FHBI · begonnen am 9. Aug 2012 · letzter Beitrag vom 10. Aug 2012
Antwort Antwort
Benutzerbild von Gloegg_FHBI
Gloegg_FHBI

Registriert seit: 28. Nov 2006
Ort: Neuss
46 Beiträge
 
Delphi 10 Seattle Professional
 
#1

AnsiString-Warnungen in DB-Projekten

  Alt 9. Aug 2012, 19:57
Hallo,

Ich habe ein paar Projekte in denen ich mittels der DevArt MyDAC-Komponenten auf eine MySQL-DB zugreife. (Charset ist UTF8)
Selbst in den kleineren werde ich beim compilieren von Warnungen erschlagen, die auf "problematische" String/Ansistring-Umwandlungen deuten. (Und damit werden natürlich echte Warnungen leicht übersehen)

z.B. bei sowas:
Delphi-Quellcode:
 
qrItemsPriceFormat.Value := Format('%.2f',[qrItemsItemPrice.Value]);

oder sowas:
Delphi-Quellcode:
 
s := 'Soll der Artikel "' + dmData.qrArticleArticleName.Value + '" wirklich gelöscht werden?';

Die Warnungen haben natürlich recht, TStringField.Value ist vom Typ ansistring und implizite casts können da zu problemen führen.
Um die Warnungen zu umgehen könnte ich natürlich jedesmal explizit casten oder mit TEncoding arbeiten, aber das ist mir zu umständlich und verringert die Lesbarkeit des Codes. Gibt es nicht ne einfachere Methode?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

AW: AnsiString-Warnungen in DB-Projekten

  Alt 9. Aug 2012, 20:33
Lass mal die persistenten Felder neu erstellen? AFAIK gibts hier auch sowas wie TWideStringField.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: AnsiString-Warnungen in DB-Projekten

  Alt 9. Aug 2012, 20:38
Alternativ kannst du statt .Value auch .AsString schreiben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
529 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: AnsiString-Warnungen in DB-Projekten

  Alt 9. Aug 2012, 20:41
Anstatt xxx.value schreibe ich das immer xxx.asstring, dann ist Ruhe.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#5

AW: AnsiString-Warnungen in DB-Projekten

  Alt 9. Aug 2012, 21:14
Und selbst das mit dem Encoding ist nicht im Geringsten umständlich.

Du leitest dir entweder die Klassen ab und baust dir einfacher Property, worin das alles enthalten ist, oder du erweiterst die Klassen implizit über Class-Helper.


z.B. das was Emba in XE2 per Record-Methoden direkt in TRect und Co. integriert hat, hatte ich mir schon seit 2006 schon selbst gebstelt oder über über Record-Helper an fertige Records angehängt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Aug 2012 um 21:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Gloegg_FHBI
Gloegg_FHBI

Registriert seit: 28. Nov 2006
Ort: Neuss
46 Beiträge
 
Delphi 10 Seattle Professional
 
#6

AW: AnsiString-Warnungen in DB-Projekten

  Alt 10. Aug 2012, 13:47
Vielen Dank für die Antworten.

Meine Lösung sieht noch etwas anders aus.
Die TMyConnection hat eine Option "UseUnicode".
Sobald die aktiviert ist, werden TWideStringField / TWideMemoField statt TStringField / TMemoField verwendet.
Dann musste ich noch einmal die Felder in meinen Querise löschen und wieder hinzufügen und schon war ich die ganzen Warnungen los.
  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 07:51 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