1P-1 SELECT * - wildcard expansion

0 votes
asked May 21, 2013 in IRF tantárgy by raimy (22 points)  

Hello!

A feladat szerint működnie kell a SELECT * -al kezdődő paraméterezésnek is, viszont az a problémám, hogy ha így adom meg, akkor a *-ot nem sztringként vagy karakterként veszi be, hanem lefut a bash expansion-je és az adott könyvtár tartalmát szúrja oda.

Ezt ki tudom küszöbölni, ha a shell-ben kiadom a "set -o noglob" parancsot a szkript futtatása előtt, viszont az a kérdésem, hogy ez így jó? Vagy másképp is ki lehet ezt a funkciót kapcsolni?

Előre is köszönöm!

2 Answers

0 votes
answered May 21, 2013 by inferno88 (46 points)  

Ha nem szűröd az értékeket,akkor minden mező tartalmát ki kell írnia,tehát úgy kéne viselkednie,mintha csillagot adtál volna meg.Nemde?

commented May 21, 2013 by raimy (22 points)  
Igen, viszont az a probléma nálam, hogy ugye megadom paraméterként a query-ben az SQL-féle stringet. És az argparse (illetve a bash már előtte expansion-t végez a * észlelésekor) és az expansion eredményét adja vissza az argparse argumentjébe. És akkor a csillag helyett az épp aktuális könyvtárban lévő fájlokat adja át.
commented May 22, 2013 by inferno88 (46 points)  
edited May 22, 2013 by inferno88
Én nem az argparse-szal dolgozom fel a query-t,hanem a python kódon belül.Így,ha a query idézőjelben van és *-ot adok meg,akkor a fields rész egyszerűen üres marad és visszakapok minden értéket.
commented May 22, 2013 by raimy (22 points)  
Aha..Köszi a választ. Ha én is idézőjelbe teszem a query részt, akkor tökéletesen működik.
0 votes
answered May 23, 2013 by micskeiz (2,873 points)  

Ahogy egy kommentben is írta valaki, idézőjelek között add meg a query szövegét. Különben a bash megpróbálja azt értelmezni, de azt nem szeretnénk.

...