Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Funktion mit Query; wie rückgabeWert? (https://www.delphipraxis.net/166102-funktion-mit-query%3B-wie-rueckgabewert.html)

t0mmy 30. Jan 2012 13:42

Datenbank: MSSQL • Version: 2008 • Zugriff über: ADO

Funktion mit Query; wie rückgabeWert?
 
Hallo!

Und zwar ich habe eine Function mit einem Rückgabewert als String.
In dieser Function lese ich Ich die Katalognummer des jeweiligen Schülers aus
Jetzt möchte ich diese Nummer als Rückgabewert erhalten aber wie funktioniert das mit result?

Delphi-Quellcode:
function ReadKatalognummer(Vorname : String) : String;
begin

  DataModule1.ADOQuery_ReadKatalognr.SQL.Clear;
  DataModule1.ADOQuery_ReadKatalognr.SQL.Text :=
    'SELECT Katalognr '+
    'FROM Schueler '+
    'WHERE Name = '''+Vorname+''' ';
  DataModule1.ADOQuery_ReadKatalognr.ExecSQL;
end;

DeddyH 30. Jan 2012 13:44

AW: Funktion mit Query; wie rückgabeWert?
 
SELECT und ExecSQL passen nicht zusammen. Wie wäre es mit Open?

haentschman 30. Jan 2012 13:45

AW: Funktion mit Query; wie rückgabeWert?
 
Hallo...
Delphi-Quellcode:
function ReadKatalognummer(Vorname : String) : String;
begin
  Result:= ''; //zur Vorsicht
  DataModule1.ADOQuery_ReadKatalognr.SQL.Text :=
    'SELECT Katalognr '+
    'FROM Schueler '+
    'WHERE Name = '''+Vorname+''' ';
  DataModule1.ADOQuery_ReadKatalognr.Open;
  Result:= DataModule1.ADOQuery_ReadKatalognr.FieldByName('Katalognr').AsString;
end;
Nachtrag:
Delphi-Quellcode:
'WHERE Name = '''+Vorname+''' ';
ob da die richtigen Daten kommen ? :gruebel:

Verwendung von Parametern ist angebracht...

schlecki 30. Jan 2012 16:10

AW: Funktion mit Query; wie rückgabeWert?
 
da fällt mir nur das hier ein: klick

p80286 30. Jan 2012 16:38

AW: Funktion mit Query; wie rückgabeWert?
 
Delphi-Quellcode:
function ReadKatalognummer(Vorname : String) : String;
begin
  DataModule1.ADOQuery_ReadKatalognr.SQL.Text :=
    'SELECT Katalognr '+
    'FROM Schueler '+
    'WHERE Name =:Vorname ';
  DataModule1.ADOQuery_ReadKatalognr.Params.Parambyname('vorname').asstring:=vorname;
  DataModule1.ADOQuery_ReadKatalognr.Open;
  if not(DataModule1.ADOQuery_ReadKatalognr.Eof) then
    result:=DataModule1.ADOQuery_ReadKatalognr.FieldbyName('Katalognr').asstring;
  else
    result:=' -- no Data Found --';
  DataModule1.ADOQuery_ReadKatalognr.Close;
end;
so ungefähr sollte es ausssehen aber "Vorname" ????????
Gruß
K-H

Furtbichler 31. Jan 2012 07:25

AW: Funktion mit Query; wie rückgabeWert?
 
Sollte das nicht auch so gehen, und zwar sicher?
Delphi-Quellcode:
Const
  sSQLQuery = 'SELECT Katalognr FROM Schueler WHERE Name=%s';
Var
  R : _Recordset;

begin
  R := ADOConnection1.Execute(Format(sSQLQuery,[QuotedStr(Vorname)]));
  if R.RecordCount>0 then
    Memo1.Lines.add(VarToStr(r.Fields.Item[0].Value));


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz