Uvozování identifikátorů SQLite
Uzavřete jeden identifikátor SQLite do dvojitých uvozovek a vnitřní uvozovky zdvojte.
def quote_identifier(name):
if not isinstance(name, str) or not name or chr(0) in name:
raise ValueError("identifier.invalid")
return '"' + name.replace('"', '""') + '"'- Modely
- Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
- Projekt
- Ověřte mezery a text podobný SQL a odmítněte prázdné názvy a NUL bez rozdělení tečkovaného názvu na více identifikátorů.
- Před použitím zkontrolujte
- Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
def quote_identifier(name):
if not isinstance(name, str) or not name or chr(0) in name:
raise ValueError("identifier.invalid")
return '"' + name.replace('"', '""') + '"'Oddělte strukturu dotazu od hodnot, které nese
Kód dynamických dotazů potřebuje jasně rozlišovat hledanou hodnotu a název databázového objektu. QuoteMica poskytuje programovací prostředí s AI pro Windows k prověření tohoto rozdílu v souborech projektu. Začněte funkcí vytvářející dotaz a vysvětlete, které části se smějí měnit. Před návrhem úprav požádejte asistenta o dohledání původu každého názvu a hodnoty.
Příklad uzavírání identifikátorů SQLite do uvozovek je jedním případem k prozkoumání. Prověřte, jak se takto zapsané názvy dostávají do sestavovače dotazů a zda je aplikace vůbec má přijímat. Správná reprezentace a oprávnění jsou dvě různá rozhodnutí. Užitečný návrh vysvětluje omezenou odpovědnost pomocné funkce i omezení volajícího a určuje konkrétní dotazy ke spuštění pro ověření zamýšleného chování.
Zvolte model AI bez cenzury, pokud jej váš podporovaný koncový bod kompatibilní s OpenAI nebo koncový bod Anthropic nabízí, a podle potřeby přidejte přihlašovací údaje. Připojení stále podléhá pravidlům poskytovatele, podpoře nástrojů a limitům kontextu. Přečtěte navržené změny dotazů a spusťte databázové testy projektu s reprezentativními názvy schématu. Lokální model používá samostatně běžící server a neprokazuje, že databázové nástroje nebo jiné připojené služby pracují lokálně.
Body kontroly kódu dynamických dotazů
Znamená uzavření názvu tabulky do uvozovek, že má být povolen?
Ne. Uvozovky reprezentují identifikátor v syntaxi dotazu; aplikace musí nadále rozhodnout, na které objekty lze odkazovat. Požádejte o kontrolu tohoto rozhodnutí u volajícího, zejména když název pochází ze vstupu ovládaného uživatelem.
Mohu s názvy sloupců zacházet jako s běžnými vázanými hodnotami?
Strukturu dotazu a datové hodnoty kontrolujte odděleně. Prověřte podporu databázového rozhraní i sestavení stávajícího dotazu. Příklad identifikátoru nedokazuje, že navázání hodnoty umožňuje vybrat libovolný název sloupce.
Co má prokázat regresní kontrola sestavovače dotazů?
Má provést skutečný dotaz s povoleným názvem vyžadujícím uvozovky a potvrdit zamýšlený výsledek. Pokud aplikace názvy omezuje, zahrňte i odmítané názvy. Samotná kontrola vytvořeného řetězce neověřuje provedení ani chování oprávnění.
Objeví QuoteMica automaticky každý dynamický dotaz?
Nepředpokládejte úplné pokrytí. Zeptejte se, ze kterých souborů a míst volání návrh vychází, a sami určete známé sestavovače dotazů. Kontrolu omezují kontext modelu a dostupné nástroje; před označením širší změny za dokončenou prověřte neprozkoumané cesty.
QuoteMica · Aktualizováno 2026-10-25