Announcement

Collapse
No announcement yet.

ADO-Kuriosum unter Windows2000

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

  • ADO-Kuriosum unter Windows2000

    Folgendes Problem:
    Ein Programm (einfach Datei/neue Anwendung) wird mit einer ADOConnection
    und einer TBetterADODataSet - Komponente erstellt.
    Dies erfolgt einmal auf einem Rechner XPprof+Delphi 5.01 (incl.ADOUpdate)
    und auf einem weiteren Rechner XPprof+Delphi 5.01 (incl.ADOUpdate).
    Beide Programme laufen sowohl auf dem einen als auch auf dem anderen Rechner. Jedoch läuft nur ein Programm auf einem Windows2000 (SP1) Rechner!
    Das andere terminiert sich sofort wieder !

    Nach langem Suchen habe ich es gefunden:
    Ein XP-Rechner hat TBetterADODataSet Version 3.04 (dieses läuft unter W2000) und der Andere TBetterADODataSet Version 4.02 (läuft nicht)!

    Kennt jemand diese Probleme (oder vergleichbare) ???
    Eigentlich finde ich TBetterADODataSet ja ok, jedoch werde ich es wohl unter diesen Umständen (erheblicher Ärger mit einem Kunden...) wohl nicht wieder einsetzen !

    PS: Mein Kundenprogramm ist etwas komplexer, jedoch kann man so alles Andere ausschießen...

  • #2
    Hallo,

    >.. TBetterADODataSet Version 4.02 (läuft nicht)! ..

    in welcher "Betriebsart" wurde die Komponente installiert: Mit MDAC 2.6 oder in der Kompatiblitätsoption (MDAC 2.1)? Siehe folgenden Auszug:
    <pre>
    Unit BetterADODataSet;

    INTERFACE

    {$I COMPILERS.INC}
    {$RANGECHECKS OFF}

    {$DEFINE MDAC26}
    (*************************** !!! ATTENTION !!! ***********************)
    (* *)
    (* The NamedParams Property, FieldStatus Property, SaveToADOStream and *)
    (* LoadFromADOStream methods all depend on features that were introduced *)
    (* in MDAC 2.5/2.6. If you want to enable these new features and thus make *)
    (* your apps INCOMPATIBLE with versions of MDAC prior to 2.5, place a dot *)
    (* in the $UNDEF clause below to become {.$UNDEF MDAC26}. *)
    (* *)
    (************************************************* **************************)
    {.$UNDEF MDAC26}
    </pre&gt

    Comment


    • #3
      Ich habe die Komponente "out of the box" installiert. Wenn ich es richtig verstanden habe, ist dann der Schalter {.$UNDEF MDAC26} so zu
      verstehen, dass ich in der Version 2.5/2.6 gearbeitet habe und dadurch Probleme auf einem Windows 2000 Rechner (ADO2.5) hatte !

      Comment


      • #4
        Hallo,

        um welche Datenbank bzw. um welchen OLE DB Provider handelt es sich denn? Der Schalter <i>$DEFINE MDAC26</i> setzt voraus, dass MDAC 2.6 installiert ist. Dies ist bei Windows XP in jedem Fall erfüllt, denn dort gehört MDAC 2.7 bereits zum Betriebssystem dazu. Im Fall von Windows 2000 ist das allerdings nicht der Fall, dort wird nur die MDAC-Version 2.5 zusammen mit dem Betriebssystem ausgeliefert. Auch die Service Packs korrigieren nur auf 2.5.1 etc.

        Wenn nun eine der beiden Anwendungen auf Windows 2000 Probleme macht, obwohl beide unter XP problemlos laufen, deutet diese darauf hin, dass diese eine Anwendung irgendwelche Sachen nutzt, die es unter MDAC 2.5 noch nicht gibt.

        Wenn MDAC 2.6 oder MDAC 2.7 auf dem Windows 2000 Rechner nachinstalliert wird, sollte sich das Problem lösen lassen

        Comment


        • #5
          Es handelt sich bei der Datenbank um den MS-SQL2000 Server.
          Werde wohl die Windows2000 Clients mit 2.7 nachrüsten.
          Man kann ja nie wissen, was sonst noch so zwischen den Versionen
          passiert (ein Kollege von mir berichtete über ein völlig unterschiedliches Verhalten des Find-Befehls zwischen 2.5 und 2.7).
          Soviel zu Microsoft's Abwärtskompatibilität.....
          Ich habe mittlerweile innerhalb VMWare alle wichtigen Versionen zur Verfügung (den nichts ist tötlicher als solche Tests beim Kunden zu machen.... :-)))

          Comment


          • #6
            Hallo,

            &gt;..um den MS-SQL2000 Server...

            dann ist die Sache klar: Die neuen Datentypen vom MS SQL Server 2000 erfordern die Installation von MDAC 2.6 (oder höher) auch auf der Client-Seite, wenn diese Datentypen auch dort lokal vom Recordset verwendet werden (in den ReadMe-Dateien vom MS SQL Server wird darauf mehrfach hingewiesen).

            &gt;..Soviel zu Microsoft's Abwärtskompatibilität..

            Wenn man <b>neue</b> Funktionen (Datentypen) des SQL Servers nutzt, kann es keine Abwärtskompatibilität bei alten ADO-Objekten geben! Im Vergleich zur Konkurrenz (Beispiel ORACLE) ist die Kombination von MS SQL Server + MDAC sehr pflegeleicht, da dort ein breiter Versionsbereich gilt. Beschränkt man sich zum Beispiel auf die Datentypen des MS SQL Server 7, so kann der Client MDAC 2.1 bis MDAC 2.7 problemlos nutzen, solange er sich auf die nativen COM-Objekte von ADO beschränkt. Man darf nicht die Bugs der VCL auch noch Microsoft in die Schuhe schieben :-)

            P.S: TBetterADODataSet zielt primär auf ACCESS-Datenbanken (viele der zusätzlichen Sachen lassen sich nur dort sinnvoll verwenden).

            Comment

            Working...
            X