tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

PDO ODBC Like hodnoty vypadnou

před 9 lety

wolker
Člen | 4

Nette Framework 1.0-dev (revision a723be7 released on 2010–09–20) + Dibi te verze

Pri pouziti PDO a ODBC

[ini]
driver = pdo
dsn = "odbc:DSN2"


Jedna se o ODBC na IBM DB/2

My ladenka vyhodi chybu protoze, vysledny sql dotaz je:

select DW06_PRIJMENI as surname, DW06_JMENO as name
from IS15
WHERE lcase(DW06_PRIJMENI) like lcase() or DW06_PRIJMENI like
ORDER BY DW06_PRIJMENI, DW06_JMENO FETCH FIRST 10 ROWS ONLY

Kompletne vypadly like parametry.
Ale ja jsem zadaval toto:

select DW06_PRIJMENI as surname, DW06_JMENO as name from IS15
WHERE lcase(DW06_PRIJMENI) like lcase('s%') or  DW06_PRIJMENI like 's%'
ORDE ...

tak to zobrazuje ladenka kdyz predava parametr DibiConnection->query
ostatni volani DibiConnection->nativeQuery a DibiPdoDriver->query je uz sql preplacnute.

Je to vlatnost a moje chyba nebo chyba v driveru?

Zkousel jsem i driver ODBC, tam to funguje, ale mam tam problem s ajaxem,
kde se mi nechce provest
$this->payload->autoComplete = $person->findAutoComplete($name)->fetchAll();
ale to bude jine tema.

před 9 lety

David Grudl
Nette Core | 6806

Modifikátory se píší obráceně, nikoliv s% ale %s

před 9 lety

wolker
Člen | 4

David Grudl napsal(a):

Modifikátory se píší obráceně, nikoliv s% ale %s

Bohuzel to neni ve smyslu modifikatoru, ale uz cilova podminka, neco jako 'Nov%' (vyhledani novaku).

Laboroval jsem dale a zjistil jsem ze, to neni jen u like, ale obecne, kdyz je podminka v jednoduchych uvozovkach 'Nov%' tak to ve vyslednem dotazu zmizi.
Naopak kdyz to je v hranatych [Nov] nebo `Nov` tak se to prepise na "Nov", coz je pro mne taky nepouzitelne, jelikoz dvojite uvozovky IBM DB/2 neakceptuje. Tak samo i zpetne uvozovky ``.

Neni mozne tu konverzi nejak vypnout? Upravovat driver v dibi se mi moc nechce.

diky.

před 9 lety

Milo
Nette Core | 1119

wolker napsal(a):

David Grudl napsal(a):

Modifikátory se píší obráceně, nikoliv s% ale %s

Bohuzel to neni ve smyslu modifikatoru, ale uz cilova podminka, neco jako 'Nov%' (vyhledani novaku).

Laboroval jsem dale a zjistil jsem ze, to neni jen u like, ale obecne, kdyz je podminka v jednoduchych uvozovkach 'Nov%' tak to ve vyslednem dotazu zmizi.
Naopak kdyz to je v hranatych [Nov] nebo `Nov` tak se to prepise na "Nov", coz je pro mne taky nepouzitelne, jelikoz dvojite uvozovky IBM DB/2 neakceptuje. Tak samo i zpetne uvozovky ``.

Neni mozne tu konverzi nejak vypnout? Upravovat driver v dibi se mi moc nechce.

diky.

Neřešíš toto?
https://forum.dibiphp.com/…z-promenne-s

David implementoval tu verzi s tildou. Nevím jistě jestli i pro PDO.

před 9 lety

David Grudl
Nette Core | 6806

Konverzi možné vypnout je, používej nativeQuery() namísto query().