BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- SQL Abfrage Environment.UserName (http://www.black-board.net/thread.php?threadid=23058)


Geschrieben von 127.0.0.1 am 21.11.2007 um 15:24:

  SQL Abfrage Environment.UserName

Hallo SQL Freunde. Ich will im VISUAL STUDIO 2005 SQL Abfragen auf eine Oracle Datenbank ausführen um den aktuellen Windows User mit dem Benutzer aus einer Datanbank Tabelle zu vergleichen.

Mit "Environment.UserName" kann ich den Windows Usernamen ermitteln.
Wieso bekomme ich bei der ersten Abfrage keine Werte zurück. Wer kann mir helfen?

SELECT b.ID, b.NAME, B.VERSANDSTELLE
FROM BENUTZER
WHERE b.NAME= 'Environment.UserName'

Das ist die zweite Abfrage:

SELECT b.ID, b.NAME, B.VERSANDSTELLE
FROM BENUTZER
WHERE b.NAME= 'BENUTZERNAME'

hier werden Werte ausgegeben für den angegeben BENUTZERNAMEN ausgegeben.



Geschrieben von phlox81 am 21.11.2007 um 16:06:

 

Er scheint in der DB nach dem Benutzernamen "Environment.UserName" zu suchen.
Würde ich mal vermuten. Oder evtl. ist der Username nicht deckungsgleich mit DB.



Geschrieben von 127.0.0.1 am 21.11.2007 um 17:03:

 

Ich habe dabei die Groß und Kleinschreibung beachtet.
Habe auch UCASE (Environment.UserName) hinterlegt. Aber keine Werte erhalten.



Geschrieben von Misel am 21.11.2007 um 18:29:

 

Bekommst Du damit überhaupt Daten zurück? Prüfe mal bitte auf einen SQL-Fehler.

b ist in Deinem Beispiel gar nicht definiert, weil es nach Benutzer fehlt. Vielleicht ist es bei Oracle nicht notwendig, weil nur eine Tabelle abgefragt wird, aber MSSQL spuckt mir hier spontan einen Fehler aus.


Hier der Code, damit Du siehst, was ich meine,
code:
1:
2:
3:
4:
5:
SELECT b.ID, b.NAME, B.VERSANDSTELLE
FROM BENUTZER b
WHERE b.NAME= 'Environment.UserName'



Geschrieben von phlox81 am 21.11.2007 um 19:02:

 

Zitat:
Original von 127.0.0.1
Ich habe dabei die Groß und Kleinschreibung beachtet.
Habe auch UCASE (Environment.UserName) hinterlegt. Aber keine Werte erhalten.


Bist du denn sicher das Environment.UserName im SQL Statement mit dem Usernamen ersetzt wird?



Geschrieben von phoenix am 21.11.2007 um 19:04:

 

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
 

SELECT 
         B.ID, 
         B.NAME, 
         B.VERSANDSTELLE

FROM BENUTZER B

WHERE B.NAME = 'Environment.UserName' 



Wieso fragst du überhaupt mit Bezeichner ab, wenn du ja eh nur aus einer Tabelle abfragst, kannst du dir das ja eigentlich schenken.

Environment.UserName ist laut meinen Erkenntnissen einen Methode vom .NET Framework, diese kannst du nicht in SQL Abfragen direkt verwenden.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH