Lev-IT-áció

Ez a kis Blog IT fejlesztéshez kapcsolódó témaköröket fog boncolgatni, amelyeket igyekezni fogok gyakorlatiasan megfogalmazni, elemelkedve az elméleti síkról.

Rólam azt kell tudni, hogy már évek óta fejlesztek nagyvállalati, banki egyedi szoftvereket és hát mit mondjak szeretem ezt a szakmát.

A blog témájába beleesik a szembejövő kisebb-nagyobb probléma körök tárgyalása ugyanúgy mint a különböző példakód jellegű „móriczka” kódolás, egyes technológiák bemutatásáról. Így bizony felfog tűnni a blogban az érdeklődési körömbe eső összes technológia – előbb utóbb ;). Ezek a teljesség igénye nélkül (mire is lehet itt számítani):
- .Net programozás. (VB.Net, C#.Net, ASP.NET)
- SQL programozás
- Ismertebb adatbázis kezelők (MS SQL Server, Oracle)
- Kissé egzotikusabb (kevésbé elterjedt) adatbázis kezelők (PostgreSQL, FireBird)
- Java
- Fejlesztési módszertanok


Fogjátok azt is látni, hogy a fenti témákban vannak nálam jártasabb emberek is, de a magyar nyelvű blog szféra szerintem annyira szegényes ezekben a témakörökben, hogy én még simán beférek ide ;D

Remélem mindenkinek tetszeni fog! :)

Címkék

.net (8) adatbázis (3) ajax (1) asp.net (4) c# (6) debian (1) firebird (1) hash (1) java (1) linux (2) masterpage (1) mono (1) monodevelop (1) ms sql (1) mysql (1) oracle (1) postgresql (4) SHA256 (1) sql (5) szekvencia (1) tomcat (1) tools (1) üzemeltetés (1) visual basic (5) Címkefelhő

Firebird Embedded asp.net oldalon

2011.12.30. 09:18 :: apriliars

 Sziasztok!

Talán már másnak is volt olyan sanyarú sorsa, hogy nem fért hozzá egy tárhely szolgáltatónál értelmes adatbázishoz, de azért valamiféle adatkezelésre szüksége lett volna. 

Itt is az un. in-process adatbázisok jöhetnek szóba, amelyek nem állandó szervízként futnak és így csak akkor mocorognak ha megszólítják őket. Jellemzően maximum néhány dll és  egy fájl ilyenkor az adatbázis. Ezért az egyszerűségért azonban gyakran az elérhető a funkciók szükőségével szoktunk fizetni. Erre a legjobb példa az SQL Server CE, amelyben gyakorlatilag az összes valamire való funkciót kigyilkolták az SQL Serverhez képest.

Ugyanakkor van olyan eset ahol tényleg megmarad a funkció gazdagság. Emiatt a legjobb választás szerintem a FireBird embed változata ahol tényleg minden lehetőség megvan ami a nagytestvérnél is rendelkezésre állt. 

Ugyanakkor van egy kis gond az ASP.NET-es felhasználással. A működéshez szükséges dll-eket nem adhatjuk hozzá a projektünkhöz referenciaként, viszont alapból a szerver System32 könyvtárából keresné feldolgozáskor a .net motor. és Unable to load DLL 'fbembed': A megadott modul nem található hibaüzenetet ad a kapcsolat megnyitásakor. Mit is csináljuk ilyenkor? Mondjuk meg neki kódból, hogy hol találja a keresett dll-t! Pl. így: 

FbConnectionStringBuilder Csb = new FbConnectionStringBuilder();
Csb.Database =  Request.PhysicalApplicationPath + "App_Data\\DATA1.GDB";
Csb.Password = "masterkey";
Csb.ServerType = FbServerType.Embedded;
Csb.UserID = "SYSDBA";
Csb.Charset = "UTF8";
Csb.ClientLibrary = Request.PhysicalApplicationPath + "bin\\fbembed.dll";

Igen a fentiekben a ClientLibrary a legérdekesebb rész. Ez a 2.5-ös verziótól kezdve található meg a lehetőségek között. Az is fontos, hogy a teljes útvonalat adjuk, mert relatív útvonalak alapján megint csak nem találja meg. Erre szolgál a PhysicalApplicationPath a Request-en belül. 

Persze akad ezzel egy kis kód szervezési kérdés is. Request objektuma a page-nek van. Ha az ember nem akarja minden oldalba bekódolni a kapcsolódást (és remélem, hogy senki nem akarja) akkor várhatóan minden oldalon ahonnan kérést indítunk át kell adni a teljes útvonalat is kapcsolat felépítéséhez...

Ahhoz, hogy a fenti kódolás működjön természetesen a dll-eket is be kell másolni a bin mappába. Fontos, hogy ne csak az fbembed.dll-t tegyük oda, hanem a kapcsolodó többi szükséges dll-t. Nevezetesen: 

icudt30.dll
icuin30.dll
icuuc30.dll

És én még azt is oda teszem, amelyekben a hibaüzenetek vannak, igaz ez nem dll: 
firebird.msg

Még egy fontos dolog. Ilyen mondás ne szerepeljen az adatbázisunkban, mert érdekes hibákhoz vezet: alter character set utf8 set default collation unicode_ci_ai

Elvben a ConnectionString-ben megadott utf8 charset elég az "árvíztűrő tükőfúrógéphez" :)

Szólj hozzá!

Címkék: .net asp.net c# firebird

A bejegyzés trackback címe:

https://lev-it-acio.blog.hu/api/trackback/id/tr243492846

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása