Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Hente data fra MS SQL stored procedure

3 views
Skip to first unread message

Crazy

unread,
Feb 8, 2012, 3:07:30 AM2/8/12
to
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?

Leif Neland

unread,
Feb 8, 2012, 5:22:52 AM2/8/12
to

> "Crazy" <crazyn...@googlemail.com> skrev i en meddelelse
> news:7e8a6f06-1683-45d4...@j14g2000vba.googlegroups.com...
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


Crazy

unread,
Feb 8, 2012, 10:19:14 AM2/8/12
to
> 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).

Stig Johansen

unread,
Feb 10, 2012, 4:35:47 AM2/10/12
to
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

Crazy

unread,
Feb 10, 2012, 9:31:08 AM2/10/12
to
> 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:

Leif Neland

unread,
Feb 10, 2012, 4:06:31 PM2/10/12
to
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

0 new messages