Announcement

Collapse
No announcement yet.

Kommunikation mit DBMS von SPS

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

  • Kommunikation mit DBMS von SPS

    hallo community!
    Ich habe ein Problem:
    Ich soll von einer B&R - SPS über Internet direkt mit dem DBMS auf einem Server kommunizieren.
    Ich brauche nur die Befehle zum Verbinden, Table erstellen und Werte hinzufügen.
    Ich habe dazu über ISQL einige Befehle eingegeben und mit einem Netsniffer beobachtet was übertragen wird.
    Jetzt möchte ich in C ein Program schreiben welches für die SPS adaptierbar ist und über diese Befehle verfügt. Ich bin nicht sicher ob ich die <iBase.h> auf die SPS mitnehmen kann. und eine evtl etwas noobige frage: Kann mir jmd sagen wo die Methoden der function prototypes der ibase.h ausprogrammiert sind?

    bin ich allgemein überhaupt auf dem richtigen weg oder wären andere Konzepte vorzuziehen?
    Danke für eure Zeit!
    mfg Georg

  • #2
    Es wäre wohl besser, per C auf die Client-Dll (fbclient.dll) zuzugreifen

    Comment


    • #3
      danke für die schnelle Antwort!
      kann aber leider keine .dll's auf die SPS mitnehmen...
      muss selber direkt wissen was ich über die schnittstelle schicken muss denke ich.

      Comment


      • #4
        Die Dll liegt ja im Source vor, da sollte es u.U. möglich sein, diese doch zu nutzen

        Comment


        • #5
          Ich würde das ja in einer 3-Schichten-Architektur lösen. Der Mittelteil kann sicher sogar am selben Server wie die Datenbank laufen. Damit können zum Server hin alle Standardtreiber/-komponenten verwendet werden und zur SPS hin kann man sein Protokoll selber frei definieren. Sowas lässt sich (aus meiner persönlichen Erfahrung heraus) viel leichter erweitern, umbauen, austesten usw. Selbst ein Wechsel des Datenbankservers wäre dann kein Problem, da höchstwahrscheinlich bei der SPS nichts geändert werden müsste. Aber wenn's so vorgegeben ist ....

          bye,
          Helmut

          Comment


          • #6
            Danke Helmut,
            würde das auch bevorzugen aber im Mom ist es noch anders vorgegeben (vllt kann ich die chefs ja noch überzeugen).
            den genauen inhalt der fbclient.dll kann ich nicht lesen, nur die prototypes, wie macht man das?

            Comment


            • #7
              ich habe nun mit der entschlüsselung der kommunikation begonnen, nur leider dauert das ein bisschen. Wenn es darüber eine Dokumentation gebe wäre das natürlich toll!
              beispiel:
              habe begonen mit dem connect-befehl, welcher so aufgebaut ist:
              opcode connect, 4 bytes = 0x01
              operation attatch, 4 byte = 0x13
              version 4byte,
              client architectur,
              dann die länge des db-pfades 4byte,
              dann der pfad
              und dann beginnen auch schon erste schwierigkeiten,
              es folgen eine (für mich unbestimmte) anzahl von 0x00-bytes, dann 0x03 und dann drei weitere 0-bytes.
              und so weiter und so fort...

              hoffe ihr könnt mir helfen!
              lg Georg

              Comment


              • #8
                Ich würde nicht hoffen, hier jemanden mit diesem Know How zu finden, denn die Kommunikation abzuhören und daraus auszulesen, was es alles gibt, ist so ziemlich der schwierigste Weg den ich mir vorstellen kann. Entweder man kann sich eine Dokumentation über den Treiber (am besten plus Sourcecode) beschaffen oder man schliesst sich mit einem der Firebird-Entwickler zusammen oder man macht eben das von mir propagierte 3-Schichten-Modell.
                Aber ich halte dir die Daumen, manchmal wird auch Unmögliches möglich

                bye,
                Helmut

                Comment


                • #9
                  Thx Helmut, jetzt muss ich noch versuchen mich durch dein Komment anstacheln und nicht demotivieren zu lassen
                  ich sags wenn was rauskommt (wie heißts, 60% aller Softwareprojekte scheitern??)
                  lg Georg

                  Comment


                  • #10
                    habs geschafft auf diese Weise auf die Datenbank zu schreiben,
                    was mir jedoch noch Probleme bereitet ist die Entschlüsselung der Passwortverschlüsselung des ISC-Passwortes. Gibt es dazu eine Referenz?

                    Comment


                    • #11
                      Die ibpp-Lib (http://www.ibpp.org/) ist ganz gut für den Zugriff auf Firebird, aber in C++ geschrieben.

                      Allerdings könnte man auf dem Rechner mit dem DB-Server ein eigenes, einfaches Server Programm laufen lassen, dass Daten oder einen Text empfängt und über z.B. diese Lib an
                      die DB schickt.

                      Viel Erfolg damit.

                      Comment

                      Working...
                      X