Platzhalter in SQL-Anweisungen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

my $st = $db->prepare(q{
   INSERT INTO Angestellte VALUES (?, ?, ?)
});
$st->execute(split /:/) while (<>);
$st->finish();

*Innerhalb dem Text einer SQL-Anweisung dürfen an Stellen, bei denen die Angabe einer Konstante zulässig wäre, Fragezeichen als Platzhalter eingefügt werden.
 
*Bei der Ausführung dieser Anweisung können dann die konkreten Werte in Form einer Liste übermittelt werden.
 
*Diese Methode hat zwei große Vorteile gegenüber der Triviallösung, bei der jedesmal neu eine Anweisung in Perl zusammengebastelt wird:

*Sie ist deutlich schneller, da die SQL-Anweisung nur ein einziges Mal syntaktisch analysiert werden muß.
 
*Es entfällt die nicht ganz triviale Aufgabe, die zu übergebenden Zeichenketten korrekt in Anführungszeichen zu setzen.
 

*Per Voreinstellung erfolgt die Übergabe von Platzhaltern mit dem Typ VARCHAR. Dies ist auch dann kein Problem, wenn für die entsprechenden Felder andere Datentypen (z.B. INTEGER) erwartet werden, da SQL genügend tolerant ist. Der Datentyp kann jedoch auch (siehe Dokumentation) explizit spezifiziert werden.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000