🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: dk.edb.internet.webdesign.serverside.asp
6 messages
6 total messages Started by Crazy Wed, 08 Feb 2012 08:07
Hente data fra MS SQL stored procedure
#350
Author: Crazy
Date: Wed, 08 Feb 2012 08:07
15 lines
2248 bytes
Er der mon nogen der vil hjælpe mig med at give give et simpelt
eksempel (i classic ASP) på hvordan jeg henter data ud fra en SP (som
jeg selv har lavet)?

Jeg synes ikke, at jeg kan finde ud af det, når det er en SP, hvor en
normal SELECT er nem at arbejde med.

Jeg har p.t. lavet min SP således, at den generére en temporær tabel
og så henter jeg data ud fra den tabel med denne SELECT:

SELECT COUNT(*), AppName FROM MyView GROUP BY AppName HAVING
COUNT(*)>1

Vil jeg kunne hente data direkte ud fra min SP (uden at lave temporær
tabel) og lave ovenstående filter?
Re: Hente data fra MS SQL stored procedure
#351
Author: Leif Neland
Date: Wed, 08 Feb 2012 10:22
25 lines
2273 bytes
> "Crazy" <crazynowhere@googlemail.com> skrev i en meddelelse 
> news:7e8a6f06-1683-45d4-8262-37ab6fb68c3f@j14g2000vba.googlegroups.com...
> Er der mon nogen der vil hj�lpe mig med at give give et simpelt
> eksempel (i classic ASP) p� hvordan jeg henter data ud fra en SP (som
> jeg selv har lavet)?

> Jeg synes ikke, at jeg kan finde ud af det, n�r det er en SP, hvor en
> normal SELECT er nem at arbejde med.

> Jeg har p.t. lavet min SP s�ledes, at den gener�re en tempor�r tabel
> og s� henter jeg data ud fra den tabel med denne SELECT:

> SELECT COUNT(*), AppName FROM MyView GROUP BY AppName HAVING
> COUNT(*)>1

> Vil jeg kunne hente data direkte ud fra min SP (uden at lave tempor�r
> tabel) og lave ovenst�ende filter?

Jeg ville
Enten l�gge sorteringen ind i SP'en (evt lave en ekstra SP) til det
Eller lave en UserDefinedFunction, der returnerer tabellen, du s� kan bruge 
i en select med sortering og filter.

Leif
Re: Hente data fra MS SQL stored procedure
#352
Author: Crazy
Date: Wed, 08 Feb 2012 15:19
16 lines
2299 bytes
> Jeg ville
> Enten lægge sorteringen ind i SP'en (evt lave en ekstra SP) til det

OK, det ér muligt at lave endnu en SP, men hvordan læser jeg data ud i
klassisk ASP?
Jeg synes jeg prøvede med noget ala dette og det virkede ikke:

Set details = db.Execute("EXEC MySelfdefinedSP")
While NOT details.EOF
  Set MyColumn  = details.Fields("MyColum")
  Response.Write "["& MyColumn & "]<br>"
  details.MoveNext
WEnd

Der kommer en masse tomme rækker (og jeg har defineret "MyColum" som
output i SP'en).
Re: Hente data fra MS SQL stored procedure
#185
Author: Stig Johansen
Date: Fri, 10 Feb 2012 09:35
78 lines
3376 bytes
Crazy wrote:

> Der kommer en masse tomme r�kker (og jeg har defineret "MyColum" som
> output i SP'en).

Brug evet denne testfunktion, hvor du blot skal rette connectio9n string:
---------------------------------
<%
Dim SQL
Dim IsSelect
Dim databasename
Dim oConn
   databasename = Request.QueryString("databasename")
   Set oConn = Server.CreateObject("ADODB.Connection")
   oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
Server.MapPath("/") + "/../database/" + databasename + ";Persist Security
Info=False"

   SQL = Request.QueryString("SQL")
   if lcase(left(ltrim(SQL),6)) = "select" then IsSelect = true else
IsSelect = false
   if Request.QueryString("showsql") <> "no" then
      %>This is result from <b>"<% = SQL %>":</b><hr/><%
   end if

Dim oRs
Dim filePath
Dim Index
Dim FieldName
Dim Counter

   Counter = 0
   Set oRs = oConn.Execute(SQL)
   if not IsSelect then
      Response.End
   end if
   %><table id="queryresult"><%

'Display the field attributes of the Table
   %><tr><%
   for each FieldName in oRs.Fields
      %><th><% = FieldName.Name %></th><%
   next

   %></tr><%
   Response.Flush
   Do while (Not oRs.eof)
      Counter = Counter + 1
      %><tr><%
      For Index=0 to (oRs.fields.count-1)
         %><td><%
         if not isnull(oRs(Index)) then
         if Request.QueryString("safe") = "off" then
            Response.Write oRs(Index)
         else
            Response.Write Replace(Replace(Replace(oRs(Index),"&","&amp;") _
                               ,"<","&lt;") _
                               ,">","&gt;")
         end if
      end if
      %></td><%
      Next
      %></tr><%
      if right(cStr(Counter),2) = "00" then Response.Flush
      oRs.MoveNext
   Loop
   %><tr><th>Count = <% = Counter
   %></th></tr></table><%
   oRs.close
   oConn.close
   Set oRs = nothing
   Set oConn = nothing
%>
------------------------------------

-- 
Med venlig hilsen
Stig Johansen
Re: Hente data fra MS SQL stored procedure
#186
Author: Crazy
Date: Fri, 10 Feb 2012 14:31
16 lines
2378 bytes
> Brug evet denne testfunktion, hvor du blot skal rette connectio9n string:
> ---------------------------------
> <%
> Dim SQL
> Dim IsSelect
[CUT]

Denne blev jeg desværre ikke meget klogere af (den er unødig kompleks)
- er der mon ikke en der kan oversætte denne, så den fungerer:

Set details = db.Execute("EXEC MySelfdefinedSP")
While NOT details.EOF
  Set MyColumn  = details.Fields("MyColum")
  Response.Write "["& MyColumn & "]<br>"
  details.MoveNext
WEnd
Re: Hente data fra MS SQL stored procedure
#187
Author: Leif Neland
Date: Fri, 10 Feb 2012 21:06
24 lines
2152 bytes
Den 10-02-2012 15:31, Crazy skrev:
>> Brug evet denne testfunktion, hvor du blot skal rette connectio9n string:
>> ---------------------------------
>> <%
>> Dim SQL
>> Dim IsSelect
> [CUT]
>
> Denne blev jeg desv�rre ikke meget klogere af (den er un�dig kompleks)

En funktion, der skal v�re generel, bliver kompleks; den er ikke 
_un�dig_ kompleks :-)

> - er der mon ikke en der kan overs�tte denne, s� den fungerer:
>
> Set details = db.Execute("EXEC MySelfdefinedSP")
> While NOT details.EOF
>    Set MyColumn  = details.Fields("MyColum")
Fjern "Set"
   MyColumn = details("MyColum")

>    Response.Write "["&  MyColumn&  "]<br>"
>    details.MoveNext
> WEnd
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads