AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi AdoQuery Parameterübergabe für SQL "IN" Operator
Thema durchsuchen
Ansicht
Themen-Optionen

AdoQuery Parameterübergabe für SQL "IN" Operator

Ein Thema von glunzl · begonnen am 23. Jul 2006 · letzter Beitrag vom 24. Jul 2006
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: AdoQuery Parameterübergabe für SQL "IN" Operat

  Alt 23. Jul 2006, 18:09
Hallo Michi,

die vielen CheckBoxen würden mir zuviel Raum im GUI einnehmen - meine Wahl wäre eine CheckListBox, die Werte (ID, NAME) für die GTypes würde ich im Ereignis OnCreate() der Form aus der entsprechenden Tabelle der Datenbank einlesen, den Schlüssel als Object und den Namen als String. Später kann man dann die Schlüsselliste so bilden:

Delphi-Quellcode:
function ListOfKeys(clb: TListBox): String;
var
  i: Integer;
  s: TStrings;
begin
  s := TStringList.Create;
  with clb do
    for i := 0 to Pred(Count) do
      if Checked[i] then
        s.Add(IntToStr(Integer(Items.Objects[i])));
  s.QuoteChar := #0;
  Result := s.DelimitedText;
  s.Free;
end;
Noch ein paar Hinweise allgemeiner Natur: Vor einem nachfolgenden Schreibzugriff auf die Eigenschaft SQL brauchst du die Eigenschaft Active einer Query nicht auf False setzen - das wird implizit gemacht. ParamCheck brauchst du nur zur Entwurfszeit einmal zu setzen - diese Einstellung ändert sich bei dir ja nicht mehr. Klammern in der WHERE-Klausel sind nur nötig, wenn du mit den Vorrangregeln bei logischen Ausdrücken nicht einverstanden bist - in deinem Fall erschweren sie nur die Lesbarkeit.

Die Typisierung des Parameters kannst du so vornehmen:

Delphi-Quellcode:
with Query.Parameters.ParamByName('GTYPES') do
begin
  DataType := ftString;
  Value := '1,2,3,4,5,6,7'; // oder wie immer du deinen String übergeben willst
end;
Wenn das SELECT-Statement sich nie ändert - das ist das Ziel der Parameterverwendung - dann muss auch die Eigenschaft SQL der Query nur einmal gesetzt werden, allerdings muss dann die Query explizit geschlossen und wieder geöffnet werden um die geänderten Parameterwerte zu berücksichtigen.

Getippt und nicht getestet.

marabu
  Mit Zitat antworten Zitat
 


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 06:03 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