Hirdetés

Keresés

Új hozzászólás Aktív témák

  • himre82
    csendes tag

    Tulajdonképpen egy "egyszerű" szerszámnyilvántartó progit szeretnék csinálni. A különböző féle szerszámokat egy táblában tartanám nyilván, a jellemzőiket egy másikban. A progival lehetne új szerszámot felvenni, átkönyvelni két tárhely közt, életutat figyelni (azaz mikor lett kikönyvelve és mikor kaptuk vissza). A "gond" az hogy a szerszámok közt van olyan amik egyformák, de meg kell különböztetni őket egymástól. Ezeket a rajzszámuk és egy egyedi azonosító alapján lehet egyértelműen meghatározni, de értelem szerűen a jellemzőik egy másik táblában ugyan azok. Remélem érthető vagyok.
    Nah, és itt jön az amit kérdeztem. Teszem azt az első Form-on megjelennének egy listbox-ban, vagy comboboxban, vagy datagrid-ben, vagy datagridview-ban ha már VB2010 :) - de tulajdonképpen tök mindegy - a jellemzőkben felsorolt szerszámok. Ha valamelyiket kiválasztom, akkor egy új ablakban (hogy miért új ablakban, annak is megvan az oka) egy listbox-ban már csak az ehhez tartozó egyedi azonosítók jelennének meg. Itt kiválasztom a megfelelő egyedit, majd egy könyvel gombon meg kellene adni hogy egyrészt kifelé, vagy befelé történt a könyvelés, egy állaptra vonatkozó típusú érték paramétert kellene megadni, és tulajdonképpen ennyi.
    Ezt a feladatot már többféle módon is megoldottam.
    Legegyszerűbb az volt, amikor a dataset megfelelő tábláit hozzákötöttem a vezérlők datasource tulajdonságaihoz. Itt ott akadtam el amikor egy kapcsolótáblával kellett volna dolgoznom. Tehát mondjuk a második ablakban a szerszám neveit - típus alapján - egy harmadik táblából (PL.: Szerszám neve a jellemzők táblában csak egy kód, amit a harmadik táblából tároltam) kellett volna kiválasztani. Ekkor gondoltam arra, hogy adatkészletből feltöltök egy objektum kollekciót (itt minden objektum már létrehozásakor kikeresi számára a hozá tartozó infókat (név, azonosító, tulajdonságok, állapotinfók...stb), majd ezeket már egyszerűen tologathatom a Formok közt. Így is megcsináltam. Itt tök egyszerű a szerszám beazonosítása ID alapján, és az SQL parancsok is végtelenül leegyszerűsödtek :). A formok közt is már csak egy kis kollekciót kell átadni. Véleményem szerint nem túl elegáns dolog viszont az, hogy feltöltök egy adatkészelet, aztán azt még "átképzem" objektummá, és innen ered a kezdeti kérdésem... Még arra gondoltam hogy egy (-két..-öt?) datareaderrel is meg lehetne oldani ugyan ezt, így még nem próbáltam, de a visszaíráskor akkor megint SQL-ben kellene megírni az utasítsokat, ami (szintén) nem erősségem. Meg hát szerintem még 100 más módon is meg lehetne oldani.

    időközben kész lett a programod?

    egyébként hagyd az acces-t, de még az mdf fájlokat meg az sql lite-ot is. Lassúak. De nagyon.

    Még ha fejlesztői környezetben gyorsnak is tűnnek, a kliens gépén "kínhalál".

    Amilyen futó környezetet vázoltál, arra alkalmas lehet egy postgresql szerver (pgadminIII-mal), van hozzá net connector, és iszonyú gyors. És még az adatokat sem lehet manipulálni fájl szinten, nem úgy, mint egy acces mdb esetében.

    Egyébként ajánlanám az sql áttanulmányozását. Hihetetlenül leegyszerűsítené a dolgodat szerintem.

    És nem kell félni a bonyolult sql utasításoktól. Pont erre találták ki.

  • martonx
    veterán

    Tulajdonképpen egy "egyszerű" szerszámnyilvántartó progit szeretnék csinálni. A különböző féle szerszámokat egy táblában tartanám nyilván, a jellemzőiket egy másikban. A progival lehetne új szerszámot felvenni, átkönyvelni két tárhely közt, életutat figyelni (azaz mikor lett kikönyvelve és mikor kaptuk vissza). A "gond" az hogy a szerszámok közt van olyan amik egyformák, de meg kell különböztetni őket egymástól. Ezeket a rajzszámuk és egy egyedi azonosító alapján lehet egyértelműen meghatározni, de értelem szerűen a jellemzőik egy másik táblában ugyan azok. Remélem érthető vagyok.
    Nah, és itt jön az amit kérdeztem. Teszem azt az első Form-on megjelennének egy listbox-ban, vagy comboboxban, vagy datagrid-ben, vagy datagridview-ban ha már VB2010 :) - de tulajdonképpen tök mindegy - a jellemzőkben felsorolt szerszámok. Ha valamelyiket kiválasztom, akkor egy új ablakban (hogy miért új ablakban, annak is megvan az oka) egy listbox-ban már csak az ehhez tartozó egyedi azonosítók jelennének meg. Itt kiválasztom a megfelelő egyedit, majd egy könyvel gombon meg kellene adni hogy egyrészt kifelé, vagy befelé történt a könyvelés, egy állaptra vonatkozó típusú érték paramétert kellene megadni, és tulajdonképpen ennyi.
    Ezt a feladatot már többféle módon is megoldottam.
    Legegyszerűbb az volt, amikor a dataset megfelelő tábláit hozzákötöttem a vezérlők datasource tulajdonságaihoz. Itt ott akadtam el amikor egy kapcsolótáblával kellett volna dolgoznom. Tehát mondjuk a második ablakban a szerszám neveit - típus alapján - egy harmadik táblából (PL.: Szerszám neve a jellemzők táblában csak egy kód, amit a harmadik táblából tároltam) kellett volna kiválasztani. Ekkor gondoltam arra, hogy adatkészletből feltöltök egy objektum kollekciót (itt minden objektum már létrehozásakor kikeresi számára a hozá tartozó infókat (név, azonosító, tulajdonságok, állapotinfók...stb), majd ezeket már egyszerűen tologathatom a Formok közt. Így is megcsináltam. Itt tök egyszerű a szerszám beazonosítása ID alapján, és az SQL parancsok is végtelenül leegyszerűsödtek :). A formok közt is már csak egy kis kollekciót kell átadni. Véleményem szerint nem túl elegáns dolog viszont az, hogy feltöltök egy adatkészelet, aztán azt még "átképzem" objektummá, és innen ered a kezdeti kérdésem... Még arra gondoltam hogy egy (-két..-öt?) datareaderrel is meg lehetne oldani ugyan ezt, így még nem próbáltam, de a visszaíráskor akkor megint SQL-ben kellene megírni az utasítsokat, ami (szintén) nem erősségem. Meg hát szerintem még 100 más módon is meg lehetne oldani.

    Érteni véllek, és szerintem ez alapján egyrészt erősen túlbonyolítod a dolgot.
    Másrészt ez itt egy VB szakmai topik, aminek nem feladata programozni tanítani, programozás technikákat, design patterneket, DB séma módszertanokat oktatnia.
    Mivel rendes, értelmes tagnak látszol, privátban, mailben szívesen segítek, amikor időm engedi. Egyébként jó nyomon jársz, próbálgatásokkal tudod csiszolni a tudásodat.

Új hozzászólás Aktív témák