среда, 29. април 2015.

Zamena stringa u SQL procedurama, viewima i funkcijama

Našao na netu korisnu skriptu i malo je modifikovao .... pronalazi traženi string u procedurama, viewima i funkcijama i generiše novu skriptu koja radi njihov alter:


use DATABASE_NAME
go

-- set "Result to Text" mode by pressing Ctrl+T
SET NOCOUNT ON

DECLARE @sqlToRun nvarchar(MAX), @searchFor NVARCHAR(100), @replaceWith VARCHAR(100)

-- text to search for
SET @searchFor = 'SEARCH_FOR'
-- text to replace with
SET @replaceWith = 'REPLACE_WITH'

-- this will hold stored procedures text
DECLARE @temp TABLE (spText VARCHAR(MAX))

DECLARE curHelp CURSOR FAST_FORWARD
FOR
-- get text of all stored procedures that contain search string
-- I am using custom escape character here since i need to espape [ and ] in search string
SELECT DISTINCT 'sp_helptext '''+OBJECT_SCHEMA_NAME(id)+'.'+OBJECT_NAME(id)+''' '
FROM syscomments WHERE TEXT LIKE '%' + REPLACE(REPLACE(@searchFor,']','\]'),'[','\[') + '%' ESCAPE '\'
ORDER BY 'sp_helptext '''+OBJECT_SCHEMA_NAME(id)+'.'+OBJECT_NAME(id)+''' '

OPEN curHelp

FETCH next FROM curHelp INTO @sqlToRun

WHILE @@FETCH_STATUS = 0
BEGIN
   --insert stored procedure text into a temporary table
   INSERT INTO @temp
   EXEC (@sqlToRun)
 
   -- add GO after each stored procedure
   INSERT INTO @temp
   VALUES ('GO')
 
   FETCH next FROM curHelp INTO @sqlToRun
END

CLOSE curHelp
DEALLOCATE curHelp

-- find and replace search string in stored procedures
-- also replace CREATE PROCEDURE with ALTER PROCEDURE
UPDATE @temp
SET spText = REPLACE(REPLACE(spText,'CREATE PROCEDURE', 'ALTER PROCEDURE'),@searchFor,@replaceWith)

UPDATE @temp
SET spText = REPLACE(REPLACE(spText,'CREATE VIEW', 'ALTER VIEW'),@searchFor,@replaceWith)

UPDATE @temp
SET spText = REPLACE(REPLACE(spText,'CREATE FUNCTION', 'ALTER FUNCTION'),@searchFor,@replaceWith)


SELECT spText FROM @temp
-- now copy and paste result into new window
-- then make sure everything looks good and run
GO

четвртак, 26. март 2015.

Izvršavanje procedura sa OWNER privilegijama

Da bi se SP izvršila sa OWNER privilegijama potrebno je dodati direktivu WITH EXECUTE AS OWNER. Primer procedure koja izvršava string sa Owner privilegijama:

ALTER PROCEDURE [dbo].[UTL_ExecNGK]
@sql nvarchar(500)
WITH EXECUTE AS OWNER
AS
BEGIN
SET NOCOUNT ON;

EXECUTE sp_executesql @sql

END

среда, 11. фебруар 2015.

Debug mod za MINI DLNA na POPCORNHOUR

Prvo treba isključiti servis:
# cd /share/Apps/local/etc/init.d
# ./minidlna stop

zatim pokrenuti Minidlna u debug modu:
# cd /share/Apps/local/sbin
# ./minidlnad -R -d -f /share/Apps/local/etc/minidlna/minidlna.conf


петак, 9. јануар 2015.

Rebuild svih indexa u bazi

USE ImeBaze

DECLARE @TableName nvarchar(255)

DECLARE TableCursor CURSOR FOR
SELECT table_name FROM information_schema.tables
WHERE table_type = 'base table'

OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @TableName

WHILE @@FETCH_STATUS = 0
BEGIN
PRINT  @TableName + '.....'
DBCC DBREINDEX(@TableName,' ',0) -- FillFactor=0

FETCH NEXT FROM TableCursor INTO @TableName
END

CLOSE TableCursor

DEALLOCATE TableCursor

PRINT 'Finished!'

среда, 10. септембар 2014.

Orion Telekom + IPTV Srbija + DUNE 102 HD + Nepotpuno uputstvo = MNOGO SATI NERVIRANJA

Od skora sam "ponosni" korisnik Orionove IPTV usluge. Najveći adut u Orionovoj ponudi je svakako Dune HD 102. Radi se o vrlo dobrom mrežnom multimedijalnom plejeru. Ljubazno su mi posle potpisivanja uređaja i plaćanja uručili uređaj sa uputstvima i komentarom "sve vam tu piše".
Na IP TV stvarno nemam primedbe ali sve ono što su pored toga reklamirali jednostavno nije bilo moguće koristiti. U uputstvu je sve bilo opisano ali gledanje sadržaja sa USB-a, gledanje i slušanje mrežnih fajlova, gledanje YouTube-a i još mnogo šta jednostavno nije moglo da se pokrene jer nije bilo opcije u meniju. Dugo sam pokušavao da kontaktiram tehničku podršku, pa onda išao u poslovnicu, ljubazno mi govorili da probam "ovo" ili "ono" ali ništa.
Tek treći ili četvrti put kada sam otišao u poslovnicu zatekao se tu "gospodin koji radi tehniku" i otkrio mi veliku tajnu a ja je upravo obelodanjujem :) :

Za startovanje IPTV prijemnika: uključiti uređaj u struju, svetli crvena lampica na uređaju, pritisne se taster Power na daljinskom i posle 60ak sekundi startovan je IPTV.

Za startovanje Dune Playera: prvo mora da se startuje IPTV kao što je gore opisano, zatim se isključi uređaj na Power dugme daljinskog i uređaj uđe u StandBy. Sačeka se 3-4 sec i onda se na daljinskom pritisne plavo dugme (dole desno, izgledaju kao oni dugmići za teletext) i gle ČUDA!!! uređaj se startuje samo što sada umesto moda IP TV radi u modu Dune Network Player.

Sve ovo mi možda i ne bi bilo interesantno da u dokumentaciji ima bar reči na ovu temu. Dokumentacija je solidna ali je POTPUNO POGREŠNA! A povrh svega zaposleni i tehnička podrška nemaju pojma o ovome. 

среда, 3. септембар 2014.

Kako omogućiti Google Now na Android telefonu

Neophodno je imati Internet konekciju. U podešavinjama telefona (Opcije za programere) mora da bude omogućena opcija lažnih lokacija.

Korak 1:
Postavite jezik telefona na engleski

Korak 2:
Instalirajte neki Fake GPS program i postavite da vam je lokacija negde u Evropi (provereno radi sa Engleskom :) ). 

Korak 3: 
Disable-ujte Google Play Service (prvo morate da deinstalirate sve update-ove da bi se videlo dugme Disable)

Korak 4: 
Idite u  Settings > Account > Google > Search > Account & privacy > Google Account i napravite Logout pa onda Login na svoj nalog. Odgovorite sa Yes kada vas pita da li ulazite u Google Now

Google now bi trebalo da je sada aktivan

Korak 5: 

Ne zaboravite da enable-ujete Google Play Service

понедељак, 25. август 2014.

Clear cache na SQL

Vrlo korisna stvar pre početka merenja performansi napisane procedure na SQLu je očistiti keš. Pre pozivanja upita treba izvršiti sledeće komande:

CHECKPOINT; 
GO 
DBCC DROPCLEANBUFFERS; 
GO
EXEC sp_......