Von der buero+ COM-Programmierung

Oftmals blocke ich alles Neue, mir Unbekannte ab. Erstens kenne ich es nicht und zweitens kann ich den Arbeitsaufwand immer schlecht einschätzen. Doch im Zuge einer Erweiterung des Lagers musste nun doch die immer wieder aufgeschobene COM-Programmierung in Angriff genommen werden. Der Angst davor war im Endeffekt aber dann doch ziemlich unbegründet, sondern eher aus Unwissenheit aufgebauscht worden. Schon im Februar im Rahmen der automatischen PDF-Auswertung-und-in-Datenbank-Arbeit war die COM-Programmierung ein sehr großer Knackpunkt. Nun habe ich die Dokumentation aber doch noch einmal genauer angelesen und festgestellt, dass auch ein paar brauchbare Delphi und VB Beispiele dabei sind. Damit war dann der grundsätzliche Aufbau schnell geklärt und mir war auch klar, dass ich wegen mangelnder Kenntnis der Objektorientierung zum damaligen Zeitpunkt nicht durchgestiegen bin. Damals hatte ich von einem Programmierer ein Beispiel zur Implementierung der Datenbankänderung in C# bekommen. Als Gegenzug gabs für den netten Menschen eine Packung Gummibärle.
Da ich C# nie gelernt habe, habe ich den Code anfangs auch nicht verstanden. Aber es hat funktioniert. Dank Debugging des C# Programms wurden mir dann auch die Aufrufe etwas klarer und die Doku machte auf einmal wieder mehr Sinn. Vor allem die Try… Catch… Finally… Anweisungen haben mich ein wenig gewundert. Doch das macht nun natürlich auch Sinn, denn nur so kann ich elegant auf Exceptions (also Ausnahmefehler, wenn beispielsweise die Datenbank belegt ist) reagieren.
Und nach ein bisschen ausprobieren und abschauen von den ganzen anderen Funktionen und Beispielcodes ging das meiste recht flott von der Hand. So habe ich zum Beispiel entdeckt (bzw. wurde darauf hingewiesen), dass ein Lagerbuchungsassistent existiert. Somit wird schon mal Arbeit erspart.
Und wenn ich mal nichts mehr direkt wusste und manche Fehlermeldung komisch erscheint gibt es ja immer noch Google. Beispielsweise eine Umwandlung von DBNull nach Double ist nicht möglich. Also muss noch eine Abfrage rein um zu prüfen ob das Ergebnis DBNull ist. Ich konnte es zwar nicht nachvollziehen, da in der WaWi es richtig angezeigt wird, aber naja… :)
Nach anfänglichen Bedenken, ob die 9 Wochen Arbeitszeit reichen würden, stand das komplette Grundgerüst innerhalb 3 Tagen zusammen. Es hat sogar einwandfrei funktioniert, doch die Fehlerbehandlungsroutinen fehlten noch und es war ziemlich chaotisch. Nun ist es ein bisschen geordneter und vor allem übersichtlich nach Funktionen sortiert. (Aktuell sind es mit Kommentaren und teilweise Leerzeilen ca. 400 Zeilen Code!) Als dass dann fertig war kam noch die zweite Anforderung, nämlich eine Excelliste mit den lieferfähigen Artikeln erstellen zu lassen. In der WaWi ist dazu eine Funktion implementiert, welche leider keine genauen Rückschlüsse auf die verwendeten Datenbanken zulässt. Doch ein Blick in die Variablenliste hat dann auch wieder manches Licht ins Dunkel gebracht. Die kannte ich wenigstens schon, da man diese auch öfters mal für den Druckdesigner braucht.
Je mehr ich mich damit beschäftige, desto mehr Respekt bekomme ich vor diesem WaWi. Gleichzeitig wird mir aber auch immer klarer, warum andauernd so viele EAccess Violations auftreten. Das System ist einfach ziemlich mächtig von den Funktionen und Möglichkeiten her, was aber leider auch immer wieder neue Fehlerquellen eröffnet. Doch diese sind ja meistens gut abgefangen.

„Wenn du meinst dein System sei idiotensicher, dann erfinden die User einen neuen Idioten.“

Hat irgendjemand mal gesagt und leider ist damit auch ziemlich viel wahres dran.
Hoffentlich finden wir bis zum September alle Fehlerquellen und die passenden Lösungen.

Ein Gutes hat das Ganze auch: Ich habe wieder ein Ziel und damit wieder neue Lust aufs Programmieren bekommen. Ist zwar nur Konsolenprogrammierung, aber das reicht ja auch. Und wenn man es bedenkt ist COM-Programmierung auch relativ angenehm. Man greift auf fertige Funktionen zurück und muss diese eigentlich nur noch nutzen. Vielleicht noch ein wenig darauf achten, dass diese auch effizient ablaufen. Die COM-Schnittstelle ist nämlich schon recht langsam.
So im Nachhinein bin ich fast schon froh, dass mein PDF-Umwandlungsprogramm nicht zum Einsatz kam. Denn die vielen externen Programmaufrufe kann ich nun doch um einiges eleganter lösen. Vor allem macht es Sinn alles in einer Sprache zu schreiben. Das erleichtert auch das Warten des Codes. :)

Über den Autor dieses Artikels: Tobi

Blogger aus Spaß an der Freude, Musikfan, Hauptfeuerwehrmann, Christ und Pfadfinder. Die Beiträge sind meine persönliche Meinung. Oftmals ist auch versteckte Ironie oder Satire dabei. Wer damit nicht umgehen kann, sollte diese Seite verlassen und sich in seinem Loch einbuddeln.

13 Antworten zu “Von der buero+ COM-Programmierung”

  1. CONeal sagt:

    Freut mich das du so einen Spaß am programmieren hast ;)

    • Tobi sagt:

      @CONeal: Am Anfang ist aber erstmals die Blockade und der Schweinehund der sich sträubt. „Das gibts doch schon, dass muss ja nicht nochmal gemacht werden…“

  2. Pascal sagt:

    Hallo Tobi,

    erinnert mich irgendwie an den Satz:

    „Never touch a running system!“

    Aber wenn du so viel Spaß daran hast, dann viel Vergnügen.

    Grüße

    Pascal

  3. Windowsbunny sagt:

    Sie froh dass Du nichts für Apple programmieren musst. :P

  4. Windowsbunny sagt:

    Programmieren nicht kreatives Drag&Drop.

    • Tobi sagt:

      @Windowsbunny: Wobei das kreative Drag&Drop auch was für sich hat. :)

      • Entschuldige, Tobi. Das „Hey du Arsch“ bezig sich auf das fiese, kleine Bunny.

        Dieses Drag & Drop ist Next-Generation-Coding.

        Wer sagt denn, dass 15.000 Zeilen im Editor tippen die „Ultima Ratio“ ist?

        Ich finde das zwar cool, und es macht auch Spass, aber mich erinnert das immer an Hieroglyphen in Steintafeln ritzen…

        • Tobi sagt:

          @Der Applejünger: So im Bereich der App-Programmierung finde ich es schon angenehm, dass man auf vorgefertigte Funktionen zurückgreifen kann. Da hat Apple und Android schon gute Möglichkeiten erschaffen. (Habe es noch nicht ausprobiert, aber darüber mal ein Bericht gelesen!)

          Das Coden im Konsolenbereich macht auch Spaß, besonders wenn man bedenkt, welche mächtigen Funktionen du damit nutzen kannst. „Wo ist nochmal die Datei?“

Trackbacks/Pingbacks

  1. […] bin ich wieder zur Arbeit gegangen und habe ich dann gleich mal eine neue Aufgabe bekommen. Die Synchronasation zwischen Lager und Warenwirtschaft geht ja schon grob und war nun nicht mehr wichtig. Nun solle ich “einfach” ein Programm […]