AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Select ... into Variable
Thema durchsuchen
Ansicht
Themen-Optionen

Select ... into Variable

Ein Thema von Quake_MSC · begonnen am 10. Sep 2009 · letzter Beitrag vom 24. Sep 2009
Antwort Antwort
Quake_MSC

Registriert seit: 10. Sep 2009
7 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Select ... into Variable

  Alt 10. Sep 2009, 09:20
Hallo Zusammen,

ist es möglich in einem SQL Select einen Wert in eine Variable umzuleiten (wie in einer Prozedur)?

Bsp.:
Delphi-Quellcode:
with QueryMyReport do
BEGIN
SQLcommand:= 'select name1 from sadr_adresse where adr_adrid = 100000 into :sNAME1';
SQL.Clear;
SQL.Add(SQLcommand);
ParambyName('sNAME1');
OPEN;
// hier würde die Behandlung der Variablen sNAME1 kommen
CLOSE;
END;
Oracle quittiert das, dass die Bindvariable nicht existiert.

Kennt jemand die korrekte Vorgehensweise? Oder gibt es etwas besseres?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Select ... into Variable

  Alt 10. Sep 2009, 09:24
So weit ich weiß dürfen Parameter nur für Werte (also DB-Felder) und nicht für Tabellen (ein String würde doch mit '' umgeben werden) verwendet werden...
Aber Du könntest ja einfach einen normalen Select machen und dann Open und das Speichern in eine Variable (oder mehrere) manuell erledigen, dürfte kaum mehr Code sein...
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Select ... into Variable

  Alt 10. Sep 2009, 09:29
Hallo,

die Frage ist wozu ???
Vielleicht meinst du ja sowas ?

Delphi-Quellcode:
var
  sStr: String;


with QueryMyReport do
BEGIN
  SQLcommand:= 'select name1 As sName1 from sadr_adresse where adr_adrid = 100000';
  SQL.Clear;
  SQL.Add(SQLcommand);
  OPEN;
  try
  // hier würde die Behandlung der Variablen sNAME1 kommen
    sStr:= FieldByName('sName1').AsString;
  finally
    CLOSE;
  end;
END;

Ich habe extra sStr als Variable genommen,
weil Delphi-Variablen nicht einfach per SQL gefüllt werden können.


Heiko
Heiko
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Select ... into Variable

  Alt 10. Sep 2009, 10:04
Ganz zu schweigen davon, dass es viel einfacher ginge das Ergebnis direkt abzufragen... (siehe hoikas code )

In Oracle kannst du nicht einfach PL/SQL und reines SQL vermischen.
Um ein SELECT-INTO auszuführen, musst du in einem PL/SQL Block sein, außerdem kommt das INTO direkt nach dem SELECT-Teil, nicht am Ende der Abfrage:
SQL-Code:
begin
   select name1
   into :name1
   from sadr_adresse
   where adr_adrid = 100000;
end;
Du musst auch auf den Fall reagieren, dass vllt nix gefunden wird (denn dann wirft Oracle eine Exception!):
SQL-Code:
begin
   select name1
   into :name1
   from sadr_adresse
   where adr_adrid = 100000;
exception when no_data_found then
  :name1 := null;
end;
Dieses SQL ist aber keine Abfrage mehr, und müsste dann mit Execute, ExecSql oder wie auch immer es mit deiner Zugriffsbibliothek heißt, ausgeführt werden.

Wenn du es einfach als normale Abfrage ausführst, wie Hoika es beschrieb musst du dir darum keine Sorgen machen.


Es ist übrigens kein Zufall, dass dieses Portal ein Datenbank-Forum hat, in dem man nach der Datenbank und den Zugriffsbibliotheken gefragt wird.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
10. Sep 2009, 10:07
Dieses Thema wurde von "Daniel" von "Object-Pascal / Delphi-Language" nach "Datenbanken" verschoben.
Quake_MSC

Registriert seit: 10. Sep 2009
7 Beiträge
 
RAD-Studio 2009 Arc
 
#6

Re: Select ... into Variable

  Alt 10. Sep 2009, 12:23
OK! Super Antworten: ich werde rangehen und die "einfachere" Variante
einsetzen: ich nehme den "reinen" SQL Code von HOIKA.

Melde mich dann nochmals...

Vielen Dank für das "Verschieben" in die Kategorie "Datenbanken".
  Mit Zitat antworten Zitat
Quake_MSC

Registriert seit: 10. Sep 2009
7 Beiträge
 
RAD-Studio 2009 Arc
 
#7

Re: Select ... into Variable

  Alt 24. Sep 2009, 10:18
So, jetzt konnte ich endlich den Code erweitern:

Delphi-Quellcode:
with QueryMyReport do
BEGIN
SQLcommand:= 'select name1 from sadr_adresse where adr_adrid = 100000';
SQL.Clear;
SQL.Add(SQLcommand);
ParambyName('sNAME1');
OPEN;
with QueryMyReport DO
 BEGIN
 while not EOF do
     BEGIN
       sName:= FieldbyName('name1').AsString;
   // hier kommen weitere Anweisungen...
     END;
 END;
QueryMyReport.Close;
END;
Als connector benutze ich übrigens den TOraSession von Devart.

Vielen Dank für eure Hilfe.

Gruss
Quake_MSC
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 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