Znaš što? Ova na ti je dobra.
Ti nas namjerno zbunjuješ, ili?
Pseudo kod?
Moguće. Dakle, u slučaju da je Znaš što==NULL
Dobiješ
Ova na ti je dobra.
Ali morat ću to još malo razraditi u svojoj bojanci...
Znaš što? Ova na ti je dobra.
Ti nas namjerno zbunjuješ, ili?
Pseudo kod?
Moguće. Dakle, u slučaju da je Znaš što==NULL
Dobiješ
Ova na ti je dobra.
Ali morat ću to još malo razraditi u svojoj bojanci...
Aha!
Znaš što? Ova na ti je dobra.
Ti nas namjerno zbunjuješ, ili?
Pseudo kod?
Moguće. Dakle, u slučaju da je Znaš što==NULL
Dobiješ
Ova na ti je dobra.
Ali morat ću to još malo razraditi u svojoj bojanci...
Hmm, a čekaj... ne ide to tako. Ako je NULL uopće nemaš informaciju koja ti treba i moraš baciti exception. Tebi treba true || false, a nikako NULL, jer NULL bi značio da je možda došlo do problema u obradi ili primitku rezultatat odgovora.
- sve je strpano u jednu tablicu? Stotinjak kolumni posve različitog 'sektora'.
- objekti su mu ogromni?! Stotinjak membera i metoda?
- SQL injection WELCOME!
- Lisp-syndrom? LOL
- WTF "ToString()" na sve živo?!
- parametrizacija anyone?!
- jel' kome palo na pamet koliko memorije guta ova konkatenacija i kakav load stvara?
Senior architect... my ass.
"Our Senior Architect likes the idea of keeping things simple," Stephen B, "no stored procedures, no parameterized queries... just simple, simple strings."
Pa sam čovjek tj. čudak reče da ne voli parametrizirati SQL iskaze jer oni kao kompliciraju stvari (simple strings my ass), a onaj Replace je tu upravo da spriječi SQL injection napade.
To samo pokazuje koliko je covjek senior.
Parameterizirani SQL-ovi se compiliraju u RDBMS-u i naknadne invokacije istih ne traze nove rekompilacije SQL-a na serveru, samo injection parametara. Svaki normalan Oracleov ODBC driver se tako ponasa.
Cim cu parametrizirani queryi baza zna cachirati execution plan i reusati ga. To nema veze sa database providerom .net-a ili nekog drugom frameworka.
Upravo to je razlog zasto store proc. vise nisu brze od slanja querya (sa parametrima), u starijim verzijama baza obicni query koji se slao bazi nije bio cachiran.
Ali to je cak najmanji problem u danom primjeru.
IMHO, najveci problem po meni je sam proj parametara klase, i sto se SQL kreira unutar samog objekta, a ne u nekom data layeru ili nasljedzenoj klasi (Active Record patter koristi te "pametne" objekte, koji u sebi imaju data access kod, ali ovo je daleko od AR patterna!)