Sonic: RecordCount funktioniert nicht!!! Help!!!

Hallo,

ich habe hier ein RecordSet, das 100% Datensätze liefert:

Abfrage = "Select ..........."
Set rs = connection.Execute(Abfrage)

Wenn ich aber Anzahl der Datensätze ausgebe, kriege ich immer -1. Was mache ich falsch?

response.write(rs.RecordCount)

Danke

  1. Hi,

    jup, das Problem ist mir auch hinlänglich bekannt und hat mich beim Verlassen der Visual Basic-Windows Anwendungen hinreichend irritiert.
    Eine kleine Hilfe findest du z.B. hier.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. Eine kleine Hilfe findest du z.B. hier.

      Hallo, ich habe gerade folgende Version ausprobiert und es klappt nicht. Er geht immer in else rein :(

      if not rs.eof then
         nr = rs.recordcount
         response.write "There were " & nr & " matches."
      else
         response.write "No matches."
      end if

      1. Hi,

        dann hast du noch ein anderes Problem. Hast du mal geguckt, ob du irgendwelche Fehlermeldungen bekommst? Wenn du hier im else-Zweig landest, dann sind tatsächlich keine Daten da. Du kannst mal ein rs.MoveFirst verwenden, aber ich glaube nicht, dass das einen Erfolg bringt.

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
        1. Du kannst mal ein rs.MoveFirst verwenden, aber ich glaube nicht, dass das einen Erfolg bringt.

          ich verwende ja auch rs.movefirst, rs.movenext
          die Daten werden aus der DB gelesen und ausgegeben
          recordcount funzt nicht...keine Ahnung maaaaaan......

          1. Sorry, dann hast du was an der verlinkten Seite missverstanden:
            Damit recordcount gesetzt wird, erfordert es eine bestimmte Cursor-Variante, die du beim Anlegen des Recordsets setzen musst, im ersten Beispiel ist das
            rs.open sql,conn,1,1
                            ^^^^^^
            Wenn du das nicht machen willst, oder auf Grund von anderen Anforderungen an das Recordset nicht kannst, raten sie zu rs.getRows(), was ein Array mit allen Zeilen zurückliefert, und dann der Feststellung der Anzahl der Elemente.

            Wenn du sowieso mit einer while Not rs.eof-Schleife durchläufst, kannst du auch einfach in jedem Schleifendurchlauf eine Zählervariable hochlaufen lassen.

            MfG
            Rouven

            --
            -------------------
            ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
            1. Wenn du sowieso mit einer while Not rs.eof-Schleife .......eine Zählervariable hochlaufen lassen.

              ok, danke, habe jetzt auch so gemacht

  2. Hallo,

    Abfrage = "Select ..........."
    Set rs = connection.Execute(Abfrage)

    http://www.aspfaq.de/index.asp?FID=4&ELE=354 sollte helfen.
    Das Problem ist die Art, wie du das Recordset erstellst (Execute
    ist hier die falsche Wahl)

    Tschau, Stefan