Announcement

Collapse
No announcement yet.

ADO und Parameter

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ADO und Parameter

    Hallo zusammen,

    folgendes Problem. Ich hab eine MS-Access Tabelle mit Daten. Ich versuche folgende Abfrage:

    select
    Count(Datei) As Anz,
    Datei,
    Datum
    from Bilder
    where Anz > :Menge

    Group by Datei,Datum

    Ohne die Where-Klausel ist alles ok, mit der Einschränkung bekomme ich folgende Meldung:

    Für mindestens einen erfprderlichen Parameter wurde kein Wert eingegeben.

    ADO ist wohl der Meinung, dass Anz ein Parameter ist. Was mache ich falsch?

    Kalli

  • #2
    :Menge ist ein parameter. hast du denn zugewiesen.

    Comment


    • #3
      Der Parameter Menge ist zugewiesen. Einmal in der IDE und zum andern beim Programmstart.
      Wenn ich den Parameter nicht angebe und nur

      where Anz > 1

      schreibe, kommt der Gleiche Fehler.

      Kalli

      Comment


      • #4
        Wie schaut der Connection-String aus? Verwendest du Curserlocation = clUseServer?

        Comment


        • #5
          Curserlocation = clUseClient ist eingestellt. Ein Umstellen ändert nichts.

          Was mir noch aufgefallen ist: Schreibe ich die Zeile where Anz > 1 in die SQL-Anweisung, trägt er Anz in die Liste der Parameter ein. ????

          Comment


          • #6
            Connection-String?
            Delphi-Version + Patch-Level?

            Comment


            • #7
              Connection-String:
              Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\Delphi\Bildersuche\Bilder.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=5;Jet OLEDBatabase Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False


              Delphi: 2005 mit Update 1 bis 3

              Was mich wundert: Normalerweise ist ein : vor einem Bezeichner in SQL der Hinweis auf einen Parameter. Dies wird anscheinend von ADO nicht richtig erkannt. Oder erkennt ADO nicht einen Feldbezeichner, den ich bei > Count(Datei) as Anz < angegeben habe?

              Comment


              • #8
                Probier mal:

                select
                Count(Datei) As Anz,
                Datei,
                Datum
                from Bilder
                where Count(Datei) > :Menge
                Und Parameternamen in ADO wären alle "?". Erst im Delphi-Wrapper ADOExpress/dbGo wird der Bekannte benannte Paramter mit ":xxx" daraus.

                Comment


                • #9
                  Agregatfunktionen in Where-Klausel () nicht möglich.

                  Ich hab jetzt eine nicht zufriedenstellende Möglichkeit gefunden.

                  select
                  Count(Datei) As Anz,
                  Datei,
                  Datum
                  from Bilder
                  Group by Datei,Datum
                  having Count(Datei) > :Menge

                  Comment


                  • #10
                    Originally posted by Karl Josef Ziller View Post
                    Agregatfunktionen in Where-Klausel () nicht möglich.

                    Ich hab jetzt eine nicht zufriedenstellende Möglichkeit gefunden.
                    Passt doch. Müssen in Having-Abschnitt.
                    Du solltest evtl. die SQL erst in Access direkt testen.

                    Comment

                    Working...
                    X