Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Rave: Parameter (https://www.delphipraxis.net/63965-rave-parameter.html)

fkerber 25. Feb 2006 12:17


Rave: Parameter
 
Hi!

Leider funktioniert im Moment die nevrona-Seite im Moment nicht, deswegen frage ich mal hier, auch wenn dort evtl. die Antwort zu finden wäre.

Ich möchte folgendes machen:
Ich würde gerne einen Parameter übergeben, sodass ich dann einen Datensatz auswählen kann. Ich habe also als Query für ein DriverDataView folgendes:
SQL-Code:
Select
  T1.Firma,
  T1.Anrede,
  T1.Name,
  T1.Vorname,
  T1.Straße,
  T1.Postleitzahl,
  T1.Ort
From
  Kunden T1
Where
  T1.Kundennr=Kundennummer
So, jetzt würde ich gerne kundennummer als Parameter übergeben, aber wie?
Wenn ich in Delphi nur ein SetParam mache, dann kommt die Meldung
Zitat:

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message 'ParameterKundennummer hat keinen Standardwert'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Wenn ich irgendwo den Parameter noch eintrage (Report, Page, QueryParams) hat das keine Auswirkungen. Was muss ich tun?


Ciao Frederic

Keldorn 25. Feb 2006 17:05

Re: Rave: Parameter
 
Hallo

wie sieht denn dein Delphi-Part zum Paramter aus?
Du mußt ihn erst übergeben und auch dein Project etwas anders öffnen:
http://www.delphipraxis.net/internal...rave+parameter

Mfg Frank

fkerber 25. Feb 2006 17:23

Re: Rave: Parameter
 
Hi!

Ja, das funktioniert, das ist nicht das Problem.

Was aber nicht geht, ist das Nutzen des Parameters in meiner Query (siehe oben).
Da kommt immer diese Meldung.


Ciao Frederic

MrSpock 25. Feb 2006 17:35

Re: Rave: Parameter
 
Hallo Frederic,

in der Query muss der Parameter mit einem Doppelpunkt beginnen:

SQL-Code:
Select
  Firma,
  Anrede,
  Name,
  Vorname,
  Straße,
  Postleitzahl,
  Ort
From
  Kunden
Where
  Kundennr=:Kundennummer
Dann kannst du mit z.B.

Delphi-Quellcode:
MyQry.ParamByName('Kundennummer').AsIntereger = 17
den Parameter setzen.

fkerber 26. Feb 2006 01:49

Re: Rave: Parameter
 
Hi!

Der Doppelpunkt war schonmal ein guter Tipp. Er beseitigt die Fehlermeldung, aber funktionieren tuts leider noch nicht.
Also:

Ich habe ein Rave-Report-Datei. Diese enthält unter anderem ein DriverDataView. Dieses wiederum hat die "Eigenschaft" Query. Da steht dann drin:
Zitat:

Select
T1.Firma,
T1.Anrede,
T1.Name,
T1.Vorname,
T1.Straße,
T1.Postleitzahl,
T1.Ort
From
Kunden T1
Where
T1.Kundennr=:Kundennummer
Außerdem steht in der Parameter-Eigenschaft des Reports und der Query ebenfalls Kundennummer drin.

Das setzen in Delphi sieht folgendermaßen aus:
Delphi-Quellcode:
rvproject.open;
rvproject.SetParam('Kundennummer','4');
rvproject.execute;
Eine Ausgabe in einem DataText mittels Param.Kundennummer geht. Es wird allerdings im Memo, dass auf die Daten der DriverDataView zugreift nix angezeigt. Gebe ich statt dem Parameter direkt eine Zahl an, gehts.
Anscheinend isses aber auch kein Problem wegen Integer/String. Auch ein Vergleich eines Strings (T1.Name) mit dem Parameter bringt nix.


Ciao Frederic

merlin17 27. Feb 2006 06:51

Re: Rave: Parameter
 
evtl. die QueryParam in dem QueryObjekt nicht definiert ??

Rave nutzt indirekt die RvParams über die QueryParam.
Im ersten Moment hört sich das unnötig an, bietet aber mehr Flexibilität, da auch
aus Reports die Params übernommen werden können.

:-) thomas, TeamNevrona

fkerber 27. Feb 2006 09:30

Re: Rave: Parameter
 
Hi!

Wenn ich bei den QueryParams des DriverDataView noch Kundennummer dazu schreib, dann kommt folgende Fehlermeldung:
Zitat:

---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message 'Syntaxfehler (fehlender Operator) in Abfrageausdruck 'T1.Kundennr=''. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------

Hilft es was, wenn ich die rav-Datei hier anhänge oder braucht man zum Nachvollziehen auch die Datenbank?


Ciao Frederic

merlin17 27. Feb 2006 09:32

Re: Rave: Parameter
 
hang mal die rav an oder "pm"

:-) thomas, TeamNevrona

merlin17 27. Feb 2006 09:54

Re: Rave: Parameter
 
Hi,

die queryParam sollte wie folgt geändert werden:
Kundennummer=Param.Kundennummer('4711')

und als Tipp: bei manchen DataProvidern muss zw. dem = und dem : des Paramter ein #32 bzw. kein #32 stehen...


:-) thomas, TeamNevrona

fkerber 27. Feb 2006 09:59

Re: Rave: Parameter
 
Hi!

Vielen Dank. Das wars.
Ist 4711 dann der Standardwert, wenn der Parameter nicht übergeben wird?


Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:05 Uhr.
Seite 1 von 2  1 2      

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