SQLite-identificatoren aanhalen
Zet één SQLite-identificator tussen dubbele aanhalingstekens en verdubbel de interne aanhalingstekens.
def quote_identifier(name):
if not isinstance(name, str) or not name or chr(0) in name:
raise ValueError("identifier.invalid")
return '"' + name.replace('"', '""') + '"'- Modellen
- Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
- Project
- Test spaties en SQL-achtige tekst en weiger lege namen en NUL zonder een naam met punten in meerdere identificatoren op te delen.
- Controleer vóór het toepassen
- Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
def quote_identifier(name):
if not isinstance(name, str) or not name or chr(0) in name:
raise ValueError("identifier.invalid")
return '"' + name.replace('"', '""') + '"'Scheid de structuur van een query van de waarden die zij bevat
Dynamische querycode moet duidelijk onderscheid maken tussen een zoekwaarde en de naam van een databaseobject. QuoteMica biedt een AI-programmeeromgeving voor Windows om dat onderscheid in je projectbestanden te beoordelen. Begin met de functie die de query maakt en leg uit welke delen mogen variëren. Vraag de assistent de herkomst van elke naam en waarde te volgen voordat hij wijzigingen voorstelt.
Het voorbeeld voor het citeren van SQLite-identificatoren is één geval dat je kunt onderzoeken. Beoordeel hoe geciteerde namen de querybouwer bereiken en of de toepassing die namen überhaupt moet toestaan. Correcte weergave en autorisatie zijn afzonderlijke beslissingen. Een bruikbaar voorstel verklaart zowel de beperkte verantwoordelijkheid van de hulpfunctie als de beperkingen van de aanroeper en benoemt concrete query’s waarmee je het bedoelde gedrag kunt controleren.
Kies een AI-model zonder censuur als je ondersteunde OpenAI-compatibele of Anthropic-endpoint dat aanbiedt, met inloggegevens waar nodig. Providerbeleid, toolondersteuning en contextlimieten blijven de verbinding bepalen. Lees de voorgestelde querywijzigingen en voer de databasetests van je project uit met representatieve schemanamen. Een lokaal model gebruikt een afzonderlijk draaiende server en bewijst niet dat databasetools of andere verbonden diensten lokaal werken.
Beoordelingspunten voor dynamische querycode
Betekent het citeren van een tabelnaam dat die toegestaan moet zijn?
Nee. Citeren geeft een identificator in querysyntaxis weer; de toepassing moet nog bepalen welke objecten mogen worden benaderd. Vraag om onderzoek van die beslissing bij de aanroeper, vooral als een naam uit door gebruikers beheerste invoer komt.
Kan ik kolomnamen als gewone gebonden waarden behandelen?
Behandel querystructuur en gegevenswaarden als afzonderlijke onderwerpen bij de beoordeling. Onderzoek wat je database-interface ondersteunt en hoe de bestaande query wordt opgebouwd. Het identificatorvoorbeeld bewijst niet dat je met een gebonden waarde een willekeurige kolomnaam kunt kiezen.
Wat moet een regressiecontrole voor een querybouwer aantonen?
Die moet de werkelijke query uitvoeren met een toegestane naam die citeren vereist en het bedoelde resultaat bevestigen. Neem afgewezen namen op als de toepassing namen beperkt. Alleen de gemaakte tekst controleren verifieert geen uitvoerings- of autorisatiegedrag.
Vindt QuoteMica automatisch elke dynamische query?
Ga niet uit van volledige dekking. Vraag welke bestanden en aanroepplekken het voorstel onderbouwen en wijs zelf bekende querybouwers aan. Modelcontext en beschikbare tools begrenzen het onderzoek; beoordeel niet-onderzochte paden voordat je een bredere wijziging als voltooid beschouwt.
QuoteMica · Bijgewerkt 2026-10-25