Diakritika v názvu sloupců tabulky
- dj.kure
- Člen | 70
Ahoj,
využívám databáze RUIAN pro jednoznačnou identifikaci adres /
objektů.
Bohužel má databáze v názvu sloupců tabulky diakritiku a na to nemůžu
sáhnout, protože totožnou tabulku využívá více aplikací.
Můj dotaz v SQL zní takto:
SELECT `Kód ADM` AS `adm`
FROM `RUIAN`
WHERE ((`Název ulice` = 'Hlavní' OR `Název části obce` = 'Hlavní') AND
(`Číslo orientační` = '50' OR `Číslo domovní` = '50') AND `PSČ` = '32300')
LIMIT 1
Ale Nette mi z něj vytvoří toto:
SELECT `Kó`d` ADM` AS `adm`
FROM `RUIAN`
WHERE ((`Ná`zev` ulice` = 'Hlavní' OR `Ná`zev` čá`sti` obce` = 'Hlavní') AND
(`Čí`slo` `orienta`č`n`í` = '50' OR `Čí`slo` `domovn`í` = '50') AND `PSČ` = '32300')
LIMIT 1
Vůnec nevím, jak to vyřešit. Zkoušel jsem to dávat do různých typů uvozovek, všemožně to eskejpovat… a výsledek stále stejný :-( s názvy sloupců nehnu, takže jestli MySQL neumí třeba zástupné označení (něco jako col1, col2, col3, …), tak jsem v pytli.
Projekt je psaný v UTF-8, tabulky jsou ve formátu Windows-1250.
- neznamy_uzivatel
- Člen | 115
Dělá to funkce tryDelimite()
z
\Nette\Database\Table\SqlBuilder
Jak to správně přepsat a nehrabat do vendor nemám tušení :)
Každopádně česká diakritika v názvech tabulek (tohle vypadá imporotvané z toho jejich csv) zcela přesně odpovída stavu ve státním IT.. Smutné.
Editoval neznamy_uzivatel (16. 3. 2019 8:26)
- dj.kure
- Člen | 70
Máš pravdu, provedl jsem jen import CSV z DB RUIANu :( zatím to řeším externím požadavkem (GET) a kombinací funkcí
file_get_contents(/externí-page-mimo-nette/);
json_en/decode();
Ale je to samozřejmě o mnoho pomalejší. Na druhou stranu mi to tolik nevadí, protože se to spouští jen v noci CRONem a v malém počtu.