AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADO-Problem mit IN-Klausel und Wertliste
Thema durchsuchen
Ansicht
Themen-Optionen

ADO-Problem mit IN-Klausel und Wertliste

Ein Thema von CF_Freak21 · begonnen am 24. Dez 2003 · letzter Beitrag vom 25. Dez 2003
Antwort Antwort
Benutzerbild von CF_Freak21
CF_Freak21

Registriert seit: 20. Nov 2003
Ort: Regen (Bayerwald)
22 Beiträge
 
Delphi 7 Enterprise
 
#1

ADO-Problem mit IN-Klausel und Wertliste

  Alt 24. Dez 2003, 18:33
Frohe Weihnachten erstmal..
Ich habe momentan folgendes Problem
Ich möchte in eine ADO-Dataset in einer IN-Klausel im SQL eine Wertliste übergeben...
Sieht im CommandText so aus:

WHERE Kategorie_ID IN (:Kategorie_ID)

Steht im Parameter :Kategorie_ID nur ein einziger Wert, so haut das auch hin.
Wenn aber der Parameter :Kategorie_ID folgendermassen beschrieben wird erhalte ich keine Suchergebnise:

Params.ParamByName('Kategorie_ID'):='1,5,6,7'; Dies ist aber in SQL erlaubt und haut auch im Access hin!
Was mache ich falsch?

Kann das daran liegen, dass Kategorie_ID ein Integer-Feld ist?
2 Dinge sind unendlich:
Das Universum und die menschliche Dummheit.
Beim Universum bin ich mir aber noch nicht sicher.
------------Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ADO-Problem mit IN-Klausel und Wertliste

  Alt 25. Dez 2003, 10:07
Du übergibst einen String, und der wird entsprechend eingetragen. Aber leider wird daraus nicht das erwartete Statement.

Ich umgehe dieses Problem immer dadurch, daß ich das SQL-Statement einfach komplett neu baue ohne Parameter-Übergabe, da ich in der Vergangenheit häufiger Ungereimtheiten bei der Verwendung von Parametern bei ADO feststellen mußte. Ich speichere mir dazu den SELECT-Teil, den FROM-Teil, den WHERE-Teil ohne die entsprechende Zeile mit dem Parameter sowie den Order-Teil in eigene Konstanten, und füge Sie dann in der Eigenschaft SQL zusammen, nachdem ich die Parameterliste zusammengestellt habe. Etwa so:

Delphi-Quellcode:
const
  cSELECT = 'SELECT *'; // SELECT-Teil
  cFROM = 'FROM Artikel'; // FROM-Teil
  cWHERE = 'WHERE Bezeichnung = ''Artikel'''; // WHERE-Teil ohne Parameter-Liste
  cORDERBY = 'ORDER BY Artikelnr'; // ORDER-Teil
  cCR =#13#10;
begin
...
AdoDataSet1.CommandText := cSELECT + cCR + cFROM + cCR + cWHERE + cCR + 'AND Kategorie_Id IN (1,2,3,4,5)' + cCR + cORDERBY;
AdoDataSet1.Open;
...
end;
Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von CF_Freak21
CF_Freak21

Registriert seit: 20. Nov 2003
Ort: Regen (Bayerwald)
22 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: ADO-Problem mit IN-Klausel und Wertliste

  Alt 25. Dez 2003, 21:15
jau danke...
ist wohl auch eine Idee.
Ich habs jetzt einfach so gemacht das ich das Feld mit LIKE Abfrage....
geht in dem Fall auch.
Aber trotzdem thx für den Tip...
Diese Parameter in ADO sind wohl eh eine Sache für sich... das ganze funkt in der Praxis öfter ned so super...
2 Dinge sind unendlich:
Das Universum und die menschliche Dummheit.
Beim Universum bin ich mir aber noch nicht sicher.
------------Albert Einstein
  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 09:41 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