This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
1
Mit SQL-Kommandos FileMaker Daten lesen - und schreiben
Integriertes SQL in FileMaker 12SQL mit Plugins nutzen
FileMaker Konferenz2010
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
2
Struktur
1. Was ist SQL?
2. Konzeptionelle Unterschiede SQL-FM
3. Neu in FileMaker 12: SQL-Select1. Aufbau einer SQL-Abfrage
2. Was geht, was geht nicht?
3. Caveat: Das macht Probleme
4. Was kann man damit anstellen? Anwendung an Beispielen
1. Vorhandensein eines Datensatzes prüfen (SELECT BY ID)
2. Einschub: Das macht Probleme
3. Einschub: Dynamische vs. statische Argumente
4. Werte aus einem Datensatz holen ohne Beziehung oder Suche (SELECT fieldnames)
5. Liste verschiedener Werte innerhalb Suchbereich holen (SELECT DISTINCT)
6. Array gruppierter Summen holen (SELECT COUNT GROUP BY)
7. Join oder: One Night Stand statt Beziehung
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
3
Struktur
4. Mit Plugins SQL ausschöpfen1. Plugins im Markt
2. Vorsicht bitte!
3. Erweiterte Möglichkeiten durch CREATE, UPDATE & DELETE
1. Datensatz in beliebige Tabelle einfügen (INSERT INTO)
2. Datensatz in beliebiger Tabelle aktualisieren (UPDATE … WHERE …)
3. Datensätze löschen aufgrund Bedingung (DELETE FROM … WHERE)
4. Exkurs: Erweiterte Möglichkeiten durch PHP-Programmierung (oder andere Sprache)
5. Auch hier: Umbenennungs-Probleme
5. Funktionsbibliotheken am Beispiel Smartpill4. Den Function-Maker nutzen
5. Funktionen zur Laufzeit laden
6. Update vie URL
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
4
Was ist SQL?
• SQL ist keine Datenbank• SQL ist eine Sprache (Structured English Query Language)• Entwickelt Anfang der 1970er Jahre bei IBM• Wenige Sprachelemente zur Abfrage und Manipulation von
Daten und Datenbankstruktur• Von zahlreichen DBMS unterstützt (MySQL, MS SQL Server,
Oracle, DB/2, FileMaker,…)• Sprache im Wesentlichen unabhängig von verwendeter Engine
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
5
Konzeptionelle Unterschiede SQL-FM
• FileMaker: Suche selektiert Datensätze für weitere Bearbeitung• Befehle beziehen sich auf die Fundmenge
• SQL: Jedes Statement steht für sich• Suche und Datenausgabe/Manipulation im selben Befehl• Erstellen, Editieren, Löschen mit Bedingungsangabe
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
6
Neu in FileMaker 12: SQL-Select
• SQL-Statements an FileMaker schicken
• Allgemeine Form:SQLQueryAusführen( "SELECT field(s) FROM table [WHERE Bedingung ]")
• Einfachstes BeispielSQLQueryAusführen( "SELECT * FROM Adressen" ; "";"")
SQLQueryAusführen("SELECT d_AutorNachname_t , d_AutorVorname_t FROM DTitel WHERE LOWER( d_ort_t ) = ?" ; ", ";"dublin")
Connolly, James Connolly, James Mitchell, Arthur Martin, F.X. Martin, F.X. Nowlan, Kevin B. O'Broin, Leon O'Broin, Leon Nevin, Donal Cronin, James Cronin, James Lalor, Fintan Nowlan, Kieran
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
13
Liste verschiedener Werte holen II
SQLQueryAusführen("SELECT DISTINCT d_AutorNachname_t, d_AutorVorname_t FROM DTitel WHERE LOWER(d_ort_t) = ? ORDER BY d_AutorNachname_t, d_AutorVorname_t" ; ", " ; "dublin")
Connolly, James Cronin, James Lalor, Fintan Martin, F.X. Mitchell, Arthur Nevin, Donal Nowlan, Kevin B. Nowlan, Kieran O'Broin, Leon
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
14
Array gruppierter Summen holen
SQLQueryAusführen( "SELECT d_Ort_t, COUNT(d_Titel_t) FROM DTitel GROUP BY d_Ort_t"; "" ; "")
FROM DTitel TiJOIN DAutor Au ON Ti.\"_fk_Autor\" = Au.\"_pk_GUID\" WHERE Ti.d_Ort_t = ? ORDER BY Au.d_Nachname_t ASC";"";"";"Dublin")
Join oder: One Night Stand statt Beziehung
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
17
Script mit Join
#Ruft die Titel auf, bei denen Publikationsort gleich Geburtsort des Autors ist
Variable setzen [ $Result ; Wert:SQLQueryAusführen ( " SELECT Ti.\"_pk_GUID\" FROM DTitel Ti JOIN DAutor Au ON Ti.\"_fk_Autor\" = Au.\"_pk_GUID\" AND
Ti.\"d_Ort_t\" = Au.\"d_Geburtsort_t\" ORDER BY Au.\"d_Nachname_t\" ASC";"";"") ]
Wenn [ NICHT IstLeer( $Result ) ] Feldwert setzen [ DGlobals::v_TitelID_tg ; $Result ] Fenster fixieren Gehe zu Layout [ “DGlobals” (DGlobals) ] Gehe zu Bezugsdatensatz[ Aus Tabelle: “DGlobals.Titel” ; Mit
Layout: “lst.Titel” (DTitel) , Nur Bezugsdatensätze zeigen ]
Ende (wenn)
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
18
Mit Plugins SQL ausschöpfen
• Erweiterte Möglichkeiten durch INSERT, UPDATE & DELETE• Erweiterte Möglichkeiten durch PHP-Programmierung
FileMaker Konferenz 2012 Salzburg
www.filemaker-konferenz.com
Nicolaus Busch, N. Busch GmbHSQL-Kommandos
19
Plugins im Markt• 2empower FM SQL Runner
www.dracoventions.comReines SQL-Plugin, kostenlos, FM-Daten lesen in Versionen pre-12
• myFMButler DoSQLhttp://www.myfmbutler.com/Lesen und schreiben in FM via SQL, unterstützt neben SELECT, INSERT, UPDATE und DELETE auch CREATE, ALTER und DROP