AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken rdb$set_context mit parametern verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

rdb$set_context mit parametern verwenden

Ein Thema von idefix2 · begonnen am 8. Jul 2010 · letzter Beitrag vom 9. Jul 2010
Antwort Antwort
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#1

rdb$set_context mit parametern verwenden

  Alt 8. Jul 2010, 10:49
Datenbank: Firebird • Version: 2.1 • Zugriff über: UIB
Hallo,

Mit dem Befehl
Code:
'select rdb$set_context('USER_SESSION','User_Id',12) from rdb$database';
kann ich der Firebird-Sessionkontextvariable User_Id den Wert 12 zuweisen. Das funktioniert einwandfrei (der Rückgabewert des Select - 0 oder 1 - interessiert mich nicht).

Es gelingt mir aber nicht, diesen Wert 12 via Params zu übergeben. Ich habe mich jetzt schon mit allem möglichen gespielt, mit manuellem Erzeugen des Parameters und mit DescribeBind - egal ob Integer oder Stringtyp, beim SQL-Aufruf bekomme ich eine Exception auf die Art "ungültiger Parametertyp". Weiss jemand, wie das mit der UIBLib funktioniert?.

Es ist nicht sehr schlimm, ich erzeuge den SQL String jetzt einfach dynamisch, es hätte mich aber doch interessiert, wie das richtig gemacht wird.
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#2

AW: rdb$set_context mit parametern verwenden

  Alt 8. Jul 2010, 13:44
versuchs mal damit,
wenn deine Komponenten "EXECUTE BLOCK" verarbeiten können:
SQL-Code:
EXECUTE BLOCK (User_Id varchar(40) = :User_Id)
RETURNS ( User_Id2 varchar(40))
as
begin
  RDB$SET_CONTEXT('USER_SESSION', 'User_Id', User_Id);
  User_Id2 = RDB$GET_CONTEXT('USER_SESSION', 'User_Id'); -- nur zum Test wieder auslesen
  suspend;
end
Alexander
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: rdb$set_context mit parametern verwenden

  Alt 8. Jul 2010, 16:13
Danke für die Antwort - ein funktionierendes Workaround habe ich schon: ich erzeuge einfach den kompletten SQL Befehlsstring unmittelbar vor dem Aufruf und übergebe keine Parameter.

Was ich gerne gewusst hätte, ist, warum gerade bei diesem SQL Befehl die Parameterübergabe nicht so funktioniert wie bei allen anderen, die mir bisher untergekommen sind, und wie sie da funktioniert - weil vielleicht stolpere ich bei irgend einer ganz anderen Sache bei nächster Gelegenheit wieder über ein derartiges Problem.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: rdb$set_context mit parametern verwenden

  Alt 8. Jul 2010, 16:34
Hallo,

also mit IBDAC scheint es zu gehen.

Delphi-Quellcode:
IBCQuery1.SQL.Text := 'select rdb$set_context(''USER_SESSION'',''User_Id'',:TheId) from rdb$database';
IBCQuery1.Prepare;
IBCQuery1.Params[0].DataType := ftInteger;
IBCQuery1.Params[0].AsInteger := 12;
IBCQuery1.Execute;
Ich weiß aber nicht wirklich, ob dir das weiter hilft

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules

Geändert von ChrisE ( 8. Jul 2010 um 16:35 Uhr) Grund: Wechsstabeln verbuchselt ;-)
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#5

AW: rdb$set_context mit parametern verwenden

  Alt 9. Jul 2010, 09:10
Hmm, wenn es mit IBDAC geht, müsste es mit der UIBLIB auch gehen, weil die ist eigentlich nur ein Wrapper um die Firebird API Aufrufe. Werde ich also in meinem Code weiter nach dem Fehler suchen, wenn ich Zeit dafür finde
  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:55 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