Výsledky 1 až 17 z 17

Téma: MS SQL dotaz UPDATE (používaný z ASP.NET)

  1. #1
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní MS SQL dotaz UPDATE (používaný z ASP.NET)

    Chcel by som sa opýtať, či je možné do jedného SQL update dotazu zmeniť 2 položky z dvoch rôznych tabuliek.

    predstavoval by som si to nejak takto:
    UPDATE protokol SET uctovat=1 WHERE ... THEN
    UPDATE test SET hotovo=1 WHERE...

    Pretože v ASP viem dať update dotaz len do jedného riadku (deklaratívne v .aspx)

    ešte jedna vec:
    je možné do update dať niečo takého:
    UPDATE protokol SET uctovat=NOT parameter WHERE ...

    pretože mne to hlási chybu

    Ďakujem.

  2. #2

    Standardní

    To prvni by melo stacit jen za kazdym prikazem dat strednik a mas to v jednom radku.

    Co se tyce toho druheho co chce udelat? Negaci? Jaky datovy typ to je?

  3. #3
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní

    UPDATE dbo.Protokol_pr
    SET uctovat = 1
    WHERE (ID_protokolu = 'A550134');
    UPDATE protokol_pr
    SET uctovat = 0
    WHERE ID_protokolu = 'A551036'

    takto som to napísal a on to nejak divne zarovnal, no ale to nie je podstatné. Ide o to, že aj tak to hlási chybu, že Unable to parse query text.

    Malo by to ísť priamo aj v tom ASP.NET sqldatasource, alebo to nepoznáš?

    A to druhé je klasicky datový typ bool. Až na to, že ho získavam z parametru 'true' 'false'. Ktorý pri selekte správne pochopí, že je bool. Ale v update mi proste NOT píše tiež chybu

    používam to takto
    UPDATE dbo.Protokol_pr
    SET uctovat = NOT uctovat
    WHERE (ID_protokolu = 'A550134')

    pričom to účtovať samozrejme ťahám odinakadiaľ. Ale ak by šlo toto tak myslím, že aj ten môj parameter by to už malo úspešne znegovať.

  4. #4

    Standardní

    Datasource znam akorat javovske Jinak zkus dat strednik i za ten druhy dotaz.

  5. #5
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní

    ziaľ nepomohlo to. Škoda . A ta negácia vôbec nemám šainu prečo v update nejde.

    A pozná niekto ASP?
    asp:detailview tu je možné spraviť to, že .changeMode(readonly)
    je to možné aj v asp:gridview nejakým spôsobom?

    Syntax som presne nedodržal ale približne. Potreboval by som ošetriť to, že ak niekto zmení riadok, a ešte neodklikne update, alebo cancel, tak nech sa automatický dá cancel. (takto ostanú riadky editovateľné, aj keď už sú tam iné data )

    vďaka

  6. #6

    Standardní

    Citace Původně odeslal xkrchnav
    ...
    UPDATE dbo.Protokol_pr
    SET uctovat = NOT uctovat
    WHERE (ID_protokolu = 'A550134')
    Co takhle zkusit toto:
    Kód:
    UPDATE dbo.Protokol_pr
    SET uctovat = (SELECT NOT uctovat FROM dbo.Protokol_pr WHERE ID_protokolu = 'A550134')
    WHERE (ID_protokolu = 'A550134')
    EDIT: Oops, koukam ze uz to asi bude stejne out of date
    EDIT2: Tohle nefunguje Reseni viz nize
    Love 'murican gas-guzzlers...
    Chevrolet Camaro '79, 5L V8
    Chevrolet Tahoe '01, 5.3L V8
    Chevrolet Camaro '01, 3.8L V6
    chevroletcamaro.cz - Unleashed Fuel Only

  7. #7
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní

    Super. Nie je to out of date. Riešil som teray iné veci, takže sa mi toto dosť hodilo. A nevieš ešte náhodou aj ten update cez dve tabuľky naraz?
    Kód:
    ;
    nepomohlo.

  8. #8

    Standardní Re: MS SQL dotaz UPDATE (používaný z ASP.NET)

    Toto funguje v MySQL (v4.1.14):
    Kód:
    UPDATE protokol,test SET protokol.uctovat=1,test.hotovo=1 WHERE protokol.nieco OR test.nieco_ine
    Toto funguje tiez:
    Kód:
    UPDATE protokol SET uctovat=NOT uctovat WHERE nieco
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  9. #9
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní nie v MS

    tak som si to predstavoval, ale MS SQL ma sklamalo...

  10. #10

    Standardní

    Ted me napadlo:
    Udelej si v DB vlastni funkci, neco jako Negate(bit hodnota) a pak by to melo projit v tom UPDATE v pohode, ten pokus co jsem psal nahore je blbe.
    Love 'murican gas-guzzlers...
    Chevrolet Camaro '79, 5L V8
    Chevrolet Tahoe '01, 5.3L V8
    Chevrolet Camaro '01, 3.8L V6
    chevroletcamaro.cz - Unleashed Fuel Only

  11. #11
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní

    prečo je to zle? Že MS SQL nedovoľuje vlastne ani
    Kód:
    SELECT NOT a FROM...
    avšak takto by to mohlo ísť nie?

    Kód:
    UPDATE tab SET 
    neguj = (
      (SELECT 0 FROM tab WHERE neguj=1 AND id=mojId) UNION 
      (SELECT 1 FROM tab WHERE neguj=0 AND id=mojId) 
    ) WHERE id=mojId;
    no vyskúšam to zajtra.

  12. #12

    Standardní

    Prave, MS SQL to nedovoluje, ale ted jsem na to prisel je to pomerne easy:
    Funkce:
    Kód:
    CREATE FUNCTION dbo.Negate (@value bit)
    RETURNS bit
    BEGIN
    
    IF @value = 1 
    	SET @value = 0
    ELSE 
    	SET @value = 1
    
    RETURN @value
    END
    Pouziti:
    Kód:
    update pokus
    set [hodnota] = dbo.Negate([hodnota])
    where id = 21
    Vyzkouseno a funguje to
    Love 'murican gas-guzzlers...
    Chevrolet Camaro '79, 5L V8
    Chevrolet Tahoe '01, 5.3L V8
    Chevrolet Camaro '01, 3.8L V6
    chevroletcamaro.cz - Unleashed Fuel Only

  13. #13

    Standardní

    Citace Původně odeslal xkrchnav
    Super. Nie je to out of date. Riešil som teray iné veci, takže sa mi toto dosť hodilo. A nevieš ešte náhodou aj ten update cez dve tabuľky naraz?
    Kód:
    ;
    nepomohlo.
    Tady bude zrejme problem v sql adapteru, ktery se snazi spustit 1 query a to je bud SELECT, DELETE, INSERT, UPDATE.
    Tohle pujde taktez urcite obejit sepsanim techto dvou UPDATU do jedne ulozene procedury napriklad s 2 parametry a tu potom zavolat...
    Love 'murican gas-guzzlers...
    Chevrolet Camaro '79, 5L V8
    Chevrolet Tahoe '01, 5.3L V8
    Chevrolet Camaro '01, 3.8L V6
    chevroletcamaro.cz - Unleashed Fuel Only

  14. #14
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní

    no jo, tým uloženým procedúram som sa chcel vyhnúť, ale vidím, že ich asi budem musieť použiť . Vďaka.

  15. #15

    Standardní

    [OT]...Vzdyt ulozene procedury jsou tak kraaasneee [/OT]
    Love 'murican gas-guzzlers...
    Chevrolet Camaro '79, 5L V8
    Chevrolet Tahoe '01, 5.3L V8
    Chevrolet Camaro '01, 3.8L V6
    chevroletcamaro.cz - Unleashed Fuel Only

  16. #16
    Junior Member
    Založen
    24.11.2005
    Bydliště
    Brno, (Košice, SK)
    Příspěvky
    27
    Vliv
    0

    Standardní

    Citace Původně odeslal NightKing
    [OT]...Vzdyt ulozene procedury jsou tak kraaasneee [/OT]
    Sú? No tak asi si budem na to musieť zvyknúť. Teraz keď stváram už nejaké väčšie projekty. Ale potom je to zložitejšie s premiestňovaní na iný databázový server. Teraz mi stačí len premeniť web.config. A potom sa budem musieť hrabať aj v enterprise managerovi. Ale fajn no negate už funguje a požívam to. Super. Moc dík.

  17. #17

    Standardní

    Ulozene procedury maji nekolik vyhod a u vetsich projektu jsou nutnosti. Je totiz vyhodnejsi menit kod SP nez hrabat do zdrojaku a upravovat SQL dotazy. Take se daji pomerne snadno debugovat, cehoz jsem castokrat s vyhodou vyuzil.
    Pokud premistujes nejaky takovy projekt na jiny server, tak je samozrejmosti mit zalohovane vsechny skripty (SP, tabulky, views, funkce), tudiz Enterprise Manager neni nutnosti, spis vyhodou.
    Love 'murican gas-guzzlers...
    Chevrolet Camaro '79, 5L V8
    Chevrolet Tahoe '01, 5.3L V8
    Chevrolet Camaro '01, 3.8L V6
    chevroletcamaro.cz - Unleashed Fuel Only

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •