Stefan: Dropdownfeld füllt sich nicht

Hallo,
ich habe folgenden Code in ASP:
<%
sqlstring = "Select * From finger WHERE del='no' order by finger"
exec = conn.Execute(sqlstring)

finger = exec ("finger")+""
Do while not exec.EOF
%>
<OPTION><% =finger %></option>
<%
  rs.MoveNext
loop
rs.close
%>

Mit einer INC Datei öffne ich die Datenbank:
<%
 set rs = Server.CreateObject("ADODB.Connection")
 rs.provider = "Microsoft.Jet.OLEDB.4.0"
 rs.open("f:\web_app\xxx\xxx2\datenbank.MDB")
%>

Allerdings mein Dropdownfeld will sich nicht befüllen. Was mache ich falsch? Vielen Dank für euere Hilfe.

mfg Stefan

  1. Hi stefan,

    und was tut es statt dessen ?

    Soweit ich Dein SQL-String verstehe, ist "finger" eine Tabelle. In Deinem Form scheint es sich eher um ein Feld zu handeln.

    Vielleicht siehst Du Dir das noch mal an

    Ciao
    Hans-Peter

    1. Hallo Hans-Peter,
      die Tabelle heißt finger und das Feld ebenfalls. Könnte es deswegen ein Problem geben?

  2. Hallo,

    Tabellen und Felder sollten Unterschiedliche Namen haben, wie Hans-Peter Rieger schon vorgeschlagen hatte...

    dann:

    finger = exec ("finger")+""
    Do while not exec.EOF

    sollte in der reihenfolge vertauscht werden, sonst taucht der 1. datensatz doppelt auf oder bestimmte server reagieren ärgerlich...

    und was genau soll: finger = exec ("finger")+"" bewirken?

    du willst was dranhängen, aber dieses ist leer ""

    Odium

    1. Hallo,
      Tabellen und Felder sollten Unterschiedliche Namen haben, wie Hans-Peter Rieger schon vorgeschlagen hatte...

      --> Habe die Tabellen umbenannt Tabelle = finger_tbl
      --> Tabelle haießt weiterhin nur "finger"

      finger = exec ("finger")+""
      Do while not exec.EOF

      --> Habe ich auch getauscht

      sollte in der reihenfolge vertauscht werden, sonst taucht der 1. datensatz doppelt auf oder bestimmte server reagieren ärgerlich... und was genau soll: finger = exec ("finger")+"" bewirken?

      --> Sorry, das hatte ich vergessen. Da hatte ich nur etwas ausprobiert und dann +"" stehen lassen.

      du willst was dranhängen, aber dieses ist leer ""
      Odium

      --> Jetzt sieht es also so aus:
      <%
      sqlstring = "Select * From finger_tbl WHERE del='no' order by finger"
      do while not exec.EOF
      exec = conn.Execute(sqlstring)
      finger = exec ("finger")%>
      <OPTION><% =finger %></option>
      <%
      suchliste.MoveNext
      loop
      rs.close
      %>

      --> Nur leider funktioniert immer noch nichts. Ich bin am Ende :-(

      1. Hallo,

        <%
        sqlstring = "Select * From finger_tbl WHERE del='no' order by finger"
        do while not exec.EOF
        exec = conn.Execute(sqlstring)

        diese beiden zeilen müssen vertauscht werden... erst die schleife einleiten und dann das recordset anlegen auf welches du dich beziehst geht nicht...
        set rs = conn.execute(sqlstring)

        <OPTION><% response.write rs("finger") %></option>
        <%
        suchliste.MoveNext
        wieso suchliste dein recorset heißt exec(diesen namen nicht verwenden)
        loop
         rs.close

        Odium

        1. Hi, hallo

          auch das wird nicht viel weiterhelfen ... zumal ich auch glaube, das der nette Stefan gar nicht mehr mitliest ... aber fröhlich immer aufs neue postet

          "conn" ist nicht definiert, es soll die DB Verbindung sein, aber diese hat er ja auf "rs" gesetzt, laut seinem Include etc

          Tschau, tschüß,
          Frank

          1. Das heißt doch nicht, das ich deswegen nichts mehr lese, ich dachte halt, dass ich schneller Hilfe bekomme, wenn eine Nachricht wieder weiter oben steht! Es war halt wirklich dringend!

            Und jetzt wird ständig darauf rumgehackt!

            Aber ich habe es dank euerer Hilfe mitlerweile gelöst und bedanke mich auch dafür.

  3. Hi, hallo

    <%
    sqlstring = "Select * From finger WHERE del='no' order by finger"
    exec = conn.Execute(sqlstring)

    finger = exec ("finger")+""
    Do while not exec.EOF
    %>
    <OPTION><% =finger %></option>
    <%
      rs.MoveNext
    loop
    rs.close
    %>

    Mit einer INC Datei öffne ich die Datenbank:
    <%
     set rs = Server.CreateObject("ADODB.Connection")
     rs.provider = "Microsoft.Jet.OLEDB.4.0"
     rs.open("f:\web_app\xxx\xxx2\datenbank.MDB")
    %>

    conn != rs

    ich empfehle dir, vor dem Programmieren ersteinmal Namenskonventionen zu machen! versuche dir bitte soetwas in der Art anzugewöhnen:

    sql_abfrage1 = "SELECT [bla bla bla] From tabelle"
    set rs_abfrage1 = verbindung.execute(sql_abfrage1)

    "rs" sollte typischerweise für Recordset stehen, wennschon, du nimmst es für eine Verbindung??!!

    "conn" ist bei dir nirgendwo instanziert

    mit "exec" wäre ich sehr vorsichtig, das klingt mir sehr nah in reservierten Wörtern

    was soll exec("finger")+"" bewirken?

    du solltest auch die angelegten Objekte, Recordset (welches durch .execute(sqlstring) entsteht) und die Verbindung, wieder auf nothing setzen nach dem schließen

    Tschau, tschüß,
    Frank