Entwickler-Ecke

Datenbanken - SQL Abfrage


HotLaps - Mi 18.12.02 11:53
Titel: SQL Abfrage
Hallo!

Ich arbeite mit Delphi 7 und einer Oracle 8.1.7 Datenbank.

Ich würde gerne aus Delphi heraus eine SQL Abfrage starten die mir genau einen Datensatz zurückliefert (besteht nur aus einer Spalte), und
das was da zurückkommt möchte ich einer Variablen zuweisen.

Funktioniert das, und wenn ja, wie?


lkz633 - Mi 18.12.02 12:09

Hi,


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
query.close;
query.sql.clear;
query.sql.text('select spaltenname from tabelle where spaltenname= ???);
query.open;

query.first;

label1.caption:= query.fieldbyname(spaltenname).asfieldtype;


Hoffe das hilft
Gruss lkz633

Edit: Ich war schneller :D


Alfons-G - Mi 18.12.02 12:11

Das exakte Vorgehen hängt davon ab, ob Du die BDE-Komponenten oder Oracle-spezifische DB-Kompos verwendest, aber im Prinzip ist es bei allen Query-Komponenten gleich. Ich gehe davon aus, dass Du irgendeine Query-Komponente platziert hast:

Quelltext
1:
2:
3:
4:
5:
6:
7:
strSQL := 'select MeinFeld from MeineTabelle where MeineBedingung = xxxx...';
MeineQuery.SQL.Clear;
MeineQuery.SQL.Add (strSQL);
MeineQuery.Open;
MeineVariable := MeineQuery.Fields[0].AsString;
MeineQuery.Close;
// Alternativ: ... := MeineQuery.FieldByName('MeinFeld').AsString oder natürlich AsInteger, AsFloat, AsDate ...
Du musst natürlich bei der where-Bedingung der Abfrage sicher stellen, dass genau ein Datensatz als Ergebnis zurückkommt.

:idea:


HotLaps - Mi 18.12.02 12:45

Vielen Dank!


Quelltext
1:
2:
3:
4:
5:
6:
strSQL := 'select MeinFeld from MeineTabelle where MeineBedingung = xxxx...'; 
MeineQuery.SQL.Clear; 
MeineQuery.SQL.Add (strSQL); 
MeineQuery.Open; 
MeineVariable := MeineQuery.Fields[0].AsString; 
MeineQuery.Close;



Hat funktioniert!

Code-Tags aktiviert von Klabautermann