Hozzászólások
-
SzerzőBejegyzés
-
Mi errõl a megoldásról a vélemény?
Szerintem testing – unstable viszonylatban mûködik.
jaa. be root.
én szívtam ezzel. nem értek a linuxhoz, nem gondoltam volna.
[align=right][snapback]128465[/snapback][/align]Ez akkor OK, kösz mindenkinek.
Viszont az adattáblával még mindig harcolok, nem akar összejönni két float típus ( adatbázis float ) szorzatának értékelése. Esetleg ha van valaki aki ebbe bele tud szólni ? Jelenleg talán a float(4) valamilyen megoldást ad, de igazán nem tudom ez meddig „tart”.
[align=right][snapback]127070[/snapback][/align]Talán le kellene mondanod a float virtuális abszolút pontosságáról?! A PostgreSQL leírásában is nem javasolt a float típus – azaz a fix pontosságú decimális típust javasolják. A nehézség persze az hogy akkor el kell döntened mekkora pontosság kell!
Meg kell jegyezni, hogy ezek a mûveletek sokkal gyorsabbak is tudnak lenni, különösen ha figyelmbe veszed mennyi ellenörzést kell végrehajtani egyébként hogy elkerüld a nullával történõ mûveleteket! Nekem az ilyen jellegû programjaimnak csaknem a fele az ilyen vizsgálatokból áll és akkor hol van a különféle mûveleti sorrendek optimalizálása a pontosság érdekében?PS: ha nagyon precíz számításokra van szükséged amúgy, akkor azt a PostgreSQL sem támogatja de a szabvány C lebegõpontos library, pl. találkoztam olyannal hogy „magas precizitású mathematikai library” ami C string alakban kérte a számokat, majd azokkal végezte a mûveleteket. Apropó a PostgreSQL -t pénzögyi elszámolásokban is alkalmazzák ott minden „fillér” számít és precíz kerekítési szabályokkal dolgoznak, így megkerülik a számítások során keletkezõ hibákat.
STFG
[align=right][snapback]127269[/snapback][/align]No ez sem sokat segít :unsure:
Persze óvatos duhaj vagyok, mielõtt upgrade -eltem lementettem az elõzõ az egyébként jól mûködõ veziót, így simán helyreállítottam a dolgot. B)
(A rendszer egy mindössze 2,5 GByte partíció)
Majd legközelebb upgrade -elek – lehet hogy a „foghagymaszagúra” tesztelt Woody jobb lett volna? – no perszer nekem a frisebb PostgreSQL kell. 😛Következõ a problémám:
8 gépes hálózat, ebbõl van egy gép, amin Suse 9.0 van telepítve. A többi gép vegyesen XP, illetve win98-al van telepítve.
Minden géphez létre van hozva egy felhasználó, aki csak a saját könyvtárát látja a linuxos gépen, illetve van egy közös könyvtár, ami mindenki elér.
Win98 alól tökéletesen mûködik a dolog, viszont az XP-s gépekkel az a probléma, hogy, ha egyszer belép az illetõ, majd kikapcsolja a gépét, akkor a következõ indítás után már nem tud belépni, mert azt írja, hogy „nem engedélyezett ugyanannak a felhasználónak egynél több felhasználónév használatával több kapcsolatot létesítenie egy kiszolgálóval vagy megosztott erõforrással.”
Ha újraindítom a sambát, akkor már be tud lépni, de legközelebb újból elõjön a probléma, mikor bekapcsolja a gépét.
Gondolom a samba konfigjában kell valamilyen paramétert beállítani, de még nem jöttem rá, hogy melyiket.
[align=right][snapback]122672[/snapback][/align]Ez így bnagyon sovány ahhoz hogy valamit tanácsoljunk, azon kívül hogy nézd meg a konfigodat! Nekem mindenféle win -em van (müködõ) sokszor különféle gépekröl lépkedek be ugyanazon felhasználóként! Az sem biztos hogy a samba a hunyó a fenti üzit az XP -n láttam a régebbi win -ken nem!?
Bocs, hogy így elhalgattam… mindíg valami közbe jön:o(
Ami leírtál tökéletesen áll. Szépen int4 -nek definiáltam, a szám ábrázolás miatt így ugyan csak 31 irányom lehet (a legfelsõ bit elõjel és kurvára zavar) viszont azzal már teljesen szokásos módon tudom kezelni a „maszkomat”, mind a C oldalról mind a windows kliens oldaláról:-)
Lépegetek tovább – egyenlõre konvertálom a régi adatbázist, nagyon jó tanuló lehetõség a különféle típusok, relációk, és egyéb szabályok tanulgatására.
Egyébként végül maradtam a megszokott Clarion -os környezetben az adatbázis tervezésénél, az UML nekem magas|-( és túldimenzionált.No még egyszer nekifutok.
Van egy tábla melynek mineden sora tartalmaz egy maszkot, mely minden egyes bitje egy-egy terminálnak felel meg. Ha egy adott sort elõveszel több terminálra is el tudod küldeni:
0-ás bit = 1 –> elsõ terminálra megy
1-es bit = 0 –> kettes terminálra nem megy
2-es bit = 1 –> hármas terminálra megy
…Ameddig ez egy egyszerû adatbázisban volt ezt a maszkot egy unsigned long típusú mezõben tároltam. Ha lekellett válogatnom mely rekordok mennek mondjuk az második terminálra egyszerüen végig „szaladtam” a rekordokon elõvettem a maszkot és megvizsgáltam az egyes bitet:
if ( (maszk & 2) != 0 )
akkor a rekord az második terminál illetõségébe (is) tartozik.
Az SQL esetében ezt a leválogatást inkább a szerverre bíznám (sávszélesség, gyenge kliens …) de ehhez úgy kell megadnom a maszkot, hogy azt a szerver is értse – tudjon vele mûveletet végezni. Eddig úgy találtam, hogy erre egyedül a bitstring típus alkalmas, viszont ez azt jelenti hopgy az eddig megszokott 32 lehetõséghez harminckét karakter kell! – ez kicsit drága dolognak tûnik. Ráadásul amikor a terminál szelektor õprogramba beolvasom kapásból konvertálnom kell binárisba, hiszen az egy C program.
Még azon morfondírozom. hogy a 32 lehetõséget le korlátozom 31-re (sose volt kihasználva a 32) és akkor egy int4-be belefér, viszont nem tudom hogy az SQL az int4 -el tud-e bitenkénti logikai mûveletet végezni?
Pl.
SELECT * FROM tábla WHERE cast(maszk as bit(31)) & B’1′ > 0;
ahol a maszk – int4 típus
vajon helyes eredményt fog adni? – vagyis minden sort amelynél a maszk 0-ás bitje „1”.Nem a maskot tartalmazó tábla több tízezer rekordjával, többek között, azt mutatja meg, hogy az adott rekordhoz kapcsolódó adatokat milyen csatornákon kell továbbítani – terminálok, több is lehet (mondjuk 32) így nem elég egy-egy terminál asszociáció.
Viszont ha megakarod kapni, hogy egy adott terminálra mely objetumok vannak „rákötve” meg kell nézned, hogy a rekord megfelelõ maszk bitje be van-e billenttve, vagyis így terminálonként leválogathatóak a rekordok. De ha mondjuk int4 esetleg int8 akkor nem tudsz bitenként -
SzerzőBejegyzés
legutóbbi hsz