SlideShare ist ein Scribd-Unternehmen logo
1 von 30
FileMaker Konferenz2010




                     Mit SQL-Kommandos FileMaker
                       Daten lesen - und schreiben

                                Integriertes SQL in FileMaker 12
                                     SQL mit Plugins nutzen




Nicolaus Busch, N. Busch GmbH                  1                   FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                           www.filemaker-konferenz.com
Struktur

           1. Was ist SQL?
           2. Konzeptionelle Unterschiede SQL-FM
           3. Neu in FileMaker 12: SQL-Select
                1. 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




Nicolaus Busch, N. Busch GmbH                                2                            FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                                  www.filemaker-konferenz.com
Struktur

           4. Mit Plugins SQL ausschöpfen
                1. 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 Smartpill
                4. Den Function-Maker nutzen
                5. Funktionen zur Laufzeit laden
                6. Update vie URL




Nicolaus Busch, N. Busch GmbH                               3                                FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                                     www.filemaker-konferenz.com
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




Nicolaus Busch, N. Busch GmbH                4                      FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                            www.filemaker-konferenz.com
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




Nicolaus Busch, N. Busch GmbH                         5                 FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                www.filemaker-konferenz.com
Neu in FileMaker 12: SQL-Select

           • SQL-Statements an FileMaker schicken

           • Allgemeine Form:
             SQLQueryAusführen( "SELECT field(s) FROM table [WHERE Bedingung ]")

           • Einfachstes Beispiel
             SQLQueryAusführen( "SELECT * FROM Adressen" ; "";"")
                        156231,Müller,DE,Walter,Helmut Kohl Allee 12,55116,Mainz
                        2312,Meier,AT,Irene,Erzherzog-Johann-Strasse 5,1172,Wien
                        12156,Ganter,CH,Hansueli,Bankenplatz 1,8000,Zürich
                        15612,Zehnder,,Rudolf,Paradeplatz 12,1100,Wien


                Unsortierte Liste, Feldreihenfolge wie erstellt




Nicolaus Busch, N. Busch GmbH                               6                       FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                            www.filemaker-konferenz.com
Datensatz prüfen

           • Gibt es dich schon?

               IstLeer( SQLQueryAusführen( "
               SELECT id FROM Adressen
               WHERE Nachname = 'Sarasin' AND Vorname = 'Philipp' ";
               "" ; "" ))

               •Ergebnis: Leer oder ID-Liste

           • Weichere Abfrage:

               SQLQueryAusführen( "
               SELECT id FROM Adressen
               WHERE LOWER( Nachname ) = 'sarasin' AND
               LOWER( Vorname ) = 'philipp' ";
               "" ; "" )




Nicolaus Busch, N. Busch GmbH                  7                       FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                               www.filemaker-konferenz.com
Das macht Probleme

           • Was geht: alle Arten von Abfragen mit SELECT
             Was geht nicht: alle Arten von Manipulation der Daten oder der Struktur

           • Unterstützung durch FileMaker bei Fehlern: keine

           • gross- und KLEINschreiBunG von Argumenten
           • Umbenennungs-Probleme
           • _Sonderzeichen in Feldname ⇒ " benutzen

           • Keine SQL-Abfragen in gespeicherten Berechnungen!
           • Kein SQL-Abfragen im Data Viewer stehen lassen!




Nicolaus Busch, N. Busch GmbH                   8                        FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                 www.filemaker-konferenz.com
Dynamische vs. statische Argumente

            SQLQueryAusführen( "SELECT id FROM Adressen
             WHERE Nachname = 'Sarasin' AND Vorname = 'Philipp' ";
             "" ; "" )

            SQLQueryAusführen( "SELECT id FROM Adressen
             WHERE Nachname = '" & Adressen::Nachname & "' AND Vorname = '" &
             Adressen::Vorname & "' ";
             "" ; "" )

            SQLQueryAusführen( "SELECT id FROM Adressen
             WHERE Nachname = ? AND Vorname = ? ";
             "" ; "" ;
             Adressen::Nachname ;
             Adressen::Vorname )




Nicolaus Busch, N. Busch GmbH                9                       FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                             www.filemaker-konferenz.com
Werte aus einem Datensatz holen

           SQLQueryAusführen(
             "SELECT plz, ort, land, strasse
              FROM Adressen
              WHERE NOT land = ? ";
               "" ; "" ;
               "AT"
           ) //end SQLQuery




                      55116,Mainz,DE, Helmut Kohl Allee 12
                      8000,Zürich,CH,Bankenplatz 1
                      1100,Wien,, Paradeplatz 12




