sushi: SQL problem

hallo leute habe ein kleines merkwürdiges asp/sql problem.

ich habe eine db  mit 3 spalten id name und sprache.
wenn ich in access diese query eintrage "SELECT presse.* FROM presse WHERE ((presse.id=13)) AND ((presse.spr='de')) ORDER BY presse.id; "

funktioniert sie wunderbar aber in asp leider nicht

s_sql= "SELECT presse.* FROM presse WHERE ((presse.id=" &s_zeitung& ")) AND ((presse.spr='" &lan& "')) ORDER BY presse.id;"

Set Conn=Server.CreateObject("ADODB.Connection")
Set RS=Server.CreateObject("ADODB.RecordSet")
Conn.Open "DSN=mond_presse_wort"
->>>>>RS.Open s_sql, Conn, 3

hier bekomme ich dann die fehlermeldung
Microsoft OLE DB Provider for ODBC Drivers- Fehler '80040e10'

[Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben.

wiso kannmir jemand helfen ???

sushi

  1. Hi,

    lass dir vor dem Ausführen der Abfrage (also vor RS.Open) den Abfragetext noch mal anzeigen mittels Response.Write. Dann wirst du wahrscheinlich feststellen, dass dein Variablen "s_zeitung" oder "lan" leer sind.

    Gruß, Frank

    1. Hi,

      lass dir vor dem Ausführen der Abfrage (also vor RS.Open) den Abfragetext noch mal anzeigen mittels Response.Write. Dann wirst du wahrscheinlich feststellen, dass dein Variablen "s_zeitung" oder "lan" leer sind.

      Gruß, Frank

      lieber frank danke für deine hilfe das habe ich aber schon gemacht

      die query schaut so aus  SELECT presse.* FROM presse WHERE ((presse.id=13)) AND ((presse.spr='de')) ORDER BY presse.id;  w

      und da is id als auch die sprache da.

      das ist das was mich wundert
      als würde ich etwas zu wenig übergeben aber was fehlt noch???

      danke
      sushi

      1. Hallöle,

        okay.... eine Fehlerquelle ausgeschlossen.

        Das w am Ende deiner Query ... gehört das zur Query dazu?

        Ansonsten, wenn du die Abfrage so, wie sie in der Ausgabe stand, direkt durchführst, funktioniert sie?

        Verwende doch zum Tracking des Fehlers der Reihe nach die Queries:

        Select presse.* FROM presse ORDER BY presse.id

        Select presse.* FROM presse WHERE presse.id = 13 ORDER BY presse.id

        Select presse.* FROM presse WHERE presse.spr = 'de' ORDER BY presse.id

        auszuführen, so bekommst du mit, wie lange es ohne Fehler klappt. Die ODBC Fehlermeldungen von Access/Jet sind nicht immer sehr aussagekräftig. :-(

        Ich hoffe, ich konnte dir dennoch irgendwie helfen.

        Frank

        1. 1. danke für deine hilfe und 2. ja ich war su dumm und habe den thread neu eröffnet ich werde es nie wieder tun.

          ich habe jetzt versucht das den fehler in der query herraus zu finden.

          anscheinend hat es was mit der spr= zu tun da ich hier immer fehler bekomme.

          die spalte heist so mit 'übergebe ich den string (de/en)' und trotzdem bekomme ich wieder so eine fehlermeldung???

          bei einer php fehlermeldung könnte ich mir wahrscheinlich selbst helfen aber ich werde nicht schlau daraus da es in access funkt.

          danke
          sushi

          1. Hiho nochmal,

            was für ein Typ ist [presse].[spr]? Was hat es (die Tabelle) momentan für Werte in der Spalte [spr]? Evt. solltest du um die Tabellen und Spalten solch eckige Klammern (wie ich gerade hier) machen, das beugt der Access-internen Verwechselbarkeit von Spaltennamen und eigenen Funktionen vor. Mir ist zwar ad-hoc keine Funktion SPR in Access bekannt, aber möglich wäre dies.

            Ciao, Frank

            1. Hiho nochmal,

              was für ein Typ ist [presse].[spr]? Was hat es (die Tabelle) momentan für Werte in der Spalte [spr]? Evt. solltest du um die Tabellen und Spalten solch eckige Klammern (wie ich gerade hier) machen, das beugt der Access-internen Verwechselbarkeit von Spaltennamen und eigenen Funktionen vor. Mir ist zwar ad-hoc keine Funktion SPR in Access bekannt, aber möglich wäre dies.

              Ciao, Frank

              hallo frank,

              also ich hab das jetzt mit den [] auch probiert was leider nicht zum erfolg geführt hat.
              die spalte spr ist ein vom typ text mit einer länge von 2 zeichen.
              echt, die sql funkt im access.
              wassssssss kann denn das sein????
              danke für die hilfe.
              sushi

              1. ich habe die spalte jetzt auch auf sprache umgetauft.
                geht noch immer nicht.

                sushi

                1. ich habe die spalte jetzt auch auf sprache umgetauft.
                  geht noch immer nicht.

                  sushi

                  hahhahahhahahahaha

                  ACCESSS DU ****** ***** *********** **** *** ******* ***** **********

                  so da es war also irgendetwas in der formatirung des typs. ich habe den typen nochmals geöffnet und dann gespeichert jetzt gehts ohne probleme.
                  echt der hammer einen hablen tag für so einen kinderkack echt war.
                  da lob ich mir doch unser Mysql.

                  danke an nochmals für die hilfe.
                  sushi

      2. yo,

        die query schaut so aus  SELECT presse.* FROM presse WHERE ((presse.id=13)) AND ((presse.spr='de')) ORDER BY presse.id;

        das ORDER BY ist hier überflüssig, da durch die WHERE klausel sowieso nur eine ID zugelassen wird.

        Ilja