Autor Beitrag
xorphix
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 08.10.04 12:38 
hallo erstmal,

ich bin völlig neu in der delphi-programmierung.

SELECT abc_key
FROM defg
WHERE abc_tag = ?

was muss ich an die stelle des fragezeichens setzen,
um den wert aus dem textfeld 'datum' zu holen?
habe schon so einiges probiert, wie datum.Text.
bisher hat aber noch nix funktioniert.

danke
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 08.10.04 12:48 
Hallo erstmal :welcome:

Mal auf die Schnelle:
Hinter dem SELECT trägst mit Komma getrennt die Felder ein, die du haben möchtest. Wenn du alle Felder haben möchtest, schreibst einfach * hinter das SELECT.
Nach dem FROM steht die Tabelle, aus der du die Daten holst.
Das WHERE beschreibt die Bedingung, die die Datensätze erfüllen müssen, die du haben willst.

Da du den Wert aus dem Tabellenfeld 'Datum' haben möchtest, gehört dieses Tabellenfeld hinter das SELECT.
xorphix Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 08.10.04 13:05 
danke für die schnelle antwort.

aber ich wollte nicht wissen, wie eine select-anweisung funktioniert (lol),
sondern etwas anderes. und zwar wie bindet man in der select-anweisung eine variable
oder den wert eines textfeldes ein?

SELECT abc_key
FROM defg
WHERE abc_tag = datum.text

funktioniert nicht. datum is dabei ein textfeld, in das der user ein datum eingeben soll.
Jörg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 71

Win 2000, Win XP
Delphi 1, 3, 5, 7
BeitragVerfasst: Fr 08.10.04 13:46 
Wenn Du eine TQuery hast, kannst Du folgenden Text als SQL-Anweisung eintragen:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
select
  abc_key
FROM 
  defg 
WHERE 
  abc_tag = :datum


:Datum ist dann ein parameter. Den kann man wie folgt setzen:

ausblenden Delphi-Quelltext
1:
2:
3:
  query1.close;
  query1.paramByName('Datum').asString := EditDatum.text;
  query1.open;


Jörg.
Computerhasser
Hält's aus hier
Beiträge: 13



BeitragVerfasst: Fr 08.10.04 14:01 
Also ich bin kein absoluter Delphi-Crack, hab aber neulich etwas ähnliches geschrieben. Versuchs doch mal mit:

Query.Sql.Text := 'select abc_key from defg where (abc_tag = :Parameter1)';
Query.Params.ParamValues['Parameter1'] := Datum.Text;
Query.Open;


Also ich weiss nicht ob das jetzt genau so funktioniert, aber zumindest so oder so ähnlich du den Text auslesen können.´

Ich hoffe mal, ich hab dein Problem richtig verstanden.

Viele Grüsse Computerhasser
xorphix hat folgendes geschrieben:
danke für die schnelle antwort.

aber ich wollte nicht wissen, wie eine select-anweisung funktioniert (lol),
sondern etwas anderes. und zwar wie bindet man in der select-anweisung eine variable
oder den wert eines textfeldes ein?

SELECT abc_key
FROM defg
WHERE abc_tag = datum.text

funktioniert nicht. datum is dabei ein textfeld, in das der user ein datum eingeben soll.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 08.10.04 15:40 
xorphix hat folgendes geschrieben:
danke für die schnelle antwort.

aber ich wollte nicht wissen, wie eine select-anweisung funktioniert (lol),
sondern etwas anderes. und zwar wie bindet man in der select-anweisung eine variable
oder den wert eines textfeldes ein?

SELECT abc_key
FROM defg
WHERE abc_tag = datum.text

funktioniert nicht. datum is dabei ein textfeld, in das der user ein datum eingeben soll.


Sorry, das habe ich falsch interpretiert. Ich dachte, dass du mit Textfeld ein Feld der Datenbank meintest. Daher in ich davon ausgegangen, dass das Propblem schon beim SQL zu suchen ist.

Dein Problem kann so gelöst werden:
ausblenden Delphi-Quelltext
1:
Query1.SQL.Text := 'SELECT abc_key FROM defg WHERE abc_tag = ' + ''' + datum.text + '''';					


Ds Problem sit nämlich, dass im SQL-Statement Strings gequoted (was fürn sch... Wort) werden. Eventuell musst du den Datumsstring auch noch DB-Technisch umwandeln. Bei Oracle ist das zumindest besser, wenn mans macht.
Die Lösung über Parameter ist aber genauso gut, wenn nicht sogar besser, weils im Source besser zu lesen ist und man bei Änderungen des Feldes nur den Parameter ändern muss.