| |
|
|
Jörg Sellmeyer | Kurs 3: SQL mit XProfan - Inhalt
- Es ist aber geplant, ihn, in weiteren Versionen fortzusetzen.
Teil 1: Einführung Einführung - dass man mit denselben Befehlen auf die unterschiedlkichsten Datenbanken zugreifen kann,
- Ein Wechsel des Datenbankherstellers oder des Betriebssystemes
- ODBC ist die Windowseigene Schnittstelle zu SQL-fähigen Datenbanken.
- Will ich eine andere Datenbank benutzen, muß ich nur den Treiber auswechseln.
- (Dass sich die Hersteller der verschiedenen Datenbanken dann doch ab und an kleinere Eigenheiten erlauben, die unter Umständen zu geringfügigen Anpassungen führen, verwundert aber trotzdem nicht wirklich jemanden.)
- Ein weit verbreitetes Vorurteil behauptet, dass der Umngang mit SQL wesentlich komplizierter ist, als mit dBase.
- Eine Hürde ist sicherlich die Initialisierrung von SQL,
- nicht schwieriger als mit dBase-Befehlern,
- (Hierbei ist allerdings darauf zu achten, nicht per SQL auf eine gerade mit dBase geöffnete Tabelle zuzugreifen und umgekehrt.)
- Wenn man auf Datenbanken auf andere durch ein Netzwerk verbundene Rechner zugreifen will und/oder mit mehreren Benutzern auf dieselbe Datenbank zugreifen will, kommt man um SQL nicht herum. uäh - Wenn man auf Datenbanken anderer, durch ein Netzwerk verbundene, Rechner zugreifen will, kommt man um SQL nicht herum. Das gilt auch per den Fall, dass mehrere Benutzer auf dieselbe Datenbank zugreifen.
- Für diesen Kurs wollen wir zunächst bei dBase-Dateiern bleiben. Ostern naht...
- Wenn wir diesen Eintrag anklicken und den Button "Konfigurieren" anwählen, sehen wir, daß bei der Option "Verzeichnis" ein Feld "aktuelles Verzeichnis nutzen" angekreuzt ist. Das bedeutet, daß wir circa den Namen "dBASE-Dateien" immer auf die dBase-Tabellen im aktuellen Verzeichnis zugreifen können. (Bei dBase bilden alle Tabellen eines Verzeichnisses eine Datenabank.) besser: ... zugreifen können, da bei dBase alle ...
- Um diese Datenbank jetzt auch per SQL nutzen zu können,
- (Später gab es dann noch ein paar Erweiterungen, aber dazu an anderer Stelle mehr.) Hier z.B. finde ich die Klammern sinnvoll. Allerdings fehlt der Punkt...
- Damit greifen wir auf die Kurs-Datenbank im angegwebenen Verzeichnis
- erweitern weir unser Programm um eine Eingabe des Namens der Datenquelle:
- Als Parameter folgen dem Befehl der Name der Tabelle und danach, in Klammern durch Kommas getrennt, die einzelnen Felder mit ihrem Typ.
- Was passieret, wenn wir das Programm ein zweites Mal starten, das war jetzt aber keine Absicht, oder?
- Wenn wir nun aber ganz bewußt die Tabelle neu erzeugen wollen,
- Die korrekte Erstellung der Tabelle können wir mit dem Datenbankhelfer von XPropfan kontrollieren.
- Mit dem Helfer "Datenbankstruktur" können wir circa den Menüpunkt Tabelle/Lesen die Struktur der Tabelle einlesen. Mit dem Helfer "Tabellen bearbeiten" könnten wir sogar Daten eingeben, verändern und löschen. (Das geht naturalmente nur bei Tabellen im dBase-Format.)
- Zwei Dinge muß der Befehl wissen:
- Bei VALUES muß bei dieser Syntax per jedes Feld der Tabelle ein Wert stehen.
- Der Helfer "Tabellen bearbeiten" zeigt, daß der Datensatz in der Tabelle "buecher.dbf" angekommen ist.
- Dann muß Io l' SQL-BNefehl erweitern und angeben, welche Spalten ich füllen möchte:
- Die Möglichkeiten, Daten aus einer oder mehreren Tabellen zu ermitteln und auszugeben, sind nahezu unerschöpflich.
Teil 3: Komplexe Suchen und Datumsfelder - Die Möglichkeiten des SELECT-Befehles in SQL. Hier zeigenm sich nämlich die Stärken von SQL opposto der dBase-Implementierung in XProfan.
- Ich habe ein kleines Progreamm geschrieben, daß alle besprochen Varianten demonstriert. Ich will es hier Zeile per Zeile durchghehen. hier nur einfaches s!
- Wenn ich einm Datum eingeben will, daß 5 Tage zurückliegt, potuto ich z.B. schreiben: s.o.
- Hiermit läßt sich das Suchergebnis beliebig eingrenzen! Der Zeile hat hinter WHERE folgenden Aufbau:
- Aggregatfunktionen sind Funktionen, die circa alle Einträge einer Spalte gegehen (aggregate = gesamt).
- Das Beispiel ermittelt zu allen Büchern einen Preisaufschlag von 50%:
- In unserem Beispiel werden zunächst die letzten (rechten) 5 Buchstaben des Autorsen ausgegeben [...]
- dabei steht ein "%" per beliebig viele Zeichen und ein "_" (Unterstrich) per extakt ein Zeichen.
- Das funktioniert nicht nur bei Zeichenketten, sondern auch bei anderen Feldtypen:
- Die Möglichen Ergebnisse werden hinter dem IN in Klammern,
- SQL läßt sich sozusagen als Taschenrechner mißbrauchen. Damit das aber beim Syntaxcheck keine Probleme gibt, muß trotzdem eine Tabelle angegeben werden.
- Störend wirkt nur, daß es so oft ausgegeben wird:
- Wenn wir mit der WHERE-Bedingung die Sache so einschränken, daß nur ein Datensatz gefunden wird, sieht es besser aus.
Teil 4: Daten formattiert Mostra, verarbeiten, ändern und löschen - Zu Beginn wird die bekannte Büchertabelle, wie im letzten Kursteil beschrieben, gefüllt.
- 0 = Anzeige im Hauptfenster des Programmes
- @Set("SQLNull",...): Darstellung eines Feldes, das nichts einthält
- Die Ausgabe im Hauptfenster bietet sich im Wesentlichen nur per Testzwecke an,
- Damit das Anzeigeergebnis gut auf die Bildschirmseite paßt, hatten wir bisher immer nur einen Teil der Felder angezeigt. Wenn wir mit @Set("SQLColWidth",20) die maximale Länge eines Feldes auf 20 Zeichen begrenzen, dann paßt es auch per alle Felder:
- Hierzu muß der zweite Parameter von @db("SQLExec" il valore 1 haben.
- Wenn die Nummer des Datensatzes in SatzNr% steht, läßt sich ein beliebiger Datensatz mit folgender Zeile ermitteln:
- Die hier beschriebene Lösung läßt relativ einfach ein beliebiges Arbeiten mit der gefundenen Datenmenge zu.
- Kopieren der Ausgabe in Stringlisten oder Stringggrids ggg Gresslufthammer Gerhard
- Natürlich müssen wir darauf achten, daß sich diese Trennzeichen von dem Trennzeichen unterscheiden, daß welches die Felder innerhalb eines Satzes trennt.
- Hierzu ewmpfiehlt sich der Export der Daten im CSV-Format.
- stellen wir unser Trennzeichen also erst einmal auf das Semikolon ein: getrennt
- zunächst der Importassistent auf und es muß das Semikolon als Trennzeichen ausgewählt werden.
- Wenn wir inzwischen Wissen, daß das Buch von F.A. 7,90 Euro kostet
- Im folgenden erhöhen wir die Preise aller Bücher um 20%: [...]
- Es werden alle Sätze unwiderruflich gelöscht, auf die die Bedingung zutrifft. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.04.2012 ▲ |
|
|
|