ezz


  ezz > edb.internet.* > edb.internet.webdesign.serverside.asp

 #1  
08.02.2012, 07:07
Crazy
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?
 #2  
08.02.2012, 09:22
Leif Neland
> "Crazy" <crazynowhere> skrev i en meddelelse
> news:8c3f
> 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
 #3  
08.02.2012, 14:19
Crazy
> 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).
 #4  
10.02.2012, 08:35
Stig Johansen
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
%>
------------------------------------
 #5  
10.02.2012, 13:31
Crazy
> 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
 #6  
10.02.2012, 20:06
Leif Neland
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")
Lignende emner
@@Identity i stored procedure

Hej, Jeg sidder og roder lidt med en stored procedure i MS SQL. Jeg vil gerne gemme en @Identity værdi en variabel som skal bruges "længere nede" i min procedure. CREATE...

SQL Server - Stored procedure

Hej NG. Jeg sidder og kæmper med en stored procedure i MS SQL server. SELECT tbl1.DateTime, tbl1.Header,

MS SQL: View vs. Stored Procedure

Er der én der ganske kort kan forklare hvornår man bruger Views vs Stored Procedures? De kan jo næsten det samme? Bliver de ikke begge genereret ved kaldet? og bearbejdet...

Stored Procedure (MSSQL)

Kan det lige sig gøre at retunerne ID på den user man lige har oprettet? Uden at lave en Select sætning. Findes der en kommando til det+


Al tidssætning er GMT. Klokken er nu 16:15. | Privacy Policy