Első körben persze az ODBC-t kéne kireszelni - a Microsoft-os msodbcsql csomag ugyan fent van, de nagyon nem akarja az igazságot (mint kiderült tényleg nem működik DBD::ODBC vele), úgyhogy egy próbát megér alapon előszedem a freetds-t.
A freetds legutolsó stabil verziója freetds-patched.tar.gz néven tölthető le, ezt jól átcsomagoltam freetds-1.00.86.tar.bz2 névre, és huss, az rpmbuild -ta freetds-1.00.86.tar.bz2 gyorsan össze is rakta a szükséges csomagokat, amik mentek a központi repóba, onnan meg telepítésre.
odbc.ini-be server, database meg port a minimum, beírom, nagyjából megy a script, "csak" az ékezetek...
Varázsszavak első körben, bár ebben eddig semi új nincs, maximum némi homlokcsapkodás, hogy hogy is maradhatott ki a binmode... :-)
use utf8;
binmode(STDOUT, ":utf8");
A kiírás rendben, de nézzünk egy picit bonyolultabb kérést, mondjuk "select ezt, azt from valami where emez like '%árvíztűrő%'"
Ahogy az a dokisban is írva vagyon, a prepare ezt nem szereti - alapból nem szól, de eredményt sem ad. A megoldás fél mondattal ott van a dokumentációban: odbc_execdirect kikapcsolandó. Ennek a módja meg ennyi:
DBI->connect('dbi:ODBC:MSSQL', $user, $password, {odbc_execdirect=>0});
Innentől már csak a logikát meg az adatok matatását kell belehegeszteni, az meg szerintem menni fog :-)
Update:
Ha valaki nem tudná (ahogy eddig én sem, pedig ott van a FreeTDS FAQ-ban...), egy kapcsolatban egyszerre csak egy query lehet aktív, tehát ha olyat szeretnék, hogy egy select-ben visszakapott összes sorra csináljon valamit a program, és az eredményt írja vissza, ahhoz kettő darab kapcsolatot kell felépíteni a DB felé.
Most, hogy van $dbh1=DBI->connect(...) és $dbh2=DBI->connect(...), elkezdett működni a dolog.
- zeller blogja
- A hozzászóláshoz be kell jelentkezni
- 1140 megtekintés
Hozzászólások
A Perl sose volt szép nyelv. Kifejezetten ocsmány meg akkor lett, amikor valaki kitalálta, hogy csináljunk úgy, mintha OOP lenne. Aztán amikor ezt megfejelték UTF-8-cal és adatbáziskezeléssel, akkor vált hányadékká. Persze IMHO, YMMV.
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Azért Perl-ben is lehet szépen kódolni, meg lehet szép dolgokat csinálni, még akár az úgy csinálunk, mintha OOP lenne mellett is, bár arra még nem igazán vetemedtem, csak amikor muß olyanul fogalmazni :-)
- A hozzászóláshoz be kell jelentkezni
> Azért Perl-ben is lehet szépen kódolni, meg lehet szép dolgokat csinálni
En meg nem lattam olyan programot perlben, amit ne lehetett volna atirni egysorosra:))
---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....
- A hozzászóláshoz be kell jelentkezni
Ha választani lehet, akkor valóban nem ez a jó irány :) De ezért szép a világ :)
- A hozzászóláshoz be kell jelentkezni
De gustibus... Nekem a Perl jobban kézreáll, mint más. Nem gond, ha szóköz van a fájlnévben, nem gond, ha egy sort véletlenül kevesebb whitespace-szel kezdek, nem kell lefordítani - egyszerűen megírom, és működik.
- A hozzászóláshoz be kell jelentkezni
Ezekkel nincs is gond. Csak ha már el is kell olvasni 2 hónap múlva ;-)
=====
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
- A hozzászóláshoz be kell jelentkezni
Évekkel ezelőtt írtam egy webes előtétet, szűkített funkcionalitással egy másik webes motyóhoz, és az egyik félkész modult megtaláltam a régi lomjaim között. Olvasható, mi több, érthető volt, hogy mit és miért csináltam benne anno. Igen, olvasható és értelmezhető - nem utolsó sorban azért, mert normálisan tördlet/formázott a kód, és illendő mértékben (vagy picit bővebben) kommenteztem.
A "gyorsan kell valamit csinálni" scriptek meg vagy ilyenek, vagy sem, de ott is van azért néháyn kapaszkodó (név, paraméterezések, konstansok értékei, elnevezések), amik kapaszkodóul szolgálnak, hogy mi a búbánat lehet az a sorminta :-)
- A hozzászóláshoz be kell jelentkezni
A Perl annyira szép, mint a Perl könyv elején a teve ;)
- A hozzászóláshoz be kell jelentkezni
Van, aki szereti a teveket :)
- A hozzászóláshoz be kell jelentkezni