SQLite-Bezeichner zitieren
Setzen Sie einen SQLite-Bezeichner in doppelte Anführungszeichen und verdoppeln Sie seine inneren Anführungszeichen.
def quote_identifier(name):
if not isinstance(name, str) or not name or chr(0) in name:
raise ValueError("identifier.invalid")
return '"' + name.replace('"', '""') + '"'- Modelle
- Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
- Projekt
- Prüfen Sie Leerzeichen und SQL-ähnlichen Text und weisen Sie leere Namen und NUL zurück, ohne einen punktierten Namen aufzuteilen.
- Vor dem Anwenden prüfen
- Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
def quote_identifier(name):
if not isinstance(name, str) or not name or chr(0) in name:
raise ValueError("identifier.invalid")
return '"' + name.replace('"', '""') + '"'Abfragestruktur von den enthaltenen Werten trennen
Dynamischer Abfragecode muss zwischen einem gesuchten Wert und dem Namen eines Datenbankobjekts klar unterscheiden. QuoteMica bietet eine KI-Programmierumgebung unter Windows, um diese Unterscheidung in Ihren Projektdateien zu prüfen. Beginnen Sie mit der abfrageerzeugenden Funktion und erklären Sie, welche Teile variieren dürfen. Lassen Sie den Assistenten vor Änderungen die Herkunft jedes Namens und Werts verfolgen.
Das Beispiel zur Quotierung von SQLite-Bezeichnern ist ein möglicher Untersuchungsfall. Prüfen Sie, wie quotierte Namen zum Abfragegenerator gelangen und ob die Anwendung diese Namen überhaupt zulassen sollte. Korrekte Darstellung und Berechtigung sind getrennte Entscheidungen. Ein nützlicher Vorschlag erläutert sowohl die begrenzte Verantwortung der Hilfsfunktion als auch die Einschränkungen des Aufrufers und nennt konkrete ausführbare Abfragen zur Prüfung des beabsichtigten Verhaltens.
Wählen Sie ein unzensiertes KI-Modell, wenn Ihr unterstützter OpenAI-kompatibler oder Anthropic-Endpunkt eines anbietet, und ergänzen Sie erforderliche Zugangsdaten. Anbieterrichtlinien, Werkzeugunterstützung und Kontextgrenzen gelten weiterhin für die Verbindung. Lesen Sie vorgeschlagene Abfrageänderungen und führen Sie Datenbanktests des Projekts gegen repräsentative Schemanamen aus. Ein lokales Modell benötigt einen separat laufenden Server und belegt nicht, dass Datenbankwerkzeuge oder andere verbundene Dienste lokal arbeiten.
Prüfpunkte für dynamischen Abfragecode
Bedeutet die Quotierung eines Tabellennamens, dass er erlaubt sein sollte?
Nein. Quotierung stellt einen Bezeichner in der Abfragesyntax dar; die Anwendung muss weiterhin entscheiden, welche Objekte angesprochen werden dürfen. Lassen Sie diese Entscheidung beim Aufrufer prüfen, besonders wenn ein Name aus nutzerkontrollierter Eingabe stammt.
Kann ich Spaltennamen wie gewöhnliche gebundene Werte behandeln?
Behandeln Sie Abfragestruktur und Datenwerte als getrennte Prüfthemen. Untersuchen Sie die Möglichkeiten Ihrer Datenbankschnittstelle und den Aufbau der vorhandenen Abfrage. Das Bezeichnerbeispiel belegt nicht, dass die Bindung eines Werts einen beliebigen Spaltennamen auswählen kann.
Was sollte ein Regressionstest für den Abfragegenerator nachweisen?
Er sollte die tatsächliche Abfrage mit einem erlaubten, quotierungsbedürftigen Namen ausführen und das beabsichtigte Ergebnis bestätigen. Fügen Sie abgelehnte Namen hinzu, sofern die Anwendung sie einschränkt. Die Prüfung der erzeugten Zeichenfolge allein verifiziert weder Ausführung noch Berechtigungsverhalten.
Findet QuoteMica automatisch jede dynamische Abfrage?
Gehen Sie nicht von vollständiger Abdeckung aus. Fragen Sie, welche Dateien und Aufrufstellen dem Vorschlag zugrunde liegen, und benennen Sie bekannte Abfragegeneratoren selbst. Modellkontext und verfügbare Werkzeuge begrenzen die Untersuchung; prüfen Sie unbeachtete Pfade, bevor Sie eine umfassendere Änderung als abgeschlossen betrachten.
QuoteMica · Aktualisiert 2026-10-25