Toon posts:

[SQL 2000] Check of var leeg is in sp

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoe kan je binnen een stored procedure checken of een variabele leeg is of niet?

Ik heb een statistiekendatabase opgezet om het gebruik van MS CMS2000 te monitoren en wil de gebruiker een link geven van de laatste pagina hij/zij bezocht heeft.

Dit geldt alleen voor de mensen waarvan het NT-account gevuld staat in de database hierop wil ik controleren binnen de sp om de IIS te ontlasten. Er zijn ook records in de database waar de NT-account NULL is, dat zijn de europese gebruikers.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Je kan het volgens mij checken met
veld IS NULL

Verwijderd

Topicstarter
het gaat niet om een veld, maar om de variabele die gebruikt wordt bij aanroepen van de sp.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Geef even de code, dan praat het makkelijker.

Verwijderd

Topicstarter
ik heb nog geen code gemaakt, wilde dit even checken voordat ik bezig ga met het maken van de sp.

Sp's zijn ook nog nieuw voor me, nooit tijd voor genomen om me in te verdiepen. Moet nu noodgedwongen, omdat CMS2000 bestwel zwaar is voor de IIS. Moet dus zo min mogelijk embedded SQL gebruiken.

Zal iets van zo moeten gaan gok ik.... :?
code:
1
2
3
4
5
6
CREATE PROCEDURE sp_lastvisit  (@HITUSER as varchar(100))
AS
If @HITUSER <> "" Then
   SELECT * from HITS WHERE HITUSER = @HITUSER
End If
GO

Je kan ook achteraf gaan filteren dat de waarde van het veld dat je terugkrijgt niet NULL is, maar waarom meer records ophalen dan strikt noodzakelijk.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

volgens mij dus wel met
@HITUSER IS NOT NULL

VOlgens mij zal de query nooit wat terug leveren als @HITUSER null is.

Waar ben je van plan de resultaten van de stored procedure te laten?

Verwijderd

Topicstarter
Ik wil in ASP de resultaten in een recordset droppen, ik meen dat dat zo moet kunnen:
code:
1
set RS = cn.execute "sp_lastvisit '" & Request.ServerVariables("REMOTE_USER") & "'"

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op dinsdag 11 december 2001 09:50 schreef Goodielover het volgende:
Waar ben je van plan de resultaten van de stored procedure te laten?
Sinds wanneer heeft een stored procedure resultaten? :)

Dit soort dingen horen toch juist in een function ?

Verwijderd

Topicstarter
GoT it ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
SP:
CREATE PROCEDURE sp_lastvisit  (@HITUSER as varchar(100))
AS
If NOT @HITUSER is NULL
   SELECT TOP 1 HITURL from yamanet_hits WHERE HITUSER = @HITUSER ORDER BY HITDATETIME desc
GO

ASP:
<!--#include virtual="/NR/System/Access/Authenticate.inc"-->
<%
Response.Expires = 0

Dim DbConnStr, DbConn, strHITUSER, Rs

strHITUSER  = Request.ServerVariables("REMOTE_USER")

DbConnStr   = "driver={SQL Server};server=SERVER;uid=USER;pwd=PWD;database=DB"
Set DbConn  = CreateObject("ADODB.CONNECTION")
Set Rs       = CreateObject("ADODB.RECORDSET")

DbConn.Open DbConnStr
Rs.Open "sp_lastvisit '" & strHITUSER & "'", DbConn

If Rs.EOF THEN
    Response.Write "Your last visit wasn't logged."
Else
    Response.Write "<b><a href='" & Rs("HITURL") & "' target='_top'>Your last visited page</a></b>"
End If

Rs.Close
DbConn.Close

Set Rs      = Nothing
Set DbConn   = Nothing
%>
Pagina: 1