Ist es möglich, 2 Einfügungen auszuführen oder Update-Anweisungen mit cfquery auszuführen?
Höchstwahrscheinlich ja. Ob Sie jedoch mehrere Anweisungen ausführen können, hängt vom Datenbanktyp und den Treiber-/Verbindungseinstellungen ab. Wenn Sie z. B. eine MS SQL-Datenquelle erstellen, sind mehrere Anweisungen standardmäßig erlaubt. Während MySQL-Treiber oft deaktivieren mehrere Anweisungen standardmäßig. Das soll helfen, Sql-Injection zu vermeiden. In diesem Fall müssen Sie also in Ihren Verbindungseinstellungen ausdrücklich mehrere Anweisungen aktivieren. Andernfalls können Sie keine Mehrfachanweisungen verwenden. Es gibt auch einige Datenbanken (in der Regel Desktop-Datenbanken wie MS Access), die mehrere Anweisungen überhaupt nicht unterstützen. Ich glaube also nicht, dass es eine pauschale Antwort auf diese Frage gibt.
Wenn die beiden Einfüge-/Aktualisierungsanweisungen miteinander verbunden sind, sollten Sie auf jeden Fall eine cftransaction verwenden, wie Sam vorgeschlagen hat. Dadurch wird sichergestellt, dass die Anweisungen als eine Einheit behandelt werden, d.h. entweder sind sie alle erfolgreich oder sie schlagen fehl. So werden keine unvollständigen oder inkonsistenten Daten hinterlassen. Um dies zu erreichen, wird eine einzige Verbindung für beide Abfragen in der Transaktion verwendet.
Ich denke, jedes Mal, wenn wir öffnen wir eine neue Verbindung DB
Wie Sam schon sagte, hängt das von Ihren Einstellungen ab und davon, ob Sie cftransaction verwenden. Wenn Sie "Maintain Connections" aktivieren (unter "Datasource settings" im CF Administrator), wird CF einen Pool offener Verbindungen unterhalten. Wenn Sie also eine Abfrage ausführen, greift CF einfach auf eine offene Verbindung aus dem Pool zurück, anstatt jedes Mal eine neue zu öffnen. Wenn Sie cftransaction verwenden, sollte für alle Abfragen dieselbe Verbindung verwendet werden. Unabhängig davon, ob Maintain Connections aktiviert ist oder nicht.