« Delphi és Firebird »

Igazából Delphivel való egygépes adatbázis-kezelésre (tehát nem szerveres megoldásra, mert arra egyértelműen MySQL, ugye) a legjobb megoldás szerintem a Firebird. A Delphihez – jobb esetben – járó alap InterBase komponensekkel kényelmesen kommunikál, és a kész programhoz mindössze egy DLL fájlt (gds32.dll, vagy fbclient.dll), és az fdb kiterjesztésű adtabázis-fájlt kell csatolni. Létezik neki szerveres változata is, de kisebb megvalósításra az embedded verzió is tökéletesen megfelel. (Ilyenkor, mint ahogyan azt előbb említettem, nincs szükség külön programok, szolgáltatások futtatására, csak a DLL fájl elhelyezésére.) Az egyébként teljesen ingyenes rendszer egyetlen hátránya, hogy az adatbázist egyszerre csak egy alkalmazás nyithatja meg.

Ha pedig valaki be akar ruházni egy komolyabb adatbázis-kezelőre, akkor ott van az SQLManager ami ezen a téren az egyik legjobb szoftver, csak ez a potom 500 USA dolláros induló(!) árán meg is látszik.

Kommentek RSS ikon
A bejegyzéshez érkezett kommentek, amiket RSS csatornán is követhetsz.
Szerintem meg SQLite. Natív, gyors (leggyorsabb?), ehhez sem kell szerver, egy fájlban van az egész adatbázis, teljesen zeroconf, 30K sornyi c-kód az egész (legkisebb?), szépen fejlesztik . És ami a legjobb: most implementálták az ADO.NET részét mono-ba.
Ilyenkor mindig megmosolygom a wines rendszereket. Beágyazandó dll-ek satöbbi. Unix alaőú rendszeren nagy előny, ha felraksz egy csomagot, akkor az már ~mindenki számára elérhető, és nem lesz a gépedre telepítve 100x ugyanaz a lib.
erenon:Ezek a .dll-ek a .NET keretrendszerhez kellenek IMHO, olyanok mint a shared library-k, vagy a header-állományok.
erenon:nem kell százszor telepíteni ezt sem, berakod a system32-be és látja minden app.

Amúgy egyetértek mcbuddha-val: sqlite.
delphi egy szemet, pascal meg egyenesen szornyu
„(tehát nem szerveres megoldásra, mert arra egyértelműen MySQL, ugye)”

MySQL max egy részleges SQL támogatással kiegészített tárolómotor. Ha már adatbázis-kezelő kell, akkor legalább PostgreSQL.

És az még mindig messze van a nagyobbacskáktól…
mcbuddha: régebben láttam, próbálgattam, valami miatt nem jött be (tényleg nem tudom mért).

saxus: persze, komolyabb rendszerekre nem jó a MySQL de azért azt sem kell leszólni, jócskán megfelelő a tudása, ahhoz képest meg pláne, hogy ingyenes. De olyan megoldásokra, ahol viszonylag kevés adat van, de mégis adatbázisra építkezik (pl. egy nyilvántartó alkalmazás), szerintem a MySQL és a Firebird is jó. :) Bár a Delphi adatbázis-kezelését eléggé szidják, a beépített BDE-t legalábbis nagyon.
Mefi: azért megjegyezném, hogy komolyabb halmazműveletekkel még mindig gondban van és még mindig nem tud pl belső select-t. Meg még sorolhatnék pár dolgot, ami az SQL'99-ben benne van és nem tudja a MySQL. (Bár az 5-s verzió elérelépés, az tény.)

Egyébként nem ingyenes, ha kereskedelmi célokra akarod használni, akkor bizony jócskán fizetős.
saxus: jah, azt néztem, hogy kereskedelmi célokra kemény pénzeket kérnek el érte, de ez valahol érthető. A Firebird-öt pont ezek miatt imádom, igazából csak egy dolog hiányzik, az autoincrement.
saxus:mármint ilyen selectet pl? select * from valami where id in (select id from másikvalami);
Hogyne tudna, rendszeresen használom is.
Maerlyn: bocs, visszaszívom, tényleg tudja. Akkor folytatom: mező kezdőértéknek függvény kimenet? pl.:

