![]() |
SQL-Abfrage bei einer Oracle-Datenbank
Hi ihr alle,
von meinem letzten Beitrag müsstet ihr wissen das ich leider ein Delphi-Anfänger bin :oops: :oops: :oops: weshalb meine Fragen vielleicht nicht wirklich schwer sind aber irgendwie komm ich nicht weiter. Und zwar hab ich eine Tabelle "table1" mit den Spalten 1. Name vom Typ String 2. ID vom Typ integer 3. Datum vom Typ Datum (dd.mm.jjjj) Ich suche jetzt hierzu eine Abfrage die mir eine Datensatz herausgibt wenn ich eines, zwei oder alle drei vorgegeben habe. Leider muss ich halt eben berücksichtigen das auch zwei der drei Felder lehr sein können. Ungefähr eine Anhnung was ich meine?? Kann mir hier vielleicht jemand ein bisschen helfen und mir eine übersichtliche Lösung nennen. Am besten ohne viel Code zu tippen. Wäre euch sehr verbunden bedanke mich schon im voraus Bis dann.......................... |
Re: SQL-Abfrage bei einer Oracle-Datenbank
Ich würde folgendermassen vorgehen:
Delphi-Quellcode:
- Wie Du siehst baue ich mir hier eine SQL-Anweisung dynamisch zusammen.
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; - 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 |
Re: SQL-Abfrage bei einer Oracle-Datenbank
Im Allgemeinen werden Queries mit Open geöffnet, wenn es eine SELECT-Anweisung ist. Bei DML-Anweisungen (INSERT, UPDATE, DELETE) dagegen ExecSQL bei TQuery, und Execute bei div. anderen Komponenten.
:coder: |
Re: SQL-Abfrage bei einer Oracle-Datenbank
Hi,
Vielen Dank dir nochmal. Hast mir wirklich sehr geholfen. Also nochmal....................... Dankeschön :hello: |
Re: SQL-Abfrage bei einer Oracle-Datenbank
Eine Hand wäscht die andere.
Mit freut es hilfreich zu sein. Gruss Samson :bounce2: P.S. Danke für deinen Lob. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:17 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 by Thomas Breitkreuz