AGB  ·  Datenschutz  ·  Impressum  







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

Strings an eine Funktion übergeben

Ein Thema von needatip · begonnen am 6. Nov 2006 · letzter Beitrag vom 6. Nov 2006
Antwort Antwort
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#1

Strings an eine Funktion übergeben

  Alt 6. Nov 2006, 11:27
Hallo,
ich möchte die ausgewählten Strings einer Listbox an eine Funktion übergeben. Diese soll dann eine SQL Berechnung mit den übergebenen Strings durchführen.
In etwa so:
ListBox-Einträge
AGT
RET
BGH
TSB
RZU
FHG

z. B. ausgewählt Eintrag 1,2,5 u. 6

Übergabe der Strings 1,2,5 u. 6 an SQL Funktion
wie kann ich die Listbox-Einträge an die Funktion übergeben ???

Delphi-Quellcode:
function CalcAlle(MYList :TStringList): TSTringlist;
var SQLTEXT: string;
begin
  With Query do
  begin
    SQL.Clear;
    SQLTEXT := 'SELECT AG,SUM(Preis) AS GESPREIS' +
      ' FROM PosListe' +
      ' WHERE AG IN '+MyList+
      ' GROUP BY AG;
SQL.Add(SQLText);
Close;
Open;
Result := ????
end
end;
Anschließend möchte ich das Ergebnis an eine TChart Komponente übergeben.
Wer kann mir bei dieser Aufgabenstellung helfen.
Bin noch kein Profi.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Strings an eine Funktion übergeben

  Alt 6. Nov 2006, 11:31
Was ist dein konkretes Problem?
a) Du weißt nicht, wie man eine Funktion schreibt, der man einen String als Parameter übergeben kann.
b) Du weißt nicht, wie man die Werte der ausgewählten Einträge einer Listbox ermittelt.
c) Keins von beiden und ich habe dich falsch verstanden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
JonnyGuitar

Registriert seit: 4. Jun 2004
233 Beiträge
 
#3

Re: Strings an eine Funktion übergeben

  Alt 6. Nov 2006, 11:55
hi,

bin mir nicht ganz sicher was sql da erwartet, ich glaube (string1, string2, ...).
also müsstest du dir vorher schon den string passend zusammenbasteln, also in einer schleife über die stringlist
laufen und dann einen string an die funktion übergeben.

mfg Jonny
the only thing to fear is runnin' out of beer
  Mit Zitat antworten Zitat
marabu

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

Re: Strings an eine Funktion übergeben

  Alt 6. Nov 2006, 12:21
Hi,

Jonny hat Recht - die Strings müssen als Literale noch in Quotes verpackt werden:

Delphi-Quellcode:
function GetSelectedStrings(lb: TListBox): String;
var
  i: Integer;
begin
  with TStringList.Create do
  try
    for i := 0 to Pred(lb.Count) do
      if lb.Selected[i] then
        Add(QuotedStr(lb.Items[i]));
    QuoteChar := #0;
    Result := DelimitedText;
  finally
    Free;
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Strings an eine Funktion übergeben

  Alt 6. Nov 2006, 13:18
Ja super, danke.
jetzt muss ich noch versuchen die SQL Prozedur zusammenzubauen; vielleicht kannst du mir da noch ein wenig behilflich sein.
Hab so angefangen:

Delphi-Quellcode:
procedure Calc;
var SQLTEXT: string;
begin
  With Query do
  begin
    SQL.Clear;
    SQLTEXT := 'SELECT AG,SUM(Preis) AS GPREIS ' +
      'FROM PListe ' +
      'WHERE AG IN :AGListe '+
      'GROUP BY AG';
    SQL.Add(SQLText);
    ParamByName('AGListe').AsString := GetSelectedStrings(lb);
    Close;
    Open;
  end
end;
Funktioniert nicht !
Der Parameter :AGListe wird nicht ausgewertet.
Woran liegts ?
  Mit Zitat antworten Zitat
marabu

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

Re: Strings an eine Funktion übergeben

  Alt 6. Nov 2006, 13:48
Du kannst einen Parameter nicht an jeder beliebigen Stelle verwenden.

Delphi-Quellcode:
procedure Calc;
const
  SEL
    = 'SELECT AG, SUM(Preis) AS GPREIS
    + 'FROM PListe
    + 'WHERE AG IN (%s) '
    + 'GROUP BY AG'
    ;
begin
  with Query do
  begin
    SQL.Text := Format(SEL, [GetSelectedStrings(lb)]);
    Open;
  end
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Strings an eine Funktion übergeben

  Alt 6. Nov 2006, 21:02
Ja wunderbar. Klappt jetzt alles super.
Vielen Dank nochmals.
  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 08:36 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