MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 15.05.2018, 14:28   #1
Ralph71
MOF User
MOF User
Standard T-SQL : MSSQL 2012 - Teil aus CONNECTIONPROPERTY('client_net_address')

Hallo zusammen,

bin wie jeder einmal in diesem Bereich eher Anfänger.
SQL_Express2012
Ich habe einen View gebaut, der in der WHERE-Bedingung so aussieht:

WHERE (IP =
(SELECT CONNECTIONPROPERTY('client_net_address') AS IPAdresse))

Funktioniert alles bestens. Er holt sich die IP des Client und liefert das entsprechende Ergebnis.

Sinn macht es in meiner Konstellation aber nur, wenn er künftig nicht die vollständige IP ermittelt, sondern nur den "Adressraum".
Beispiel:
Ergebnis aus SELECT CONNECTIONPROPERTY('client_net_address') AS IPAdresse)
aktuell: 192.168.5.23
künftig: 192.168.5

oder
aktuell: 192.168.152.13
künftig: 192.168.152

Wie kann ich das realisieren?
Vielen Dank!
Ralph71 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2018, 15:19   #2
hcscherzer
MOF Guru
MOF Guru
Standard

Mit mehrfachem Aufruf der Funktion CHARINDEX() kannst Du die Position des dritten Punktes ermitteln.
Und mit der Funktion LEFT() die Zeichen bis dahin herausholen.

Nebenbei ist der Alias in der WHERE Klausel nicht notwendig.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 06:42   #3
Ralph71
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Hans-Christian,

danke für Deine Antwort. Dass ich den String (IP) zerlegen muss war mir schon klar. Allerdings ist das ja nicht im View möglich, sondern muss wie Du schon geschrieben hast über eine Funktion geschehen. Und da is bei mir eben Ende.
Wie übergebe ich aus dem View die IP an die Funktion?
Wie bekomme ich das Ergebnis wieder in den View zurück?
Es fehlt also etwas an den Basics...
Ralph71 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 09:26   #4
Ralph71
Threadstarter Threadstarter
MOF User
MOF User
Standard

Edit: Wie kann man eine selber programmierte Funktion in der Datenbank ablegen um sie dann mittels SELECT immer verwenden zu können.
Bei mir will er die Datei ständig lokal am PC ablegen....

Geändert von Ralph71 (16.05.2018 um 09:55 Uhr). Grund: gute Frage
Ralph71 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 09:47   #5
hcscherzer
MOF Guru
MOF Guru
Standard

Es ist im SELECT möglich aber nur mit verschachtelten Funktionsaufrufen. Das wird aber leicht unleserlich deshalb ist Dein Ansatz, dies in einer Funktion zu realisieren, korrekt.

Um die Funktion anzulegen, solltest Du am besten mit einem Management Studio arbeiten, in dem Du das SQL Script schreiben und auch gleich ausprobieren kannst.

Der Befehl ist CREATE FUNCTION ...

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 10:08   #6
Ralph71
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ich verwende das MS SQL Managementstudio. Anders macht das ja keinen Sinn (Alternative ist noch VS)

Wie lege ich die Funktion an?
Ich drücke [Neue Abfrage] und schreibe entsprechenden Code rein.
Wenn ich die Abrage speichern will, dann will er das als lokales File am PC ablegen und nicht in der Datenbank ZB unter "Funktionen"....


Oder geht das nicht, weil es eine EXPRESS-Version ist?
Ralph71 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 11:09   #7
Ralph71
Threadstarter Threadstarter
MOF User
MOF User
Standard

Youtube ist mein Freund.
Basics hab ich jetzt verstanden....
https://www.youtube.com/watch?v=xwkgBdQC8QQ
Ralph71 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2018, 13:03   #8
Ralph71
Threadstarter Threadstarter
MOF User
MOF User
Standard

habs....

Wenns jemand benötigt:

.....

ALTER FUNCTION [dbo].[fgetIP]
(

--@IP varchar(15)
)
RETURNS varchar(15)
AS
BEGIN

DECLARE @IP2 varchar(15);
Declare @pos1 int;
Declare @pos2 int;
Declare @pos3 int;

SELECT @IP2 = convert(varchar, (SELECT CONNECTIONPROPERTY('client_net_address')))
SET @pos1 = CHARINDEX('.',@IP2);
SET @pos2 = CHARINDEX('.',@IP2,@pos1+1);
SET @pos3 = CHARINDEX('.',@IP2,@pos2+1);
SET @IP2 = LEFT(@IP2,@pos3-1);

RETURN @IP2

END

Aufruf über View:
... FROM dbo.T_IP
WHERE (IP = dbo.fgetIP())


Danke für den Denkanstoß.... :-)
Ralph71 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.