ugrás a tartalomhoz

Adatbázis független programok ADODB-vel

Anonymous · 2006. Nov. 3. (P), 13.00
Hellósztok!

Úgy gondoltam ideje megismerkednem az adatbázis független PHP program készítés rejtelmeivel, ezért ezen fellelkesedve jól le is töltöttem az ADODB-t.

Gyorsan átfutottam a kézikönyvet, hogy mégis mi-hogyan.

Az alapok egyértelműek, megadom az adatbázis típusát és kapcsolódok majd az Execute segítségével lefuttatom az sql-t.
A probléma itt kezdődik. Ugyanis itt továbbra is ugyanaz az SQL van mint a normál esetben (MySQL-t használok), tehát ha más adatbázis kezelő van használatban akkor lehet, hogy a mysql specifikus sql-ek nem futnak majd le.

Aztán egy kicsit tovább nézegettem a kézikönyvet és ráleltem a következőkre:

GetUpdateSQL(), GetInsertSQL() Vagyis az update és insert esetén a probléma meg van oldva, mert saját maga képes generálni ezeket.

Majd végül a átfutottam a "Tips on Writing Portable SQL" részt is, ahol szintén kaptam sok hasznos tippet arra vonatkozóan, hogy valóban adatbázis független legyen a programom.

Viszont én ezek után is úgy gondolom, hogy lehetnek olyan sql-ek amik nem fognak más adatbázis kezelővel működni. Ezért arra gondoltam, hogy az olyan sql-eket amelyek várhatóan problémásak azokat kigyűjtöm egy fájlba (természetesen kommentezve, hogy az adott sql-nek mit kell csinálnia), így adatbázis váltáskor csak ezeket kell átnézni.

Szóval a kérdésem az lenne, hogy jó lesz-e ez így, vagy máshogy kellene megoldni? Mert ha már csinálom, akkor legalább a kezdetektől jól csináljam.

Válaszaitokat előre is köszönöm!
 
1

óvatosan

virág · 2006. Nov. 3. (P), 15.54
Szerintem először is jól át kell gondolni és megtervezni az ún. adatbázis függetlenséget. 100%-os függetlenség nem létezik. Én például általában MSSQL és MySQL alá fejlesztek, néha Postgree is hozzájön. Írtam egy saját osztályt, ami lekezeli a különbségeket, pl. MSSQL-nél az utolsó beszúrt sor egyedi azonosítójának lekérdezése teljesen másképpen műkszik, vagy pl. a LIMIT csak MySQL-nél van stb. ezeket egészen jól le lehet kezelni, viszont ha egy komoly projektet tervezel, (vagy jobb esetben más tervezi), akkor úgyis lesz egy adatbázis, amihez kötni fogjátok a projektet, mert a legtöbb adatbáziskezelőnek vannak olyan extra szolgáltatásai, amiket lehetetlen egységesíteni (100%-ra). Tárolt eljárások, kioldók stb. Az adatbázis absztakciós felületek szerintem jók, csak legtöbbször túl vannak bonyolítva, mindegyiknek az a célja, hogy a lehető legjobb legyen és emiatt picit nagyra duzzadnak, ami engem zavar, de ez szubjektiv. Szerintem irogass különféle SQL parancsokat és tesztelj le többet, mielőtt használatba vennéd, meg az olyan alapszolgáltatásokat, hogy pl. miképpen adnak vissza LIMIT szerűen tól-ig sorokat (ez gondolom meg van oldva a komolyabbakban). A Pear szuperul működik, szinte mindenre van benne megoldás. Többit nem ismerem mélyebben.
2

Nem függetlenül

Anonymous · 2006. Nov. 3. (P), 20.22
Én most szoktam rá a tárolt eljárások használatára és meg kell mondjam, mélységesen meg vagyok velük elégedve. Rendkívül gyorsan lehet fejleszteni velük, mert nem kell a MySQL-PHP kötelező köröket megjárni, stb. és rendkívül gyorsan is futnak. Az adatbázis függetlenséget föláldoztam érte, de nem is bánom. Ha más adatbázis formátumra kell valami, akkor majd átírom a tárolt eljárásaimat.