Entwickler-Ecke

Datenbanken - Etwas in eine Datenbank eintragen


DJ22 - Do 06.02.03 16:27
Titel: Etwas in eine Datenbank eintragen
Ich habe folgende Spalten in der Datenbank(Paradox 7) namens Note: Matrikelnummer(A), Fach(A), Note(I)

Nun habe ich in 2 Stringvariablen namens matnummer und fachl Inhalte gespeichert, nach denen ich in dieser Datenbank mittels SQL suchen will. Wie kann ich SQL mit Variablen benutzen? Momentan sieht meine SQL-Abfrage folgendermassen aus:

Quelltext
1:
2:
SELECT * FROM Note WHERE Matrikelnummer = matnummer AND 
Fach = fachl

Aber das geht leider nicht.

Vielen Dank im Voraus

Dirk

Moderiert von user profile iconTino: Code-Tags hinzugefügt und Absätze entfernt.


smiegel - Do 06.02.03 16:34

Hallo,

dazu gibt es mehrer Wege. Einer könnte soi aussehen:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
...
with Query1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('SELECT * FROM Note');
  SQL.Add('WHERE ((Matrikelnummer=:Param1) AND (Fach=:Param2))');
  Params.ParamByName('Param1').AsString:=matnummer; 
  Params.ParamByName('Param2').AsString:=fachl;
  Open;
  ShowMessage('Gefunden: '+IntToStr(RecordCount));
  Close;
end; // with
...


DJ22 - Fr 07.02.03 10:24
Titel: Danke
Danke für die Antwort

genau das hatte ich gesucht.


Gruß

Dirk


kiwicht - Fr 07.02.03 11:39

ich hab auch noch n vorschlag.... :D

Quelltext
1:
2:
3:
4:
5:
6:
7:
varfach := QuotedStr(AnsiUpperCase(Edit1.Text));

with Query1.SQL do begin
Clear;
Add('SELECT * FROM meinedb WHERE upper(fach) = ' + varfach);
end;
Query1.SQL.Open;

.... viel spass damit.. ;)

mfg


Mausi - Do 13.02.03 09:01
Titel: Vielleicht kannst dus so realisieren

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
with Query1 do 
begin 
  Close; 
  SQL.Clear; 
  SQL.Add('SELECT * FROM Note'); 
  SQL.Add('WHERE (Matrikelnummer=' +#39+ matnummer +#39+')    
              AND    (Fach=' +#39+fachl +#39+')'); 
  Open; 
  Close; 
end; // with

Viel Erfolg

Moderiert von user profile iconTino: Code-Tags hinzugefügt.


bis11 - Do 13.02.03 10:26

Der Code von Kiwicht ist nicht ganz richtig :
Zitat:

varfach := QuotedStr(AnsiUpperCase(Edit1.Text));

with Query1.SQL do begin
Clear;
Add('SELECT * FROM meinedb WHERE upper(fach) = ' + varfach);
end;
Query1.SQL.Open;


Er müsste so aussehen :

Quelltext
1:
2:
3:
4:
5:
6:
7:
varfach := QuotedStr(AnsiUpperCase(Edit1.Text)); 

with Query1.SQL do begin 
  Clear; 
  Add('SELECT * FROM meinedb WHERE Fach = ' + varfach); 
end; 
Query1.Open;