Nicolaus Busch, N. Busch GmbH                             10   FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                       www.filemaker-konferenz.com
Einsatz im FileMaker-Script

           Beispiel: Neue Person anlegen

           Script ausführen[ fn.TroiDL_Input["Title =" & "Neue Person" & ¶ &
            "Labels =Name#Vorname " & ¶ &)" Aus Datei:“LL4_Toolbox”; (…)
           Variable setzen [ $Selection; Wert:HoleWert( Hole( ScriptErgebnis ) ; 1) ]
           Wenn [ $Selection = 1 ]
            Variable setzen [ $Nachname; Wert:HoleWert( Hole( ScriptErgebnis ) ; 2) ]
            Variable setzen [ $Vorname; Wert:HoleWert( Hole( ScriptErgebnis ) ; 3) ]

             Variable setzen [ $Matches; Wert:SQLQueryAusführen(
               "SELECT "_pk_GUID", "d_Nachname_t", "d_Vorname_t", "d_Geburtsort_t",
              "d_Geburtsjahr_n" FROM DAutor
              WHERE LOWER( d_Nachname_t ) = ?"
              & Falls( NICHT IstLeer( $Vorname) ; " AND LOWER( d_Vorname_t )= ?")
              & " ORDER BY d_Nachname_t, d_Vorname_t";
              ", " ; "" ; Kleinbuchstaben( $Nachname ); Kleinbuchstaben( $Vorname )) ]

               Wenn [ NICHT IstLeer( $Matches ) ]
                Script ausführen[ "fn.TroiDL_SelectFromList["Text =" & _::AuswahlDatensatzOderNeu ;
               & "¶" & "B1 =OK ¶B2 =Neu ¶B3 =NeueSuche ¶B4 =Abbruch ¶" Aus Datei:
               “LL4_Toolbox”; (…)

            (…)
Nicolaus Busch, N. Busch GmbH                         11                            FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                            www.filemaker-konferenz.com
Liste verschiedener Werte holen

           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




Nicolaus Busch, N. Busch GmbH               12                  FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                        www.filemaker-konferenz.com
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




Nicolaus Busch, N. Busch GmbH               13                FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                      www.filemaker-konferenz.com
Array gruppierter Summen holen

           SQLQueryAusführen( "SELECT d_Ort_t, COUNT(d_Titel_t) FROM DTitel
           GROUP BY d_Ort_t";
           "" ; "")

                  ,24
                  Dublin,1
                  Frankfurt,1
                  Frankfurt a.M,1
                  Frankfurt am Main,2
                  Hamburg,2
                  Stuttgart,1
                  Zürich,2




Nicolaus Busch, N. Busch GmbH              14                     FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                          www.filemaker-konferenz.com
Array im Script einsetzen

           Beispiel: Show count of distinct Values

           Variable setzen [$Feldname; Wert: Get( ActiveFieldName)]
           Variable setzen [$Tabelle; Wert: Get( LayoutTableName)]
           Variable setzen [$Query;
           Wert: "echo fm_sql_select("Select COUNT( DISTINCT " & $Feldname & ")
           FROM " & $Tabelle & "");"]
           Variable setzen [$Result; Wert:PHP_Execute ($Query)]
           Eigenes Dialogfeld anzeigen ["Unique values of " & $Feldname; $Result]




Nicolaus Busch, N. Busch GmbH                   15                   FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                             www.filemaker-konferenz.com
Join oder: One Night Stand statt
                               Beziehung
           ExecuteSQL ("SELECT Ti.d_Titel_t , Ti.d_Ort_t , Ti.d_Datierung_t,
             Au.d_Nachname_t , Au.d_Vorname_t , Au.d_Geburtsort_t ,
             Au.d_Geburtsjahr_n
            FROM DTitel Ti
           JOIN DAutor Au ON Ti."_fk_Autor" = Au."_pk_GUID"
            WHERE Ti.d_Ort_t = ?
            ORDER BY Au.d_Nachname_t ASC";"";"";
           "Dublin")



           ExecuteSQL ("SELECT Ti.d_Titel_t , Ti.d_Ort_t , Ti.d_Datierung_t,
             Au.d_Nachname_t , Au.d_Vorname_t , Au.d_Geburtsort_t ,
             Au.d_Geburtsjahr_n
           FROM DTitel Ti, DAutor Au
           WHERE Ti.d_Ort_t = ? AND Ti."_fk_Autor"=Au."_pk_GUID"
            ORDER BY Au.d_Nachname_t ASC";"";"";
           "Dublin")

Nicolaus Busch, N. Busch GmbH                  16                        FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                 www.filemaker-konferenz.com
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)


Nicolaus Busch, N. Busch GmbH                    17                         FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                    www.filemaker-konferenz.com
Mit Plugins SQL ausschöpfen

           • Erweiterte Möglichkeiten durch INSERT, UPDATE & DELETE
           • Erweiterte Möglichkeiten durch PHP-Programmierung




Nicolaus Busch, N. Busch GmbH              18                    FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                         www.filemaker-konferenz.com
Plugins im Markt
           • 2empower FM SQL Runner
             www.dracoventions.com
             Reines SQL-Plugin, kostenlos, FM-Daten lesen in Versionen pre-12
           • myFMButler DoSQL
             http://www.myfmbutler.com/
             Lesen und schreiben in FM via SQL, unterstützt neben SELECT, INSERT,
             UPDATE und DELETE auch CREATE, ALTER und DROP
           • Monkeybread MBS SQL Connection
             http://www.monkeybreadsoftware.de
             Unterstützt SELECT, INSERT, UPDATE und DELETE
             Umfangreicher Befehlssatz
           • Scodigo Smartpill
             www.scodigo.com
             Unterstützt SELECT, INSERT, UPDATE und DELETE
             Stellt Umgebung für PHP zur Verfügung
           • 360Works ScriptMaster4
             www.360works.com
             Unterstützt SELECT, INSERT, UPDATE und DELETE
             Stellt Umgebung für Groovy(Java) zur Verfügung


Nicolaus Busch, N. Busch GmbH                19                     FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                            www.filemaker-konferenz.com
CAVEAT!

            Ab hier geht es Ihren Daten an den Kragen!
            Testen, testen und nochmal testen
            Varianten erproben
            Save often, save early



           fm_sql_Execute("
              INSERT INTO Autor (Nachname,
               Vorname) VALUES
               ('Sarasin','Philipp')");
           ")

           fm_sql_Execute("
             UPDATE Autor SET "ID"='99ab23';
           ")



Nicolaus Busch, N. Busch GmbH                20           FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                  www.filemaker-konferenz.com
Datensatz einfügen (INSERT INTO)
           Allgemeine Form:
              fm_sql_Execute( "INSERT INTO " & $Database & " (" & $Names & ") "
              & " VALUES (" & $Values & ")");"



           Beispiel:
           echo fm_sql_Execute( "INSERT INTO DTitel (
               _fk_Autor, _pk_GUID, d_AusgabeSeite_t, d_AutorNachname_t, d_AutorVorname_t,
               d_CoAutoren_t, d_Datentyp_t, d_Datentyp2_t, d_Datierung_t, d_Kurztitel_t, d_Reihe_t,
               d_Titel_t, s_AenderungName_t, s_AenderungZeit_ts, s_ErstellungName_t,
               s_ErstellungZeit_ts )
           VALUES (
               'A_WFMDAABX8JWWKLAKJ.MN.120210.112303',
               'HPYWWJVG5FP92U5VC.MN.120210.115013',
               '8-14', 'Dyk', 'Silke', 'Stephan Lessenich', 't', 'Aufsatz', '2010',
               'Potentiale des Alters', 'Mittelweg 36, 19. Jg.', 'Die Potentiale des Alters und die
               Soziologie', 'nb', '19.02.2012 13:45:05', 'ps', '10.02.2012 11:50:13' )
           ");



Nicolaus Busch, N. Busch GmbH                         21                            FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                            www.filemaker-konferenz.com
Datensatz aktualisieren (UPDATE)

           Allgemeine Form:
           fm_sql_Execute( "UPDATE " & $Database & " SET " & $NamesValues & "
              WHERE ID = '" & $ID & "'");"


           Beispiel::
           echo fm_sql_Execute( "
            UPDATE Titel SET "_fk_Autor"='A_WFMDAABX8JWWKLAKJ.MN.120210.112303',
             "_fk_Bibliothek"='25634',
             "d_Titel_t"=' Diskursanalyse meets Gouvernementalitätsforschung : Perspektiven auf
              das Verhältnis von Subjekt, Sprache, Macht und Wissen',

           (…)

                 "s_ZoteroKey_t"='17F2YA89',
                 WHERE _pk_GUID = 'HPYWWJVG5FP92U5VC.MN.120210.115013'
           ");




Nicolaus Busch, N. Busch GmbH                         22                            FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                            www.filemaker-konferenz.com
INSERT & UPDATE

           fm_sql_Execute("
              INSERT INTO Autor (ID) VALUES ('99ab23')");
           ")

           fm_sql_Execute("
             UPDATE Autor
              SET "Nachname"='Sarasin',
              "Vorname"='Philipp'
              WHERE "ID" = '99ab23';
           ")




Nicolaus Busch, N. Busch GmbH                 23            FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                    www.filemaker-konferenz.com
Datensatz löschen (DELETE)

           Let(
             $Command = "echo fm_sql_execute( "
                DELETE FROM " & table & "
                WHERE "_pk_GUID"='" & id & "'
             ");";
             PHP_Execute ($Command)
           )


          LETZTE WARNUNG: NICHT SO

          Let(
            $Command = "echo fm_sql_execute( "
               DELETE FROM " & table
            ");";
            PHP_Execute ($Command)
          )


Nicolaus Busch, N. Busch GmbH                  24     FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                              www.filemaker-konferenz.com
Exkurs: Erweiterte Möglichkeiten
                   durch PHP- Programmierung
           Beispiel: Daten verschlüsseln

           Variable setzen [$PW; Wert:"IchBinGeheim"]
           Variable setzen [$Text; Wert:Get ( ActiveFieldContents )]
           Variable setzen [$Query; Wert:"$cipher = MCRYPT_RIJNDAEL_128;$key = hash('md5', '" &
              $PW & "');$iv_size = mcrypt_get_iv_size($cipher, MCRYPT_MODE_ECB);$iv =
              mcrypt_create_iv($iv_size, MCRYPT_RAND);$crypt_text = mcrypt_encrypt($cipher,
              $key, '" & $Text & "', MCRYPT_MODE_ECB, $iv);$Result =
              base64_encode($crypt_text);echo $Result;"]
           Variable setzen [$Result; Wert:PHP_Execute ( $Query )]
           Variable setzen [$Error; Wert:PHP_GetLastError]
           Feldwert setzen [; $Result]
           Gehe zu Feld []




Nicolaus Busch, N. Busch GmbH                       25                          FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                        www.filemaker-konferenz.com
Exkurs: Erweiterte Möglichkeiten
                   durch PHP- Programmierung
           Beispiel: Anzahl Werte ausgeben

           Variable setzen [$Feldname; Wert:Get( ActiveFieldName)]
           Variable setzen [$Tabelle; Wert:Get( LayoutTableName)]
           Variable setzen [$Query; Wert:"echo fm_sql_select("Select COUNT( DISTINCT " &
              $Feldname & ") FROM " & $Tabelle & "");"]
           Variable setzen [$Result; Wert:PHP_Execute ( $Query )]
           Variable setzen [$Error; Wert:PHP_GetLastError]
           Eigenes Dialogfeld anzeigen ["Unique values of " & $Feldname; $Number]




Nicolaus Busch, N. Busch GmbH                       26                           FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                                         www.filemaker-konferenz.com
Funktionsbibliotheken am Beispiel
                            Smartpill
           Den Function-Maker nutzen
           Tests definieren
           Sets erstellen




Nicolaus Busch, N. Busch GmbH           27   FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                     www.filemaker-konferenz.com
Funktionen zur Laufzeit laden

           Laden aus lokalen Dateien
           SetzeVar[ $Result ; Value:PHP_LoadFunctions ]

           Laden via URL
           SetzeVar[ $result; Value:PHP_LoadFunctionsFromURL (
             "http://www.beispiel.ch/xml/PHPx_Functions.xml" ) ]




Nicolaus Busch, N. Busch GmbH                28                    FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                           www.filemaker-konferenz.com
Further reading

           • http://www.w3schools.com/sql/
           • filemakerhacks.com: FM 12 ExecuteSQL: Robust Coding, part 1
           • Wikibooks: Einführung in SQL




Nicolaus Busch, N. Busch GmbH                29                     FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                                            www.filemaker-konferenz.com
FileMaker Konferenz2010

                    Vielen Dank unseren Sponsoren




       Danke für das Bewerten dieses Vortrages


Nicolaus Busch, N. Busch GmbH     30         FileMaker Konferenz 2012 Salzburg
SQL-Kommandos                                     www.filemaker-konferenz.com

Weitere ähnliche Inhalte

Andere mochten auch

FMK 2013 Entwickler Werkzeuge, Marcel Moré
FMK 2013 Entwickler Werkzeuge, Marcel MoréFMK 2013 Entwickler Werkzeuge, Marcel Moré
FMK 2013 Entwickler Werkzeuge, Marcel MoréVerein FM Konferenz
 
Präsentation wieser
Präsentation wieserPräsentation wieser
Präsentation wieserLaura Theunis
 
FONDO NACIONAL DE VIVIENDA APARTADÓ
 FONDO NACIONAL DE VIVIENDA APARTADÓ FONDO NACIONAL DE VIVIENDA APARTADÓ
FONDO NACIONAL DE VIVIENDA APARTADÓVIDEOS DE URABÁ
 
Das Kleine Buch über Dankbarkeit - A Little Children's Book about Gratitude
Das Kleine Buch über Dankbarkeit - A Little Children's Book about GratitudeDas Kleine Buch über Dankbarkeit - A Little Children's Book about Gratitude
Das Kleine Buch über Dankbarkeit - A Little Children's Book about GratitudeFreekidstories
 
Hebraeer 11 - Hebrews 11
Hebraeer 11 - Hebrews 11Hebraeer 11 - Hebrews 11
Hebraeer 11 - Hebrews 11Freekidstories
 
Stabhochsprung: Anlauf Teil 2/ Der Anfang
Stabhochsprung: Anlauf Teil 2/ Der AnfangStabhochsprung: Anlauf Teil 2/ Der Anfang
Stabhochsprung: Anlauf Teil 2/ Der AnfangGuenther Lohre
 
Ein lob der schöpfung - A Creation Praise
Ein lob der schöpfung - A Creation PraiseEin lob der schöpfung - A Creation Praise
Ein lob der schöpfung - A Creation PraiseFreekidstories
 
Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"
Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"
Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"GERMAN RACING Concept Challenge
 
52 Wochen Erfolg mit Geschäftskunden - Kapitel 02
52 Wochen Erfolg mit Geschäftskunden - Kapitel 0252 Wochen Erfolg mit Geschäftskunden - Kapitel 02
52 Wochen Erfolg mit Geschäftskunden - Kapitel 02Stephan Heinrich
 
EJERCICIOS JOSE GREGORIO MELENDEZ
EJERCICIOS JOSE GREGORIO MELENDEZEJERCICIOS JOSE GREGORIO MELENDEZ
EJERCICIOS JOSE GREGORIO MELENDEZJose Gomez
 
A much courted region Central Asia, the Great Powers, and its regional neighb...
A much courted region Central Asia, the Great Powers, and its regional neighb...A much courted region Central Asia, the Great Powers, and its regional neighb...
A much courted region Central Asia, the Great Powers, and its regional neighb...GIGA Informationszentrum
 
Comenius-Trip to Hungary
Comenius-Trip to HungaryComenius-Trip to Hungary
Comenius-Trip to HungaryDaniel Kamm
 
Was ist glaube? - What is faith?
Was ist glaube? - What is faith?Was ist glaube? - What is faith?
Was ist glaube? - What is faith?Freekidstories
 
Wahhabismus in koranübersetzungen
Wahhabismus in koranübersetzungenWahhabismus in koranübersetzungen
Wahhabismus in koranübersetzungenSanussi
 

Andere mochten auch (20)

FMK 2013 Entwickler Werkzeuge, Marcel Moré
FMK 2013 Entwickler Werkzeuge, Marcel MoréFMK 2013 Entwickler Werkzeuge, Marcel Moré
FMK 2013 Entwickler Werkzeuge, Marcel Moré
 
Studie: Fahrassistenz Systeme fuer aeltere Autofahrer
Studie: Fahrassistenz Systeme fuer aeltere AutofahrerStudie: Fahrassistenz Systeme fuer aeltere Autofahrer
Studie: Fahrassistenz Systeme fuer aeltere Autofahrer
 
Präsentation wieser
Präsentation wieserPräsentation wieser
Präsentation wieser
 
Rocio
RocioRocio
Rocio
 
FONDO NACIONAL DE VIVIENDA APARTADÓ
 FONDO NACIONAL DE VIVIENDA APARTADÓ FONDO NACIONAL DE VIVIENDA APARTADÓ
FONDO NACIONAL DE VIVIENDA APARTADÓ
 
Das Kleine Buch über Dankbarkeit - A Little Children's Book about Gratitude
Das Kleine Buch über Dankbarkeit - A Little Children's Book about GratitudeDas Kleine Buch über Dankbarkeit - A Little Children's Book about Gratitude
Das Kleine Buch über Dankbarkeit - A Little Children's Book about Gratitude
 
Pl sql
Pl sqlPl sql
Pl sql
 
Hebraeer 11 - Hebrews 11
Hebraeer 11 - Hebrews 11Hebraeer 11 - Hebrews 11
Hebraeer 11 - Hebrews 11
 
Lernstand8
Lernstand8Lernstand8
Lernstand8
 
Stabhochsprung: Anlauf Teil 2/ Der Anfang
Stabhochsprung: Anlauf Teil 2/ Der AnfangStabhochsprung: Anlauf Teil 2/ Der Anfang
Stabhochsprung: Anlauf Teil 2/ Der Anfang
 
Ein lob der schöpfung - A Creation Praise
Ein lob der schöpfung - A Creation PraiseEin lob der schöpfung - A Creation Praise
Ein lob der schöpfung - A Creation Praise
 
Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"
Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"
Final-Präsentation GERMAN RACING Concept Challenge - 1. Platz: "ChangeRein"
 
52 Wochen Erfolg mit Geschäftskunden - Kapitel 02
52 Wochen Erfolg mit Geschäftskunden - Kapitel 0252 Wochen Erfolg mit Geschäftskunden - Kapitel 02
52 Wochen Erfolg mit Geschäftskunden - Kapitel 02
 
EJERCICIOS JOSE GREGORIO MELENDEZ
EJERCICIOS JOSE GREGORIO MELENDEZEJERCICIOS JOSE GREGORIO MELENDEZ
EJERCICIOS JOSE GREGORIO MELENDEZ
 
A much courted region Central Asia, the Great Powers, and its regional neighb...
A much courted region Central Asia, the Great Powers, and its regional neighb...A much courted region Central Asia, the Great Powers, and its regional neighb...
A much courted region Central Asia, the Great Powers, and its regional neighb...
 
Comenius-Trip to Hungary
Comenius-Trip to HungaryComenius-Trip to Hungary
Comenius-Trip to Hungary
 
Was ist glaube? - What is faith?
Was ist glaube? - What is faith?Was ist glaube? - What is faith?
Was ist glaube? - What is faith?
 
Technik verständlich kommunizieren - TA01-20-A
Technik verständlich kommunizieren - TA01-20-ATechnik verständlich kommunizieren - TA01-20-A
Technik verständlich kommunizieren - TA01-20-A
 
Wahhabismus in koranübersetzungen
Wahhabismus in koranübersetzungenWahhabismus in koranübersetzungen
Wahhabismus in koranübersetzungen
 
Test
TestTest
Test
 

Ähnlich wie FMK2012: Mit SQL-Kommandos FileMaker Daten lesen - und schreiben von Nico Busch

Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankHeterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankUlrike Schwinn
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...Verein FM Konferenz
 
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Gerrit Beine
 
My sql installation
My sql installationMy sql installation
My sql installationirshankz
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Torsten Kleiber
 
Object-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopObject-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopWaldemar Dell
 
Hybrid Partitioned Tables in Oracle Database 19c
Hybrid Partitioned Tables in Oracle Database 19cHybrid Partitioned Tables in Oracle Database 19c
Hybrid Partitioned Tables in Oracle Database 19cUlrike Schwinn
 
Azure SQL Database vs. Azure SQL Data Warehouse
Azure SQL Database vs. Azure SQL Data WarehouseAzure SQL Database vs. Azure SQL Data Warehouse
Azure SQL Database vs. Azure SQL Data WarehousepmOne Analytics GmbH
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaGeorg Knon
 
SplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use CaseSplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use CaseSplunk
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunk
 
FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...
FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...
FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...Verein FM Konferenz
 
Oracle Datenbank-Architektur
Oracle Datenbank-ArchitekturOracle Datenbank-Architektur
Oracle Datenbank-ArchitekturMarkus Flechtner
 
Apple iOS - Daten
Apple iOS - DatenApple iOS - Daten
Apple iOS - Datenmesseb
 
FMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold KegebeinFMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold KegebeinVerein FM Konferenz
 
Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Kerstin Puschke
 
Entity Framework hinter den Kulissen
Entity Framework hinter den KulissenEntity Framework hinter den Kulissen
Entity Framework hinter den KulissenAndré Krämer
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Peter Ramm
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2 oraclebudb
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Ulrike Schwinn
 

Ähnlich wie FMK2012: Mit SQL-Kommandos FileMaker Daten lesen - und schreiben von Nico Busch (20)

Heterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle DatenbankHeterogene Daten(-strukturen) in der Oracle Datenbank
Heterogene Daten(-strukturen) in der Oracle Datenbank
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
 
Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)Volltextsuchen in RDBMS (2004)
Volltextsuchen in RDBMS (2004)
 
My sql installation
My sql installationMy sql installation
My sql installation
 
Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020Agile Oracle database modeling and development - APEX Connect 2020
Agile Oracle database modeling and development - APEX Connect 2020
 
Object-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - WorkshopObject-orientied way of using mysqli interface - Workshop
Object-orientied way of using mysqli interface - Workshop
 
Hybrid Partitioned Tables in Oracle Database 19c
Hybrid Partitioned Tables in Oracle Database 19cHybrid Partitioned Tables in Oracle Database 19c
Hybrid Partitioned Tables in Oracle Database 19c
 
Azure SQL Database vs. Azure SQL Data Warehouse
Azure SQL Database vs. Azure SQL Data WarehouseAzure SQL Database vs. Azure SQL Data Warehouse
Azure SQL Database vs. Azure SQL Data Warehouse
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case Helvetia
 
SplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use CaseSplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use Case
 
SplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case HelvetiaSplunkLive! Zürich 2016 - Use Case Helvetia
SplunkLive! Zürich 2016 - Use Case Helvetia
 
FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...
FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...
FMK2012: FileMaker und Java ...und es öffnen sich neue Welten! von Bernhard ...
 
Oracle Datenbank-Architektur
Oracle Datenbank-ArchitekturOracle Datenbank-Architektur
Oracle Datenbank-Architektur
 
Apple iOS - Daten
Apple iOS - DatenApple iOS - Daten
Apple iOS - Daten
 
FMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold KegebeinFMK2015: Virtuelle Tabellen by Arnold Kegebein
FMK2015: Virtuelle Tabellen by Arnold Kegebein
 
Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)Einstieg in relationale Datenbanken mit MySQL (Folien)
Einstieg in relationale Datenbanken mit MySQL (Folien)
 
Entity Framework hinter den Kulissen
Entity Framework hinter den KulissenEntity Framework hinter den Kulissen
Entity Framework hinter den Kulissen
 
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
Oracle-DB: Beeinflussen der Ausführungspläne von SQL-Statements ohne Code-Anp...
 
Oracle Database 12c Release 2
Oracle Database 12c Release 2 Oracle Database 12c Release 2
Oracle Database 12c Release 2
 
Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2Überblick zu Oracle Database 12c Release 2
Überblick zu Oracle Database 12c Release 2
 

Mehr von Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfVerein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsVerein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsVerein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzVerein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzVerein FM Konferenz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzVerein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingVerein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserVerein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtVerein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtVerein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonVerein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussVerein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussVerein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfVerein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonVerein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoVerein FM Konferenz
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaVerein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaVerein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairVerein FM Konferenz
 

Mehr von Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 

FMK2012: Mit SQL-Kommandos FileMaker Daten lesen - und schreiben von Nico Busch

  • 1. FileMaker Konferenz2010 Mit SQL-Kommandos FileMaker Daten lesen - und schreiben Integriertes SQL in FileMaker 12 SQL mit Plugins nutzen Nicolaus Busch, N. Busch GmbH 1 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 2. Struktur 1. Was ist SQL? 2. Konzeptionelle Unterschiede SQL-FM 3. Neu in FileMaker 12: SQL-Select 1. 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 Nicolaus Busch, N. Busch GmbH 2 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 3. Struktur 4. Mit Plugins SQL ausschöpfen 1. 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 Smartpill 4. Den Function-Maker nutzen 5. Funktionen zur Laufzeit laden 6. Update vie URL Nicolaus Busch, N. Busch GmbH 3 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 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 Nicolaus Busch, N. Busch GmbH 4 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 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 Nicolaus Busch, N. Busch GmbH 5 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 6. Neu in FileMaker 12: SQL-Select • SQL-Statements an FileMaker schicken • Allgemeine Form: SQLQueryAusführen( "SELECT field(s) FROM table [WHERE Bedingung ]") • Einfachstes Beispiel SQLQueryAusführen( "SELECT * FROM Adressen" ; "";"")  156231,Müller,DE,Walter,Helmut Kohl Allee 12,55116,Mainz  2312,Meier,AT,Irene,Erzherzog-Johann-Strasse 5,1172,Wien  12156,Ganter,CH,Hansueli,Bankenplatz 1,8000,Zürich  15612,Zehnder,,Rudolf,Paradeplatz 12,1100,Wien  Unsortierte Liste, Feldreihenfolge wie erstellt Nicolaus Busch, N. Busch GmbH 6 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 7. Datensatz prüfen • Gibt es dich schon? IstLeer( SQLQueryAusführen( " SELECT id FROM Adressen WHERE Nachname = 'Sarasin' AND Vorname = 'Philipp' "; "" ; "" )) •Ergebnis: Leer oder ID-Liste • Weichere Abfrage: SQLQueryAusführen( " SELECT id FROM Adressen WHERE LOWER( Nachname ) = 'sarasin' AND LOWER( Vorname ) = 'philipp' "; "" ; "" ) Nicolaus Busch, N. Busch GmbH 7 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 8. Das macht Probleme • Was geht: alle Arten von Abfragen mit SELECT Was geht nicht: alle Arten von Manipulation der Daten oder der Struktur • Unterstützung durch FileMaker bei Fehlern: keine • gross- und KLEINschreiBunG von Argumenten • Umbenennungs-Probleme • _Sonderzeichen in Feldname ⇒ " benutzen • Keine SQL-Abfragen in gespeicherten Berechnungen! • Kein SQL-Abfragen im Data Viewer stehen lassen! Nicolaus Busch, N. Busch GmbH 8 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 9. Dynamische vs. statische Argumente  SQLQueryAusführen( "SELECT id FROM Adressen WHERE Nachname = 'Sarasin' AND Vorname = 'Philipp' "; "" ; "" )  SQLQueryAusführen( "SELECT id FROM Adressen WHERE Nachname = '" & Adressen::Nachname & "' AND Vorname = '" & Adressen::Vorname & "' "; "" ; "" )  SQLQueryAusführen( "SELECT id FROM Adressen WHERE Nachname = ? AND Vorname = ? "; "" ; "" ; Adressen::Nachname ; Adressen::Vorname ) Nicolaus Busch, N. Busch GmbH 9 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 10. Werte aus einem Datensatz holen SQLQueryAusführen( "SELECT plz, ort, land, strasse FROM Adressen WHERE NOT land = ? "; "" ; "" ; "AT" ) //end SQLQuery  55116,Mainz,DE, Helmut Kohl Allee 12  8000,Zürich,CH,Bankenplatz 1  1100,Wien,, Paradeplatz 12 Nicolaus Busch, N. Busch GmbH 10 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 11. Einsatz im FileMaker-Script Beispiel: Neue Person anlegen Script ausführen[ fn.TroiDL_Input["Title =" & "Neue Person" & ¶ & "Labels =Name#Vorname " & ¶ &)" Aus Datei:“LL4_Toolbox”; (…) Variable setzen [ $Selection; Wert:HoleWert( Hole( ScriptErgebnis ) ; 1) ] Wenn [ $Selection = 1 ] Variable setzen [ $Nachname; Wert:HoleWert( Hole( ScriptErgebnis ) ; 2) ] Variable setzen [ $Vorname; Wert:HoleWert( Hole( ScriptErgebnis ) ; 3) ] Variable setzen [ $Matches; Wert:SQLQueryAusführen( "SELECT "_pk_GUID", "d_Nachname_t", "d_Vorname_t", "d_Geburtsort_t", "d_Geburtsjahr_n" FROM DAutor WHERE LOWER( d_Nachname_t ) = ?" & Falls( NICHT IstLeer( $Vorname) ; " AND LOWER( d_Vorname_t )= ?") & " ORDER BY d_Nachname_t, d_Vorname_t"; ", " ; "" ; Kleinbuchstaben( $Nachname ); Kleinbuchstaben( $Vorname )) ] Wenn [ NICHT IstLeer( $Matches ) ] Script ausführen[ "fn.TroiDL_SelectFromList["Text =" & _::AuswahlDatensatzOderNeu ; & "¶" & "B1 =OK ¶B2 =Neu ¶B3 =NeueSuche ¶B4 =Abbruch ¶" Aus Datei: “LL4_Toolbox”; (…) (…) Nicolaus Busch, N. Busch GmbH 11 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 12. Liste verschiedener Werte holen 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 Nicolaus Busch, N. Busch GmbH 12 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 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 Nicolaus Busch, N. Busch GmbH 13 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 14. Array gruppierter Summen holen SQLQueryAusführen( "SELECT d_Ort_t, COUNT(d_Titel_t) FROM DTitel GROUP BY d_Ort_t"; "" ; "")  ,24  Dublin,1  Frankfurt,1  Frankfurt a.M,1  Frankfurt am Main,2  Hamburg,2  Stuttgart,1  Zürich,2 Nicolaus Busch, N. Busch GmbH 14 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 15. Array im Script einsetzen Beispiel: Show count of distinct Values Variable setzen [$Feldname; Wert: Get( ActiveFieldName)] Variable setzen [$Tabelle; Wert: Get( LayoutTableName)] Variable setzen [$Query; Wert: "echo fm_sql_select("Select COUNT( DISTINCT " & $Feldname & ") FROM " & $Tabelle & "");"] Variable setzen [$Result; Wert:PHP_Execute ($Query)] Eigenes Dialogfeld anzeigen ["Unique values of " & $Feldname; $Result] Nicolaus Busch, N. Busch GmbH 15 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 16. Join oder: One Night Stand statt Beziehung ExecuteSQL ("SELECT Ti.d_Titel_t , Ti.d_Ort_t , Ti.d_Datierung_t, Au.d_Nachname_t , Au.d_Vorname_t , Au.d_Geburtsort_t , Au.d_Geburtsjahr_n FROM DTitel Ti JOIN DAutor Au ON Ti."_fk_Autor" = Au."_pk_GUID" WHERE Ti.d_Ort_t = ? ORDER BY Au.d_Nachname_t ASC";"";""; "Dublin") ExecuteSQL ("SELECT Ti.d_Titel_t , Ti.d_Ort_t , Ti.d_Datierung_t, Au.d_Nachname_t , Au.d_Vorname_t , Au.d_Geburtsort_t , Au.d_Geburtsjahr_n FROM DTitel Ti, DAutor Au WHERE Ti.d_Ort_t = ? AND Ti."_fk_Autor"=Au."_pk_GUID" ORDER BY Au.d_Nachname_t ASC";"";""; "Dublin") Nicolaus Busch, N. Busch GmbH 16 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 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) Nicolaus Busch, N. Busch GmbH 17 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 18. Mit Plugins SQL ausschöpfen • Erweiterte Möglichkeiten durch INSERT, UPDATE & DELETE • Erweiterte Möglichkeiten durch PHP-Programmierung Nicolaus Busch, N. Busch GmbH 18 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 19. Plugins im Markt • 2empower FM SQL Runner www.dracoventions.com Reines SQL-Plugin, kostenlos, FM-Daten lesen in Versionen pre-12 • myFMButler DoSQL http://www.myfmbutler.com/ Lesen und schreiben in FM via SQL, unterstützt neben SELECT, INSERT, UPDATE und DELETE auch CREATE, ALTER und DROP • Monkeybread MBS SQL Connection http://www.monkeybreadsoftware.de Unterstützt SELECT, INSERT, UPDATE und DELETE Umfangreicher Befehlssatz • Scodigo Smartpill www.scodigo.com Unterstützt SELECT, INSERT, UPDATE und DELETE Stellt Umgebung für PHP zur Verfügung • 360Works ScriptMaster4 www.360works.com Unterstützt SELECT, INSERT, UPDATE und DELETE Stellt Umgebung für Groovy(Java) zur Verfügung Nicolaus Busch, N. Busch GmbH 19 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 20. CAVEAT!  Ab hier geht es Ihren Daten an den Kragen!  Testen, testen und nochmal testen  Varianten erproben  Save often, save early fm_sql_Execute(" INSERT INTO Autor (Nachname, Vorname) VALUES ('Sarasin','Philipp')"); ") fm_sql_Execute(" UPDATE Autor SET "ID"='99ab23'; ") Nicolaus Busch, N. Busch GmbH 20 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 21. Datensatz einfügen (INSERT INTO) Allgemeine Form: fm_sql_Execute( "INSERT INTO " & $Database & " (" & $Names & ") " & " VALUES (" & $Values & ")");" Beispiel: echo fm_sql_Execute( "INSERT INTO DTitel ( _fk_Autor, _pk_GUID, d_AusgabeSeite_t, d_AutorNachname_t, d_AutorVorname_t, d_CoAutoren_t, d_Datentyp_t, d_Datentyp2_t, d_Datierung_t, d_Kurztitel_t, d_Reihe_t, d_Titel_t, s_AenderungName_t, s_AenderungZeit_ts, s_ErstellungName_t, s_ErstellungZeit_ts ) VALUES ( 'A_WFMDAABX8JWWKLAKJ.MN.120210.112303', 'HPYWWJVG5FP92U5VC.MN.120210.115013', '8-14', 'Dyk', 'Silke', 'Stephan Lessenich', 't', 'Aufsatz', '2010', 'Potentiale des Alters', 'Mittelweg 36, 19. Jg.', 'Die Potentiale des Alters und die Soziologie', 'nb', '19.02.2012 13:45:05', 'ps', '10.02.2012 11:50:13' ) "); Nicolaus Busch, N. Busch GmbH 21 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 22. Datensatz aktualisieren (UPDATE) Allgemeine Form: fm_sql_Execute( "UPDATE " & $Database & " SET " & $NamesValues & " WHERE ID = '" & $ID & "'");" Beispiel:: echo fm_sql_Execute( " UPDATE Titel SET "_fk_Autor"='A_WFMDAABX8JWWKLAKJ.MN.120210.112303', "_fk_Bibliothek"='25634', "d_Titel_t"=' Diskursanalyse meets Gouvernementalitätsforschung : Perspektiven auf das Verhältnis von Subjekt, Sprache, Macht und Wissen', (…) "s_ZoteroKey_t"='17F2YA89', WHERE _pk_GUID = 'HPYWWJVG5FP92U5VC.MN.120210.115013' "); Nicolaus Busch, N. Busch GmbH 22 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 23. INSERT & UPDATE fm_sql_Execute(" INSERT INTO Autor (ID) VALUES ('99ab23')"); ") fm_sql_Execute(" UPDATE Autor SET "Nachname"='Sarasin', "Vorname"='Philipp' WHERE "ID" = '99ab23'; ") Nicolaus Busch, N. Busch GmbH 23 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 24. Datensatz löschen (DELETE) Let( $Command = "echo fm_sql_execute( " DELETE FROM " & table & " WHERE "_pk_GUID"='" & id & "' ");"; PHP_Execute ($Command) ) LETZTE WARNUNG: NICHT SO Let( $Command = "echo fm_sql_execute( " DELETE FROM " & table ");"; PHP_Execute ($Command) ) Nicolaus Busch, N. Busch GmbH 24 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 25. Exkurs: Erweiterte Möglichkeiten durch PHP- Programmierung Beispiel: Daten verschlüsseln Variable setzen [$PW; Wert:"IchBinGeheim"] Variable setzen [$Text; Wert:Get ( ActiveFieldContents )] Variable setzen [$Query; Wert:"$cipher = MCRYPT_RIJNDAEL_128;$key = hash('md5', '" & $PW & "');$iv_size = mcrypt_get_iv_size($cipher, MCRYPT_MODE_ECB);$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);$crypt_text = mcrypt_encrypt($cipher, $key, '" & $Text & "', MCRYPT_MODE_ECB, $iv);$Result = base64_encode($crypt_text);echo $Result;"] Variable setzen [$Result; Wert:PHP_Execute ( $Query )] Variable setzen [$Error; Wert:PHP_GetLastError] Feldwert setzen [; $Result] Gehe zu Feld [] Nicolaus Busch, N. Busch GmbH 25 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 26. Exkurs: Erweiterte Möglichkeiten durch PHP- Programmierung Beispiel: Anzahl Werte ausgeben Variable setzen [$Feldname; Wert:Get( ActiveFieldName)] Variable setzen [$Tabelle; Wert:Get( LayoutTableName)] Variable setzen [$Query; Wert:"echo fm_sql_select("Select COUNT( DISTINCT " & $Feldname & ") FROM " & $Tabelle & "");"] Variable setzen [$Result; Wert:PHP_Execute ( $Query )] Variable setzen [$Error; Wert:PHP_GetLastError] Eigenes Dialogfeld anzeigen ["Unique values of " & $Feldname; $Number] Nicolaus Busch, N. Busch GmbH 26 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 27. Funktionsbibliotheken am Beispiel Smartpill  Den Function-Maker nutzen  Tests definieren  Sets erstellen Nicolaus Busch, N. Busch GmbH 27 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 28. Funktionen zur Laufzeit laden Laden aus lokalen Dateien SetzeVar[ $Result ; Value:PHP_LoadFunctions ] Laden via URL SetzeVar[ $result; Value:PHP_LoadFunctionsFromURL ( "http://www.beispiel.ch/xml/PHPx_Functions.xml" ) ] Nicolaus Busch, N. Busch GmbH 28 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 29. Further reading • http://www.w3schools.com/sql/ • filemakerhacks.com: FM 12 ExecuteSQL: Robust Coding, part 1 • Wikibooks: Einführung in SQL Nicolaus Busch, N. Busch GmbH 29 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com
  • 30. FileMaker Konferenz2010 Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages Nicolaus Busch, N. Busch GmbH 30 FileMaker Konferenz 2012 Salzburg SQL-Kommandos www.filemaker-konferenz.com