postdate INT(10) UNSIGNED DEFAULT UNIX_TIMESTAMP()


Mefi:, tud, csak ne a MySQL saját megoldásából indulj ki:

CREATE GENERATOR phpbb_attachments_gen;;
SET GENERATOR phpbb_attachments_gen TO 0;;

CREATE TRIGGER t_phpbb_attachments_gen FOR phpbb_attachments
BEFORE INSERT
AS
BEGIN
NEW.attach_id = GEN_ID(phpbb_attachments_gen, 1);
END;;

Ezt a phpbb sql sémájábül kopiztam. Igazából nekem kicsit fura megoldás, de alapvetően pgsql-ben is hasonlóan van megoldva.

Ott vagy csinálsz egy SERIAL tipusú mezőt (ilyenkor a pgsql megcsinálja hozzá a megfelelő sequence-t, default értéket beállít, stb.) vagy csinálsz kézzel egy sequence -t (előnye, hogy te adod meg, hogy mettől meddig milyen közökkel léptetheted) és DEFAULT nextval(sequencianev) -t használsz.
saxus: igen, meg is csinálja a generátort, aztán nem esz meg semmit, NULL-ra hibát ír, másra pedig vagy létrehozza az adott ID-t, vagy csipog, hogy már létezik ilyen.
„A Firebird-öt pont ezek miatt imádom, igazából csak egy dolog hiányzik, az autoincrement.”

Hát az autoincrement teljesen felesleges, hiszen triggerből tökéletesen megvalósítható és még jobban kézben is tartható

Én Firebird párti vagyok, mert nincs olyan hogy „garantáltan” egyfelhasználós progi. Mi van ha mégis több user akarja használni?
A Firebird Embed erre zseniális.
Ha egyfelhasználós, akkor elegendő egyetlen DLL, ha meg többfelhasználós, akkor szervert telepíteni (ez sem olyan nagy varázslat mint sok más adatbázis kezelőnél, csupán pár file (4-5Mb) bemásolása egy alkönyvtárba és egyetlen service registrációs progi futtatása win alatt).

Szóval a progi nem is veszi észre, hogy hirtelen többfelhasználós környezetben megy ;)

eMeL
Új komment

Itt az adott bejegyzésben elhangzottakhoz szólhatsz hozzá. Ha primitív, csúnya, vagy bunkó erkölcsről teszel tanúbizonyságot, tuti, hogy kimoderállak és rosszat mondok rólad. A hozzászólás nem kötelező, amit írsz vállald föl!

Ezeket az adatokat - ha a böngésződ kezeli a kukikat - csak egyszer kell megadnod, később módosíthatod.

Ha van gravatarod - és a gravataros e-mail-címeddel kommentálsz -, akkor az megjelenik. Ha nincs, vagy nem tudod miaz, akkor olvasd el az útmutatót és regisztrálj.

Neved: E-mail címed (nem jelenik meg): Webszájtod (ha van): Kommented: Mennyi három és öt összege?
Ez védelmi célokat szolgál, szimplán írd be a fenti összeadás összegét!

A kommentedet írhatod nagyobb mezőbe vagy akár formázhatod is, de ha nem szalonképes, akkor moderálom!

Ajánló
Ebben a témában, esetleg ezen a napon voltak még ilyenek is:

SVN, commit, nano, OS X (2012. február 09., 11:59:18)
Rado Black Jubilé (2007. december 07., 11:49:46)
Mircike (2007. május 26., 11:13:40)

Érdekességek
Száraz számok, pusztán csak tények:

Ez a bejegyzés 1831 napja született, 205 szóból, és 1097 karakterből áll. Ajánlhatod bizonyos linkgyűjtő oldalaknak: