In die Datenbank schreiben
Als ich den Code für meine SQLOLEDB-Lösung schrieb, erkannte ich, dass der Provider die im Recordset-Objekt vorhandenen Optionen AddNew und Delete nicht unterstützt. Das hieß, dass ich die SQL-Statements für das Einfügen (INSERT) und Löschen (DELETE) von Zeilen in der Datenbank selbst codieren musste.
Bevor man einen Eintrag schreibt, sollte man den Status des Recordset überprüfen und die Verbindung, sofern sie geöffnet ist, schließen, wie es in Listing G gezeigt wird.
Verwendet man SQL-Statements, um Einträge zur Tabelle hinzuzufügen, müssen die Apostrophe in den Strings doppelt vorhanden sein. SQL interpretiert doppelte Apostrophe als einzelne Apostrophe. Der Code in Listing H zeigt, wie man einzelne Apostrophe durch doppelte ersetzen kann.
Zuletzt kann man die fünf Felder in unsere Remote-Datenbank einfügen, indem man die Methode Recordset::Open() ausführt – wie schon bei der Erstellung der Datenbank. Der Code dafür steht in Listing I.
Da man COM-Automation einsetzt und COM im Compiler nicht unterstützt wird, muss man alle Strings manuell in bstrings umwandeln und den dafür benötigten Speicher manuell allozieren und deallozieren.
Aus der Datenbank lesen
Die Ansicht der ersten oder zweiten Registerkarte der Anwendung zählt die einzelnen Datenbankeinträge auf. Dafür verwendet man die Methode CDatabase::ReadRecord(). Die erste Aktion ReadRecord überprüft, dass das Recordset geöffnet wurde, wie in Listing J dargestellt.
Um die Felder aus dem Recordset-Objekt auszulesen, muss man eine Feldsammlung abrufen und dann für jedes der fünf Felder in dieser Sammlung die Eigenschaften für Item und Value überprüfen. Mit DDX von Microsoft Framework Classes lassen sich die resultierenden Werte in die entsprechenden Textboxen setzen. Listing K zeigt, wie man alle fünf Elemente ausliest und sie dann in die entsprechen Entry Variables speichert, die daraufhin zu einer Funktion weitergeleitet werden, welche sie in die Member Variables der MFC (Microsoft Foundation Classes) kopiert.
Schließen der Datenbank
Am Destructor von CDatabase überprüft man den Status des Recordset. Sollte er geöffnet sein, schließt man ihn und schließt dann auch das Objekt Connection. Damit wird die Remote-Verbindung mit der SQL-Datenbank getrennt. Listing L illustriert diesen Destructor.
Versuchen Sie es selbst
Auf der Website ShakeHome.com habe ich einen SQL-Server und eine ViaDB-Verbindung zur Verfügung gestellt. Port 21210 wurde durch die Firewall geöffnet. Sind Sie direkt mit dem Internet verbunden, sollte die Musteranwendung auf jedem Gerät mit Pocket PC 2002 und Netzwerkanschluss funktionieren (ActiveSync zählt nicht). Sie können es also selbst probieren und sehen, wie einfach eine CE-Anwendung mit Fernzugriff sein kann, wenn man die richtigen Tools verwendet.
NVIDIA DGX SuperPOD soll voraussichtlich Mitte 2025 in Betrieb genommen und für Forschungsberechnungen genutzt werden.
Latrodectus, auch bekannt als BlackWidow, ist auch unter dem Namen LUNAR SPIDER bekannt.
Die Einnahmen klettern auf fast 95 Milliarden Dollar. Allerdings belastet der Steuerstreit mit der EU…
Neue Over-Headset-Kopfhörer von Baseus bieten Raumklang-Audio und unterdrücken Störgeräusche um rund 96 Prozent.
Das stärkste Wachstum verbucht die Cloud-Sparte. Microsoft verpasst bei der Umsatzprognose für das laufende Quartal…
Ein Coil-on-Module-Package integriert Chip und Antenne, was den Kartenkörper fast vollständig recycelbar machen soll.