DB-Abfrage mit ASP richtig???

Callya

Grünschnabel
Hi,
ich hab mich bisher noch nicht mit ASP beschäftigt. ICh wollte nur eine simple ausgabe einer Tabelle auf einem MS SQL Server 2000 in eine Tabelle auf einer Seite haben. ICh hab da ein tutorial gefunden, aber wenn ich des alles so mach, dann klapps ned. Kann mir jemand helfen den Fehler zu finden?
Die ASP-Datei sieht folgendermaßen aus:

<%@LANGUAGE="VBSCRIPT" %>
<%
option explicit
Response.Buffer = true
on error resume next
dim oConn, oRS, oFld
set oconn = Server.CreateObject("ADODB.Connection")
set oRS = Server.CreateObject("ADODB.Recordset")
oConn.ConnectionString = "DSN=PC-BestandSQL"
oConn.Open

oRS.Open "SELECT * FROM use_cpu", oConn
Response.Write("<HTML>" & chr(13))
Response.Write("<head>" & chr(13))
Response.Write("<title>ASP-Datenbank</title>" & chr(13))
Response.Write("</head>" & chr(13))
Response.Write("<body>" & chr(13))
Response.Write("<table border=1 cellpadding=0 cellspacing=0>" & chr(13))
Response.Write(" <tr>" & chr(13))
for Each oFld in oRS.Fields
Response.Write(" <td>" & oFld.Name & "</td>" & chr(13))
next
Response.Write(" </tr>" & chr(13))
Response.Write(" <tr>" & chr(13))
Response.Write(" <td>")
Response.Write(oRS.GetString(,,"</td>" & chr(13) & " <td>","</td>" & chr(13) & " </tr>" & chr(13) & " <tr>" & chr(13) & " <td>","--null--"))
Response.Write(" </td>" & chr(13))
Response.Write(" </tr>" & chr(13))
oRS.Close
set oRS = Nothing
oConn.Close
set oConn = nothing

Response.Write("</table>" & chr(13))
Response.Write("</body>" & chr(13))
Response.Write("</html>" & chr(13))
%>

die DSN ist PC-BestandSQL und die Tabelle ist use_cpu. Der SQL-Server heißt Hades. Die Datenbank heißt PC-BestandSQL. Der Web-Server iss IIS 5 (auf windows 2000 Advanced Server).

Das genaue Prblem ist, dass keine Daten ausgegeben werden.

Bitte helft mir. Ich hab keine Ahnung, worans liegen könnte.

cu
Callya

PS: Sobald ich Zeit hab beschäftige ich mich ASP...:)
 
Zuletzt bearbeitet:

fluessig

Royal Blue
also ich hab weder ms sql verwendet noch vbscript, aber ich kann ja mal fragen, was mir komisch vorkommt.
1.Deine SQL Abfrage
oRS.Open "SELECT * FROM use_cpu", oConn
: sollte da nicht in den "" ein ; am Ende stehen.
Da dieser Fehler aber nicht angegeben wird, denke ich ist das nicht das Problem.
Jetzt kommt 2. und damit mein Problem imt vbscript:
In deiner For Each... Schleife verwendest du die vvorher deklarierte Variable oFlD ohne ihr vorher einen Datentyp zuzuweisen. Ich weiß zwar, dass das unter vba gehen kann, aber da ich nur java/c# mache ich mir da schon Gedanken (bei mir würden sofort 1000 Fehlermeldungen kommen)
Vielleicht hab ich dich ja unbewusst auf irgendwas gebracht, was dir weiterhilft

fluessig
 

Paranoia

Erfahrenes Mitglied
hey..

schreib mal ein ' vor "on error resume next":
Code:
'on error resume next
so wie der script jetzt ist, wird bei jedem fehler auf die nächste code-zeile gesprungen. da dies jetzt mit dem ' asugeREMt ist, wird dir der browser sofort eine fehlermeldung anzeigen. du weisst jetzt, wo genau der fehler ist. wenn du den IE benutzt, zeigt dieser manchmal keine fehler an, sondern bringt nur den standard-spruch "seite nicht gefunden". dann musst du netscape benutzen. damit klappt es.

lass denn script nun mal laufen. vielleicht siehst du den fehler grad. ansonsten poste mal die fehlermeldung.

greetings para
 

koma666

Mitglied
also ich mach das immer so :)

Code:
Set DBconn = Server.CreateObject("ADODB.Connection")
DBconn.Open "<Server>","<benutzer>","<passwort>"
sql = "select * from tabelle"
set myrs = DBconn.execute(sql)

do while not myrs.eof
 'hier kannst du dann mit myrs("feldname") die daten auslesen
 response.write myrs("feld1") & "<br>"
 myrs.movenext
loop
 

theluke

Grünschnabel
probiersmal so

Hallo,
so gehts auch

<%@LANGUAGE="VBSCRIPT" %>
<%
option explicit
Response.Buffer = true
'on error resume next
dim oConn
dim oRS
dim oFld
set oconn = Server.CreateObject("ADODB.Connection")
set oRS = SERVER.CREATEOBJECT("ADODB.Recordset")
oConn.ConnectionString = "DSN=PC-BestandSQL"
oConn.Open

SQL = "SELECT * FROM use_cpu"
oRS.Open SQL, oConn
%>

und ich denke mir, du musst nicht immer response.write schreiben.
Ist das nicht zu umständlich?