Keresés

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

  • nyunyu

    félisten

    Adott egy alkalmazas, ami az adatait eleg oldschool modon, Paradox tablakban tarolja, ehhez kene irnom valami kis utilityt, ami neha ranez, aztan kuld egy figyelmeztetest, ha valami parameter eler egy megadott erteket.

    Olvasgatom a Visual C# lepesrol lepesre konyv adatbazisok fejezetet, de mar az elejen elakadtam, hogyan kell megnyitni a *.db fajlokat.

    Data Source Wizardban odaig eljutottam, hogy new connection, Microsoft ODBC Data Source, ott use connection/build, Microsoft Paradox Driver, next, next, aztan a vegen beszol egy "selecting objects of type "procedure" not supported" hibat.

    Generalt ConnectionString igy nez ki:
    Driver={Microsoft Paradox Driver (*.db )};collatingsequence=ASCII;defaultdir=D:\DATABASE;driverid=538;fil=Paradox 5.X;filedsn=C:\Program Files\Common Files\ODBC\Data Sources\Paradox.dsn;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;paradoxnetpath=C:\WINDOWS\system32;paradoxnetstyle=4.x;paradoxusername=admin;safetransactions=0;threads=3;uid=admin;usercommitsync=Yes

    Mi lehet a hiba?

    Hello IT! Have you tried turning it off and on again?

  • nyunyu

    félisten

    Benazok C#-ban egy programot, ami MS SQL adatbazisban elore legeneralt adatokat olvas be, es par valtozotol fuggoen masik tablakba szurja be a rekordokat.
    Ide-oda pakolando rekordokban szerepel kezdo es vegdatum (utobbi lehet NULL!)

    Ennek oromere hasznalnam az SqlDateTime tipust, tok jo, frankon mukodik vele az adatbazisbol olvasas, nem kell figyelni arra, hogy a bemenet lehet NULL is.

    Szivas resze ott van, hogy kezzel raknam ossze a szervernek feladando SQL queryt (hiba eseten logolhato, utolag kezzel futtathato, stb :DDD), de ezzel a tipussal erosen meggyult a bajom.

    Szoval rakom ossze a queryt:
    SqlCommand cmd=new SqlCommand("",conn)
    cmd.CommandText = "INSERT INTO blabla VALUES ("+vegDatum+")";

    Arra hamar rajottem, hogy ennek az eredmenye csak akkor helyes SQL szintaktikailag, ha a vegDatum NULL.
    Ha nem NULL, akkor aposztorofok koze kell tenni a datumot.
    cmd.CommandText = "INSERT INTO... VALUES ('"+vegDatum+"')";

    Csakhogy ennek az eredmenyet sem eszi meg az SQL 2005, mert a magyar Windows a datum moge pontot tesz (pl. 2011.12.16. 00:25:00 )
    Pont nelkul megenne...

    Szoval hogyan lehet epkezlab, SQL altal emesztheto formaju stringge alakitani az SqlDateTime tipust?

    ToString() metodusa ugyanigy pontot tesz a nap moge, formazni meg nem lehet. :(

    Ez erosen ganyolas szagu, de legalabb mukodik:
    DateTime vegD=(DateTime)vegDatum;
    cmd.CommandText = "INSERT INTO... VALUES ('"+vegD.ToString("yyyy-MM-dd HH:mm:ss)"+')";

    Hello IT! Have you tried turning it off and on again?

  • nyunyu

    félisten

    válasz amargo #2614 üzenetére

    Tobb szerverre is be kell szurni ugyanazokat a rekordokat, raadasul az irodai fejleszto kornyezetunkben (SQL2000) van csak identity a tablan, igy eloszor ide kell beszurni az uj mukodesi parametereket, hogy a visszakapott ID-vel tudjam beirni az eles SQL2005-on levo tablaba.

    Ha nem egyezik a ket rendszer ID-je, akkor kovetkezo fejlesztes elesitesnel (=komplett parameter tabla export) javithatatlanul hazavagnam az eles rendszeren addig gyujtott statisztikai adatokat. :(

    Nyilvan meg lehetne csinalni tarolt eljarasokkal is, es C#-ban csak kattintgatos webes feluletet osszerakni, ami meghivja, de a linked servert nem szeressuk, kulonbozo SQL verziok kozott elegge korlatozottan mukodik.

    Raadasul a tarolt eljarasnak is at kell adni valahogy a datum parametert, vagyis ugyanott vagyok, mint most. :(

    [ Szerkesztve ]

    Hello IT! Have you tried turning it off and on again?

  • nyunyu

    félisten

    válasz amargo #2617 üzenetére

    Replikacio SQL2000 alatt elmeletileg lehetseges, gyakorlatban meg csak a gond van vele, ugyhogy inkabb nem eroltetjuk. :DDD

    Nem kell ennyire tulspilazni a dolgot, egy egyszeru webes cuccot akarok osszerakni, ahol supportos kollega beir kb. 2 adatot, plusz kivalasztja 2 legordulo listabol, ami neki kell, aztan nyom egy gombot, es a program legeneralja azt a par adatbazis rekordot, amit jelenleg en szoktam kezzel letrehozni a fejlesztoi rendszeren, aztan manualisan attolteni az elesre.
    Igy a support par perc alatt be tudja maganak allitani azt, amit en kezzel szoktam fel ora alatt, aztan nem este 6-kor talalnak meg ilyen hulyesegekkel, hogy masnap reggelre kell 10 mukodo telefonvonal az ugyfelnek, ilyen meg ilyen beallitasokkal.

    Nyilvan egyszerubb lett volna odamenni valamelyik webes fejlesztonkhoz, aztan ket nap alatt osszerakta volna, amivel en tokoltem egy hetet, de hat nekem is kell a gyakorlat, meg amugy sem volt jobb dolgom. :DDD

    [ Szerkesztve ]

    Hello IT! Have you tried turning it off and on again?

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