Strona 1 z 2

UPDATE w wykresie

: 28 maja 2008, 19:13
autor: cygan
Witam
Czy da się jakoś wywołać polecenie UPDATE bezpośrednio z poziomu wykresu?
Można oczywiście UPDATE zaszyć w procedurze i spod wykresu wywoływać procedurę ale czy można to zrobić w szybszy sposób, tzn. bez pomocy procedur?
Wpisując kod jawnie otrzymuję komunikat:
"Wykonanie operacji okazało się niemożliwe.
Znaleziono niedozwoloną instrukcję UPDATE."
Ha, tak sobie myślę, że mój problem nawet za pomocą procedury nie będzie łatwo rozwiązać.
Chiałbym mianowicie zaznaczyć sobie kilka towarów i wszystkim zaznaczonym za jednym zamachem zmienić nazwę na 'ABC'.
Macie pomysł jak to zrobić?
W jawnym updatecie byłoby prosto:

@PAR ?@HS50|ZazGUID|&ZazGUID:REG= @? PAR@
@PAR ?@S10|Par_Nazwa|Nazwa:REG= @? PAR@

UPDATE cdn.TwrKarty
SET Twr_Nazwa = ??Par_Nazwa
FROM cdn.TwrKarty
JOIN cdn.WkrZaznaczenia2 ON Twr_GIDTyp=WKZ2_GIDTyp AND Twr_GIDNumer=WKZ2_GIDNumer
WHERE WkZ2_GUID=??ZazGUID

cygan

Re: UPDATE w wykresie

: 28 maja 2008, 20:24
autor: Przemek
Nie,

ale możesz (tylko to jest niebezpieczne, i na pewno nie zaliczane do dobrych praktyk) zrobić procedurę która wykonuje zapytanie podane jako parametr i wywoływać sobie

EXEC [dbo].[WykonajZapytanie]"UPDATE ....."

Re: UPDATE w wykresie

: 28 maja 2008, 22:20
autor: cygan
oj nie mogę zrobić sobie takiej procedury ;)
dlatego że xl chyba po prostu sprawdza istnienie słowa "UPDATE" w definicji wykresu i jeśli takie słowo istniej to nie pozwala nawet tej definicji zapisać,
czyli nie zapiszesz nawet tak niegroznego wykresu:

SELECT 1 as lp, twr_kod AS abcUPDATEdef FROM cdn.twrkarty

Pozdrawiam
cygan

Re: UPDATE w wykresie

: 29 maja 2008, 10:12
autor: Greg
Brak możliwości stworzenia wykresu z updatem jest celowe - chodzi przede wszystkim o bezpieczeństwo - nie byłoby zbyt dobrze gdyby każdy operator miał możliwość wywołania update'a na bazie z poziomu XLa. Stąd trzeba to robić na około poprzez procedurę serwerową.

Re: UPDATE w wykresie

: 29 maja 2008, 13:06
autor: cygan
wszystko pięknie tyle że..taka możliwość chyba istnieje ;)
wystarczyło banalne:

declare @par1 varchar (100)
set @par1 = 'up' + 'date cdn.twrkarty set twr_nazwa = 123 where twr_kod = 123'

EXEC ( @par1 )

Re: UPDATE w wykresie

: 22 lip 2021, 13:27
autor: mr_zola
Hej,
odgrzewam starego kotleta.

Co robię nie tak jeśli po czymś takim:

Kod: Zaznacz cały

@PAR ?@HS50|ZazGUID|&ZazGUID:REG= @? PAR@

declare @par1 varchar (300)

set @par1 = 'up'+'date'+' trn1
SET trn1.TrN_KarNumer = 2
FROM cdn.TraNag AS trn1
inner join cdn.WkrZaznaczenia2 (nolock) on wkz2_GidTyp = trn1.trn_gidtyp and wkz2_gidnumer = trn1.trn_gidnumer
where trn1.TrN_GIDTyp=2033 AND wkz2_guid = '+ ??ZAZGUID  
EXEC ( @par1 )

otrzymuję komunikat "Nie przyznano uprawnienia UPDATE wobec obiektu „TraNag” w bazie danych „CDNXL_Baza” w schemacie „CDN”."

Re: UPDATE w wykresie

: 22 lip 2021, 14:30
autor: viesiek1
Spróbuj dodać uprawnienia do CDNRaport:

Update.png
Update.png (25.41 KiB) Przejrzano 4348 razy

Re: UPDATE w wykresie

: 23 lip 2021, 09:10
autor: mr_zola
Dziękuję, lecz nie mam pojęcia jak mam dodać wiersz uprawnienia UPDATE tak aby w kolumnie Grantor był CDN
Zrzut ekranu 2021-07-23 091026.png
Zrzut ekranu 2021-07-23 091026.png (52.24 KiB) Przejrzano 4326 razy

Re: UPDATE w wykresie

: 23 lip 2021, 09:52
autor: viesiek1
Zaznacz check box przy "Grant", zapisz i wejdź ponownie.

Re: UPDATE w wykresie

: 22 lut 2023, 13:33
autor: mr_zola
Ponownie odgrzewam.
co zrobić gdy moja nowa procedura nie ma nic w Permissions?

Kod: Zaznacz cały

A otrzymuję komunikat "Nie przyznano uprawnienia EXECUTE wobec obiektu „ZmianaTypuKonta” w bazie danych „ERPXL_SZKOŁA” w schemacie „CDN”. (Wewnętrzny)