Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Parameter Übergabe in SQL-Abfrage

  Alt 11. Mai 2005, 23:07
Soweit ich weiss und bisher auch zu meinem Leidwesen verifizieren konnte, sind Parameter nur in WHERE und JOIN zulässig. By ORDER, GROUP usw. musst Du leider weiter mit String-Zusammensetzungen arbeiten. Du kannst Dir aber z.B. so einer Hilfsprocedur verwenden. Nachteil: Der Gesamte Originale ORDER BY muss in nur einer, und zwar der letzten Zeile (laut SQL Syntax) stehen.
Delphi-Quellcode:
  procedure ApplySortToQuery(AQuery: TADSQuery; ASortArray: array of string);
  var
    I: Integer;
    ASortString, AFilter: string;
  begin
    ASortString := '';
    for I := 0 to High(ASortArray) do
      ASortString := ASortString + ASortArray[I];
    System.Delete(ASortString, Length(ASortString)-1, 2);
    AFilter := AQuery.Filter;
    try
      AQuery.DisableControls;
      AQuery.Close;
      AQuery.Filter := '';

      if pos('order by', AQuery.SQL.Strings[AQuery.SQL.Count-1]) > 0 then
         AQuery.SQL.Delete(AQuery.SQL.Count-1);

      if ASortString <> 'then ASortString := 'order by ' + ASortString;
      AQuery.SQL.Add(ASortString);
    finally
      AQuery.Open;
      AQuery.Filter := AFilter;
      AQuery.EnableControls;
    end;
  end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat