Einzelnen Beitrag anzeigen

Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#2

Re: SQL-Abfrage bei einer Oracle-Datenbank

  Alt 9. Sep 2003, 11:11
Ich würde folgendermassen vorgehen:

Delphi-Quellcode:
Function TForm1.Suchen;
var
  oqQuery :TOracleQuery;
  strSQL :string;
begin
  //Dynamisch erzeugtes Query Createn
  oqQuery := TOracleQuery.Create(nil);
  try
    //Session zuweisen
    oqQuery.Session := OracleSession;

    //Ersten SQL-Text Setzen.
    oqQuery.SQL.TEXT := 'select * from adresse where ';
    
    //Where Clausel zusammenbauen
    strSQL := '';
    if self.EditName.Text <> 'then
      strSQL := strSQL + 'name like '+QuotedStr('%'+self.EditName.text+'%')+' and ';
    if self.EditID.Text <> 'then
      strSQL := strSQL + 'id = '+self.EditID.Text+' and ';
    if self.EditDatum.Text <> 'then
      StrSQL := strSQL + 'Datum = '+QuotedStr(self.EditDatum.text)+' and ';

    if pos('and', strSQL <> 0
     then strSQL := leftStr(strSQL, length(strSQL)-5)
     else oqQuery.SQL.Text := leftStr(oqQuery.SQL.Text, length(oqQuery.SQL.Text)-6);

    //SQL-Anweisung hinzufügen.
    oqQuery.SQL.Text := oqQuery.SQL.Text + strSQL;

    //SQL-Anweisung ausführen
    oqQuery.Execute;

   { Weitere Anweisungen, da ich gleich das Objekt wieder freigebe }
  finally
    oqQuery.Free;
  end;
end;
- Wie Du siehst baue ich mir hier eine SQL-Anweisung dynamisch zusammen.
- Ich arbeite persönlich mit den OracleComponenten, darum auch TOracleQuery, sollte aber bei anderen Componenten auch funktionieren.

Ich hoffe Dir geholfen zu haben.

Gruss

Samson
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat