Announcement

Collapse
No announcement yet.

Probleme mit Lookup-Feldern

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

  • Probleme mit Lookup-Feldern

    Hallo,

    ich greife über ADO auf einen MS-SQL Server 7 zu. Sobald ich jedoch ein Lookup-Feld in die Fields-Def. einbinde, erscheint der Fehler 'The operation requested by the application is not supported by the provider.'. In den meisten Fällen klappt es, wenn ich den Cache für das Lookup-Feld aktiviere, jedoch nicht immer!!!
    Mit der BDE haben diese Lookup-Felder jedoch auch ohne Cache funktioniert.
    Woran könnte das liegen, bzw. wie bekomme ich die übrigen Lookup-Felder zum laufen?

    Schon mal Danke,
    Kai

  • #2
    Schon alle Pachtes eingespielt?
    ADO-Patch von Delphi 5 und den Service Pack #1 vom SQL-Server

    Comment


    • #3
      Ja, ich habe das Service Pack #1von SQL-Server und das Delphi 5 Update eingespielt!
      Klappt leider trotzdem nicht!

      Tschau,
      Ka

      Comment


      • #4
        Ich greife auf SQL 7.0 nur über die BDE zu, als kann ich dein Fehler nicht nachvollziehen.

        Falls es unter ADO auch ein ReadOnly-Property (oder entsprechende Eigenschaft) gibt, so setzt das auch mal auf TRUE

        Comment


        • #5
          Hallo,

          ich habe davor auch mit der BDE gearbeitet, hatte jedoch die folgenden Probleme:
          Standardwerte von Server wurden nicht respektiert
          (z.B. Meldung: 'Zahl außerhalb des gültigen Bereich' bei einen Boolean-Feld mit Standardwert True),
          und sobald ich einen Datensatz doppelt eingefügt habe, jedoch der Schlüssel nicht verletzt wurde (,da Zählerfeld), erhielt ich die Meldung: 'Multiple records found, but only one was expected' (in der deutschen Version: 'Mehrere Datensätze vorhanden'), wobei der Datensatz jedoch korrekt in die Datenbank geschrieben wurde, die BDE dies jedoch nicht erkannt hatte, d.h. den Datensatz nicht darstellte und sich so verhielt, als ob der Datensatz nicht geschrieben werden konnte.

          Dies hat sich auch mit dem Einspielen der Patches nicht geändert, (auch nicht mit der neuen BDE 5.11)

          Tschau,
          Ka

          Comment


          • #6
            Hallo,

            in allen offiziellen Dokumenten von Borland und Microsoft wird extra darauf hingewiesen, das die BDE nur bis zur Version 6.5 vom Microsoft SQL Server zertifiziert ist. Da Microsoft ab der Version 7.0 die "alten" DBLib-Treiber nicht mehr unterstützt, die SQL-Links der BDE aber auf diese Treiber angewiesen sind, bleibt ab SQL Server 7.0 nur noch der <b>OLE DB</b>-Treiber (und damit ADO) übrig.

            Und bei ADO gibt es das Problem, das das Verhalten des Providers im schlimmsten Fall von den umfangreichen Konfigurationsmöglichkeiten abhängt. Ausserdem haben auch die ADO-Komponenten interne Macken. Dies führt in der Praxis dazu, das "Versuch-und-Irrtum-Prinzip" bei der Entwicklungs einzusetzen (anders gesagt, man muss mit allen Konfigurationsalternativen solange spielen, bis Erfolg oder Misserfolg endgültig feststeht)

            Comment


            • #7
              Hallo,

              das stimmt nicht ganz, zumindestens steht in der ReadMe-Datei von der BDE 5.11:

              The following ODBC drivers are certified for use with BDE.
              ODBC Driver Manager 3.51
              ------------------------
              Fully certified drivers:
              MSSQL Server (Microsoft 3.6
              - Server version 6.5 and 7.0)
              MSSQL Server (Intersolv 3.11
              - Server version 6.5 and 7.0)

              Für ODBC 3.5 existiert jedoch kein Zertifikat für MS-SQL 7.0.

              Auch habe ich in der ReadMe-Datei keine weiteren Hinweise auf Probleme mit SQL-Server 7 gefunden, jedoch für andere SQL-Server.
              Was mich jedoch wundert, ist, daß meine ODBC-Treiber die Version 3.7 haben. Sind die Treiber in der Version 3.6 noch die alten von SQL-Server 6.5?

              Mit den ADO-Einstellungen habe ich schon rumgespielt, die meisten Datenquellen laufen auch, nur einige sehen es überhaupt nicht ein, sich öffnen zu lassen. (Genau diese jedoch liefen mit der BDE zumindestens einigermassen)
              Vielleicht sollte ich ja beide parallel verwenden? Weis jemand, ob ein Zusammenspiel aus ADO und BDE anständig klappt?

              Tschau,
              Ka

              Comment


              • #8
                Zu den Versionen vom ODBC-Treiber des SQL-Servers

                SQL 6.5 -> ODBC SQL 3.6x<br>
                SQL 7.0 -> ODBC SQL 3.7

                Comment


                • #9
                  Hallo,

                  wenn ich es also richtig verstehe, was in der BDE ReadMe-Datei steht, läuft der SQL-Server 7 auch mit den Treiber 3.6 und hat für diesen ein Zertifikat (unter ODBC 3.51).
                  Sollte ich es vielleicht mal mit diesen Treiber (Ver. 3.6) probieren? Wenn ja, wo kann ich diesen finden?

                  Tschau,
                  Ka

                  Comment


                  • #10
                    Ja, er läuft - aber nur über ODBC und SQL-Links. Es gibt keinen 6.5-Treiber, welcher OLE-DB und damit ADO unterstützt (außer über den Umweg ADO/OLE-DB -> ODBC -> SQL-Treiber)

                    Jedoch wie schon Andreas Kosch sagt, können über ODBC nicht die neuen Features des SQL-Servers 7.0 verwendet werden, da für Microsoft der zukünfige Weg auf Datenbanken über ADO und OLE-DB abläuft.

                    Jedoch ist bisher MS der einzige Hersteller der OLE-DB Treiber liefert. Für Oracle 7 gibt es einen OLE-DB-Treiber von MS, jedoch ist es fraglich, ob MS auch für neuere Oracle-DB's neue Treiber liefern wird

                    Comment


                    • #11
                      Hallo,

                      da ich eigentlich nicht mehr brauche als einen einfachen Zugriff auf die Tabellen, dürfte er mir reichen, oder worin bestehen den die neuen Features des SQL-Server 7?

                      Nochmal Danke für die Hilfe, Ka

                      Comment


                      • #12
                        Oh jeh.

                        Da müßte ich nachsehen, was nun genau neu ist.
                        Aber soweit ich weiß ist er von Grund auf neu implementiert worden.
                        Was er neu hat sind z.B. einige neue Datentypen wie uniqueidentifier oder ntext für Unicode-Daten

                        Comment


                        • #13
                          Nochmal hallo,
                          gibt es eine Möglichkeit, den alten Treiber noch aufzutreiben (bei MS habe ich nichts gefunden!)? Das könnte ich es einfach mal testen.

                          Tschau, Ka

                          Comment


                          • #14
                            Hallo Kai,

                            wenn ich von der BDE + MS SQL-Server rede, meine ich immer den nativen <i>SQL-Links</i>-Treiber <b>MSSQL</b>. Der ODBC-Treiber wird von Microsoft auch noch für die Version 7 des SQL Servers unterstützt, zumal man das Kommandozeilen-Tool <b>osql</b> dazu entsprechend aufgebohrt hat. Zum Beispiel ist für die <b>MSDE</b> die ODBC-Treiberverbindung (Version 3.70.06.23) der einzige Weg, direkte T-SQL-Anweisungen über <b>osql</b> absetzen zu können. Alle Anwendungen hingegen sollen den OLE DB-Weg (ADO) gehen

                            Comment


                            • #15
                              Hallo,

                              was kann ich eigentlich noch machen:

                              die BDE macht nicht, was sie soll, ebenso wenig sieht es ADO ein, korrekt zu laufen.
                              Die Fehlermeldung der Lookup-Felder verschwindet einfach beim besten Willen nicht (Der Fehler entsteht, wenn in ADO ein Recordset.Clone aufgerufen wird).
                              Welche Möglichkeiten habe ich dann überhaupt noch, mit einem MS SQL-Server 7 zu arbeiten?

                              Tschau,
                              Ka

                              Comment

                              Working...
                              X