Renegade: Problem mit Anbindung einer Datenbank ans Web

Ich will über ein Intarnet per "HTML" ein Datenbankabfrage starten.
Als Server habe ich NT 4.0 mit dem Internet Information Server(IIS) 4.0 laufen.
Einfache Beispiel wie "Hello World" funktionieren, aber sobald ich eine Verbindung zu einer Datenbank erstellen will,
bekomme ich diese Fehlermeldung:

ADODB.Recordset-Fehler '800a0bb9'

Die Anwendung verwendet Argumente, die vom falschen Typ sind oder außerhalb des Gültigkeitsbereichs liegen oder miteinander in Konflikt stehen.

/007/praktika.asp, Zeile 11

Kann mir jemand helfen? Was muß ich tun damit es funktioniert?

Achso, hier ist noch der Quellcode:

<%
        Set conn = Server.CreateObject("ADODB.Connection")
        conn.open "person","",""
        SQL = "SELECT NNAME FROM Personal WHERE NNAME LIKE 'w%' ORDER BY NNAME ASC"
        Set RS = Server.CreateObject("ADODB.Recordset")
        RS.Open sql, conn, adOpenStatic, adLockReadOnly
        RS.MoveFirst ' Zum ersten Datensatz
        do while Not RS.eof
        Response.Write(RS.Fields("NNAME") & "<br>")
        RS.MoveNext ' Zum naechsten Datensatz
        loop
        RS.Close ' Recordset-Objekt schliessen
        conn.Close ' DB-Verbindung schliessen
%>

Vielen Dank schonmal!!!

  1. Ich will über ein Intarnet per "HTML" ein Datenbankabfrage starten...

    Auch Hallo!
    Du solltest vielleicht hinschreiben, dass du mit ASP arbeitest und das Datenbanksystem mitangeben. Ich kenne mich zwar nicht so gut aus, habe jedoch ein Skript aus dem Internet (weiss nicht mehr genau von wo) ein wehnig abgeändert, so dass ich nun ein SQL-Statement in ein Textfeld eingeben kann und dieses ausgeführt wird. Wenn es sich um ein SELECT-Statement handelt wird eine Tabelle mit dem Resultat ausgegeben. Achja, das DBS ist MS Access. Es sollte jedoch kein Problem sein, es auf ein anderes DBS anzupassen. Hier der Quellcode:

    <%@ Language=VBScript %>
    <% Option Explicit %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
     <title>SQL testen</title>
    </head>
    <body>
    <%
    Dim strDB
    Dim strSQLDflt, strSQL
    Dim arrSQL
    Dim blnShowTable, blnExecSQL
    Dim objDB
    Dim objExSQL
    Dim Fields

    strDB = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("..\fpdb\names1.mdb") 'Dies für andere DB ändern!
    strSQLDflt = "SELECT * FROM Names1"
    strSQL = Trim(Request.Form("strSQL"))
    blnShowTable = 0
    blnExecSQL = 0

    If (strSQL = "") Then strSQL = strSQLDflt

    arrSQL = Split(strSQL," ")
    If UCase(arrSQL(0)) = "SELECT" Then blnShowTable = 1

    blnExecSQL = CLng(Request.ServerVariables("CONTENT_LENGTH"))
    %>
    <form method="post">
    <table border="0">
      <tr>
         <td valign="top">SQL Statement:</td>
         <td>
           <textarea name="strSQL" rows="8" cols="60"><%= strSQL %>
           </textarea>
         </td>
      </tr>
      <tr>
          <td colspan="2" align="right">
            <input type="submit" value="Execute">
          </td>
      </tr>
    </table>
    </form>
    <%
    If blnExecSQL > 0 Then
      Set objDB = Server.CreateObject("ADODB.Connection")
      objDB.Open strDB

    On Error Resume Next
      Set objExSQL = objDB.Execute(strSQL)

    If Err.Number <> 0 Then
        Response.Write "<p>Error: <br>"
        Response.Write Err.Source & ", " & Err.Description & "</p>"
      Else
        If blnShowTable = 1 Then
          Response.Write "<table border=1 cellpadding=5>"
          Response.Write " <tr>"
          For Fields = 0 To objExSQL.Fields.Count -1
            Response.Write "  <th>" & objExSQL.Fields(Fields).Name & "</th>"
          Next
          Response.Write " </tr>"

    While Not objExSQL.EOF
            Response.Write " <tr>"
            For Fields = 0 To objExSQL.Fields.Count - 1
              Response.Write "  <td>" & objExSQL(Fields) & "</td>"
            Next
            Response.Write " </tr>"
            objExSQL.MoveNext
          Wend

    Response.Write "</table>"
        End If
      End If

    Set objExSQL = Nothing
      Set objDB = Nothing
    End If

    %>
    </body>
    </html>

    Für dich ist anscheinend die Ausgabe in die Tabelle wichtig. Du kannst das überflüssige Zeug löschen und das SQL-Statement (strSQL)  nach deinem Bedürfniss setzen. Ich habe dir den ganzen Code abgedruckt, damit du ein bisschen rumspielen kannst (hat mir viel geholfen). Ich hoffe, dass ich dir helfen konnte.

    mfg

    Thomas

    PS: Kennst du www.aspheute.com? die haben z.T. sehr gute Artikel zum Thema ASP und DB.