AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken In Operator in Abfragen benutzen
Thema durchsuchen
Ansicht
Themen-Optionen

In Operator in Abfragen benutzen

Ein Thema von schneepflug · begonnen am 10. Nov 2015 · letzter Beitrag vom 10. Nov 2015
Antwort Antwort
schneepflug

Registriert seit: 10. Nov 2015
1 Beiträge
 
#1

In Operator in Abfragen benutzen

  Alt 10. Nov 2015, 10:43
Datenbank: Oracle • Version: 12 • Zugriff über: FireDac
Guten Morgen!

Ich versuche mit Delphi Seattle eine Oracle-Datenbankabfrage abzusenden.
Darin möchte ich den in-Operator benutzen um nur bestimmte Artikel anzuzeigen.

Am liebsten würde ich das ganze durch Parameter (:Artikel1, :Artikel2) realiseren um SQL-Injections zu vermeiden.

Nun habe ich hier gelesen, dass dies nicht ohne Weiteres möglich ist:
http://stackoverflow.com/questions/3...sing-in-clause


Deshalb meine Frage an die DelphiPraxis Leute:

Wie realisiert ihr in euren Anwendungen eine in-Operator Abfrage?
Oder verzichtet ihr auf den in-Operator komplett?

Gruß,
schnee
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

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

AW: In Operator in Abfragen benutzen

  Alt 10. Nov 2015, 11:34
Moin...

Das mit dem IN hat mit der Delphi Version nicht wirklich was zu tun. Die IN Menge kann man leider nicht als Parameter übergeben. Hier gibt es dann 3 Möglichkeiten.

1. Die IN Menge im SQL mit + '1,' + '2' zusammensetzen. Strings wären zu Quoten. (SQL Injection gefährdet)
2. Man macht sich eine Tabelle für IN Statements in der DB. Dort legt man die IN Werte als Datensätze ab. Als Zusammengehörigkeit verwendet man z.B. eine GUID. Im eigentlichen Statement macht man dann ein subselect auf diese Tabelle mit der GUID. Danach werden die Werte wieder entfernt. Hier kommt es darauf an ob das ganze performant sein muß...
3. SP in der DB -> generiert / aktualisiert eine View z.B.


Geändert von haentschman (10. Nov 2015 um 11:40 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: In Operator in Abfragen benutzen

  Alt 10. Nov 2015, 21:36
Im SQL-Server schreibe ich mir eine UDF, die mir eine Tabelle liefert. So wird z.B. aus "1,2,3" die Tabelle
Value
1
2
3
Und dann
Code:
select * from Daten
 where exists (
   select 1 from UDF_StringToTable(@Selection) where Value = Daten.Wert
   )
Sowas geht doch bestimmt auch in Oracle.
  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 14:37 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