AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken UniDAC Firebird Roles Casesensitive

UniDAC Firebird Roles Casesensitive

Offene Frage von "grl"
Ein Thema von grl · begonnen am 18. Apr 2020 · letzter Beitrag vom 24. Apr 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: UniDAC Firebird Roles Casesensitive

  Alt 18. Apr 2020, 11:54
Zitat:
DB.SpecificOptions.Values['Role']:='"TESTROLE"';
Die Schreibweise mit den doppelten Anführungszeichen halte ich für falsch.
Jupp, wenn die Klasse dort z.B. mit Parameter arbeitet oder die Eingaben ordentlich maskiert (code-injection), dann gehören bei diesem String die " mit zum Namen, den es so aber nicht gibt.

Hast denn mal geschaut, wie das DB.SpecificOptions.Values in der DB ankommt? (SQL-Log, Activities, ...)

Die Möglichkeiten, die ich dann sehen würde:
* direkt via SQL-Statement die Rolle in der Connection setzen (AfterConnect)
* oder es müsste an der Klasse irgendwo ein Property/Option geben, wo man seine Eingaben als case-sensitive markiert (falls der hersteller hier z.B. mit Lowercase bissl nachgeholfen hat)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (18. Apr 2020 um 12:00 Uhr)
  Mit Zitat antworten Zitat
jobo

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

AW: UniDAC Firebird Roles Casesensitive

  Alt 18. Apr 2020, 12:50
ot

Bugs nicht zu suchen und zu fixen sondern zu umgehen ist meiner Meinung nach extrem schlechter Stil und verantwortlich für einen ganzen Haufen Schrott-Software da draussen.
Volltreffer:
Du sagst es sei ein Bug. Wenn Du Dir so sicher bist, muss er sich ja bei ComponentSource finden. Wenn nicht meldet man ihn.
"Andere Software kann das" ist übrigens kein Hinweis darauf, dass es sich bei der vorliegenden Software um einen Bug handelt. Ich sprach von "nicht implementiert".

Ich habe hier noch nie von jemand verlangt, alles neu zu machen. "Verlangt" ist eh Quatsch, es sind meistens wohlfeile Vorschläge, die unrealistisch sind. Es geht idR um pragmatische Alternativen. Angenommen es ist ein Bug, ist doch einfach die Frage, wie schnell Du als Kunde einen Fix erhälst. Ein Workaround ist demnach nur bedingt eine Stilfrage.

Apropos Stil:
Bei Objektnamen (in der DB und anderswo) auf die Möglichkeit zu verzichten, nationale Spracheigenarten zu verwenden, halte ich nach wie vor für einen sehr guten Weg, Problemen aus dem Weg zu gehen (ohne Funktionseinbuße).

Fachlich bleibe ich dabei, ich "streite" mich nicht mit einer anderen Anwendung um Implementierungsdetails bzw. gebe die vor. Eine Rolle zu kopieren und anders zu benennen wäre eine sehr unaufwändige Lösung, vielleicht beherrscht Firebird auch Rollendefinitionen, die auf Rollen basieren...
Gruß, Jo
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#3

AW: UniDAC Firebird Roles Casesensitive

  Alt 18. Apr 2020, 13:25
Aktuell ist die Unidac 8.1.3 , schon mal ausprobiert ?
Noch nicht. Allerdings geben weder Changelog noch ein diff des Sourcecodes irgendein Anzeichen dafür, daß in diesem Bereich etwas geändert wurde.

Hast denn mal geschaut, wie das DB.SpecificOptions.Values in der DB ankommt? (SQL-Log, Activities, ...)
Da hab ich leider keine Möglichkeit gefunden. Die role muss im Verbindungsaufbau gesetzt werden und da hab ich keine Möglichkeit gefunden den zu belauschen. Auch mit tcpdump und wireshark nicht.

* direkt via SQL-Statement die Rolle in der Connection setzen (AfterConnect)
Da hab ich auch keine Möglichkeit gefunden - auch nach langer Analyse des Verbindungsprozesses im Sourcecode von UniDAC via Debugger. Leider ist der Code aufgrund der Unterstützung so vieler verschiedener Datenbanken ziemlich komplex und damit deutlich schwerer zu debuggen als z.B. UIB.
Und die Role nachträglich - also bei aufrechter Connection - zu ändern wird erst ab Firebird 4 unterstützt werden.

* oder es müsste an der Klasse irgendwo ein Property/Option geben, wo man seine Eingaben als case-sensitive markiert (falls der hersteller hier z.B. mit Lowercase bissl nachgeholfen hat)
Hab ich auch nicht gefunden. Wenn man den SQLDialect richtig setzt werden SQL-Strings korrekt gebildet und behandelt. Nur eben die Role nicht.

Ich habe schon einen Support-Case bei DevArt aufgemacht. Aber auch dort ist vermutlich Wochenende... Aber das kennen ja sicher noch andere, daß genau dann, wenn beim Support Wochenende ist die Arbeit hier trotzdem unter den Nägeln brennt. Und dummerweise hab ich mit das Roles-Thema für ziemlich am Ende des Projektes aufgehoben...

Danke
Luggi
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#4

AW: UniDAC Firebird Roles Casesensitive

  Alt 24. Apr 2020, 18:22
Für alle die später mal auf diesen Thread stossen:

Es war ein Bug in UniDAC. Devart hat einen Hotfix zur Verfügung gestellt - damit geht es wie gewünscht.

Gruß
Luggi
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:42 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