Új hozzászólás Aktív témák
-
sanzi89
addikt
Ezzel az SQL paranccsal mi a hiba?
UPDATE log SET DateTime=DateAdd(hh,1, DateTime) WHERE DateTime>{ ts '2012-07-01 06:00:00.000' }
A log táblában a DateTime mező megfelelő értékeihez akarnék 1 órát hozzáadni. Módosított dátummal az óraátállításhoz kellene. Midig elszáll, hogy az UPDATE szintaktikailag helytelen...
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz sanzi89 #1261 üzenetére
Erre rájöttem már, hogy hülyeség, de nem tudom még így se megoldani, hogy növelje az órát. Elvileg a DateTime egy double típusú szám, szóval megcsinálhatnám ezt:
UPDATE log SET DateTime=1
De ez is szintaktikai hibás.
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
Ezzel mégis milyen szintaktikai hiba van?
INSERT INTO log (DateTime, TypeID) VALUES ({ ts '1990-12-31 00:00:00' } , 1)
Access adatbázis, ODBC-n kerezstül Delphiben szeretném elérni.
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz Sk8erPeter #1281 üzenetére
Én meg nem mondom, hogy a log foglalt-e, de másik ezer SELECT meg DELETE megy így is, hogy log.
Egyébként kipróbáltam, de ugyanaz, szintaktikai hiba az insert into utasításban.
u.i.: Remélem nem ilyen gondom van...
[ Szerkesztve ]
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz martonx #1283 üzenetére
1. Sajna így se volt jó
2. Próbáltam az általad említett verziókat is, de nem működtek. Illetve az én formátumom a programban egyéb helyeken tökéletesen működik, ezért is használom ezt.
3. Delphiben futtatva kapom. Hamarabb találtam megoldást, mintsem ki kellett volna próbálni Access Query-ben@-Zeratul-
Próbáltam a NULL értéket, de nem fogadta el.
Végül a megoldás. Ha felsoroltam az oszlopneveket (egyik DateTime) szintaktikai hiba. Kínomban beírtam, hogy log.DateTime, de ez értelem szerűen szar, de máshol így működött. Végül azt rontottam el, hogy ha elhagyom az oszlopneveket, akkor minden mezőt ki kell tölteni, pont ahogy írtad. Szóval a megoldás valami ilyesmi lett a többi oszlop adataival értelem szerűen:INSERT INTO log VALUES ( {ts '1995-12-31 01:15:15'}, *, *, '**', '**', *, *, **, *, *)
@sztanozs
Én is úgy érzem, hogy csak a szívás van vele. Most megint olyat kapok máshol, hogy a '2012-07-24 10:26:25' nem megfelelő DateTime formátum... Csak akkor tudnám mi az..."Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
-
sanzi89
addikt
Újabb gyönyörűség. Van egy táblám, benne adatok. Nincs semmilyen kulcs, csak behányva mindenféle adat. Van benne 2 sor, ami totálisan megegyezik, minden mező értéke ugyan az. Ebből kellene SQL lekérdezéssel törölni csak az egyiket. Ezt meg lehet egyáltalán csinálni?
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz Sk8erPeter #1307 üzenetére
Hát, az a nehéz benne, hogy nem tudom hogyan kell.
Van egy adatbázis - Access - amiben van rengeteg adat, ebből kikeresem a szar sorokat, és ezekből kellene törölni úgy, hogy csak egy maradjon. ODBC-n fut, és Delphiben kellene rá egy Query-t csinálni, amihez ugye kellene egy SQL parancs. Ez hibádzik.
De örülök, hogy ilyen egyszerű probléma, mert akkor várom a megoldást.
[ Szerkesztve ]
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz Sk8erPeter #1309 üzenetére
Egy Delphiben írt program egyik modulja lenne az, hogy bizonyos hiba miatt néha rekordok duplázódnak. Ezekből nem tudjuk mennyi van, vagy hogy hol vannak az adatbázisban. Eljutottam oda, hogy ezek a hibás adatok ki vannak listázva egy DBGrid-be. Itt a user kiválasztja, hogy melyiket hagyjuk meg - sajna így kell csinálni, mivel lehet más hiba is, és oda kell az, hogy el lehessen dönteni melyik maradjon - és a kiválasztottat törölni. Rengeteg sor van, több százezer, és lehet csak egy duplázott sor van benne.
Szóval külön adatbázis böngészőt nem használhatok, nem tudok simán rámenni és törölni. Plusz nincs ilyen, hogy id, nincs semmi. Ilyesmi sorokat képzelj el:
Név | Kártyaszám | Születési hely
Kis Pista | 1 | Budapest
Kis Pista | 1 | Budapest
Nagy Béla | 2 | DebrecenEbből kellene az egyik Kis Pistát törölni.
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz Sk8erPeter #1307 üzenetére
Ezek szerint mégse annyira egyértelműen könnyű a dolog...
@Goose-T
Köszi, szerintem valami ilyesmi lesz. Kitöröm őket, aztán beszúrok egy sort. Nem elegáns, de működik legalább.[ Szerkesztve ]
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz martonx #1317 üzenetére
Értelmes válasz, hmmm.... Kérdésem:
"...SQL lekérdezéssel..."Válaszod:
"...Access grafikus tábla megjelenítőjében jobb gomb..."Van még kérdésed?
@Sk8erPeter
Jó, le kellett volna írom, hogy milyen adatbázis, ebben igazad van, de azért a Te válaszaid se voltak annyira hasznos infók. Szintén, SQL lekérdezés, Delphi-n belül, tök logikus, hogy használjak egy új adatbázis kezelő programot. Leírtam, hogy van benne 2 sor, ami dupla, erre megkérdezed, hogy mindegyik vagy csak 2. Leírom, hogy nincs kulcs, nincs azonosító, minden sor ugyan azt tartalmazza, erre beírod, hogy id szerint töröljek. Csak forgatni tudom a szemem...Egyébként a segítség kérésben igazad van, bocs érte, csak amilyen lekezelően írtad az első kommentedet, arra akartam reagálni.
[ Szerkesztve ]
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz Sk8erPeter #1321 üzenetére
Rendben, legközelebb igyekszem pontosabbnak lenni.
[ Szerkesztve ]
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz sztanozs #1326 üzenetére
Ez nem jó, mivel nem módosíthatom ennyire az eredeti táblát.
A megoldás az lett, hogy COUNT-tal megszámoltam, hány ugyanolyan sor van, ha több, mint 1, akkor eltároltam az adatokat változókba, végrehajtottam a törlést, ami így mindkét bejegyzést törölte, aztán egy sima INSERT-tel beillesztettem 1 sort a régi adatokkal. Nem elegáns, de működik.
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
Újabb gondom volna. Van egy TXT, benne mindenféle adat. Van egy ilyen:
SZ'MITÓGÉP+NYOMTATÓ
Ezt kellene beletenni egy VARCHAR típusú mezőbe. Mindig elszáll error-ral. Ha kicserélem a ' jelet mondjuk egy A betűre, akkor már megeszi. De nem csak itt, máshol se teszi be a ' jel miatt. Az adatot nem szeretném módosítani, egy az egybe tolja fel egy táblába a TXT tartalmát. Mit lehet ezzel csinálni, hogy megegye a ' jelet?
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz sztanozs #1334 üzenetére
A fenti kommentek alapján már próbáltam, de Delphi alatt valahogy sehogy nem bír összejönni a parametrizált SQL beillesztés. Természetesen most sem... Itt tartok:
SQLCode:='INSERT INTO sap.eszkoz VALUES ('+slTagok[1]+','+slTagok[2]+','+slTagok[3]+','''+slTagok[4]+''','''+slTagok[5]+''', ''szam'','''+slTagok[7]+''',TXT50)';
ZQuery1.SQL.Clear;
ZQuery1.ParamByName('TXT50').AsString := slTagok[8];
ZQuery1.SQL.Add(SQLCode);
ZQuery1.ExecSQL;A hiba az, hogy TXT50 not found...
@Goose-T
Köszi, az ötlet jó, de ha meg lehet oldani, akkor módosítás nélkül szeretném.[ Szerkesztve ]
"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."
-
sanzi89
addikt
válasz sztanozs #1337 üzenetére
Oh, köszi!
Reggel 8 óra bújom ezt a szart, már jojózik a szemem, és egyszerűen nem vettem észre a példa kódban a kettőspontot.
@Goose-T
Nem bonyolult, csak plusz, felesleges művelet. Ha nem lehetne másképp megoldani, természetesen így csinálnám, de ezzel a paraméteres dologgal talán egyszerűbb."Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."