Announcement

Collapse
No announcement yet.

Typbibliotheksimport ADODB_TLB.PAS (Delhi6)

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

  • Typbibliotheksimport ADODB_TLB.PAS (Delhi6)

    <p>Hallo,<br>
    ich benutze oft noch Delphi6/E und ärgere mich jedesmal über die Macken beim Importieren der Typelibrary ADODB_TLB.PAS.<br>
    Ich habe schon einige Beiträge hier im Forum gelesen, u.a. auch, daß man die
    von Delphi5 importierte Typelibrary verwenden soll. Das klappt auch ganz gut,
    aber nur so lange, bis ich Änderungen im Delphi Typbibliothekseditor vornehme.
    Dieser führt nämlich bei jeder Aktualisierung einen erneuten Import durch und
    würfelt dann alles wieder durcheinander. Setze ich meine gute alte Delphi5 -
    ADODB_TLB.PAS auf readonly, meckert der Typbibliothekseditor, daß der
    ADODB_TLB.PAS nicht erstellen kann und tut so lange nichts, bis er sie endlich
    überschreiben kann.</p>
    <p>Mit der Delphi6 Typelibrary habe ich dann so sonderbare Erscheinungen wie:
    Aus ursprünglich definiertem _Recordset macht der Importer Recorset15 und fügt
    dann dafür jeweils eine leer(!) Interface-Funktion hinzu. Ändere ich alles auf
    Recordset15 um dem Importer entgegenzukommen, macht er wieder _Recordset daraus
    u.ä.</p>
    <p>Hat vielleicht jemand Erfahrungen mit diesem Problem und kann mir sagen, wie
    ich mit einer Delphi5 Typelibrary unter Delphi6 (ich denke mal auch D7) arbeiten
    kann ?</p>
    <p>Danke, Hermann</p>

  • #2
    Wieso importierst Du immer wieder die ADODB_TLB? Einmal reicht doch. Diese importierte Datei kannst Du doch für all deine Programme verwenden.

    Und blos weil MS den x.ten Security-Fix für ADO herausbringt brauchst Du doch die TLB nich neu einlesen

    Comment


    • #3
      Eigentlich hat man nichts in einer importierten Typ-Bibliothek zu ändern

      Comment


      • #4
        Hallo,<br>
        ich würde sie ja am liebsten auch nie ändern. Delphi selbst aktualisiert aber bei jeder Erweiterung oder Änderung der Interfaces meiner eigenen COM+ Objekte alle daran beteiligten Typelibraries. Vielleicht sollte ich noch erwähnen, dass es sich bei dem Projekt um eine ActiveX Library handelt. D.h. daß ich Änderungen an den Interfaces meiner COM+ Objekte mit dem Typbibliothekseditor vornehme. Und dieser legt die Typbibliotheken bei jeder Änderung an meinen Interfaces neu an.<br>
        Grüsse Herman

        Comment


        • #5
          Hallo,

          wie haben Sie denn die TLB eingebunden ?
          Ich hab hier gerade ein Delphi 7 und kein D6
          aber auch Delphi 6 sollte nur einmal PAS-Dateien für verwendete TLBs anlegen, nämlich dann, wenn Sie im Typbibliothekseditor diese TLB als verwendete Bibliothek angeben. Für die solchermassen importierten TLB steht der Typbibliothekseditor auch garnicht zur Verfügung und hier wird auch nichts geändert oder ähnliches oder dauernd neu erzeugt !
          Was Sie in keinem Fall machen sollten, ist die verwendeten TLBs über "Projekt | Typbibliotheken" importieren einbinden. Das ist überflüssig und führt zu den oben genannten Problemen.

          Die einmal importierte Pas-Datei zur ADO-TLB sollte sich dann durch die Delphi 5 Variante ersetzen lassen.

          BTW - das ändern von Schnittstellen- und Klassennamen per Hand kann man sich im übrigen sparen, wenn man die Datei tlibimp.sym bearbeitet

          HTH, Bernd U

          Comment


          • #6
            Hallo,<br>
            ich habe ausschließlich im Typbibliothekseditor die TLB als verwendete Typbibliothek angegeben und diese auch (soweit ich mich erinnern kann) nie manuell über "Projekt | Typbibliotheken importieren" importiert - das macht in dem Fall in der Tat keinen Sinn. Wenn dem so wäre, kann man das rückgängig machen (vielleicht die ADODB_TLB.PAS unter \Imports löschen - da steht derzeit die Delphi5-Version) ? <br>
            Wie dem auch sei: D6 erzeugt (bei mir) jedesmal eine neue ADODB_TLB.PAS, wenn ich entweder Interfaces im Typbibliothekseditor ändere oder über "Bearbeiten | Zur Schnittstelle hinzufügen" neue Interfacemethoden erstelle.<br>
            &#10

            Comment


            • #7
              Hallo,

              ich habe es jetzt nochmal mit D6 und D7 getestet. Leider hat mich D7 an der Nase rumgeführt, und die Typelibrary neu importiert und auf der Platte ersetzt ohne die im Editor geöffnete Datei zu aktualisieren und ohne die übliche Meldung "Datei auf der Platte geändert - neu laden ?" anzuzeigen :-(
              Die D5 Typelib zu verwenden dürfte schwierig sein. Für den Rest der Units, geht das zwar, indem man die ADO_TLB.pas einfach umbenennt und als letztes in die uses schreibt, das hilft aber nix bei der xxxtlb.pas zur eigenen Typelibrary die ja auch immer neu erzeugt wird.

              Lässt sich der Import in D6 nicht über die
              tlibimp.sym Datei so hinbiegen, dass die Schnittstellennamen auch beim D6-Import passen ?

              Bernd U

              Comment

              Working...
              X