понедељак, 4. новембар 2019.

Lokacija Windows 10 lock screen slika

Slike koje Windows 10 prikazuje na lock screen smeštaju se u folder:

C:\Users\[user_name]\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets

Treba im samo dodati ekstenziju JPEG i eventualno neko smisleno ime :)

среда, 13. децембар 2017.

петак, 17. март 2017.

Promena fizičkog imena fajla na SQL serveru


-- Detach Current Database
USE [master]
GO
EXEC master.dbo.sp_detach_db @dbname = N'MyDB'
GO
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
-- To Rename Physical Files */
EXEC xp_cmdshell 'RENAME "D:\SQLData\MSSQL10_50.SQL2008\MSSQL\DATA\MyDB.mdf", "MyDB_NEW.mdf"'
GO
EXEC xp_cmdshell 'RENAME "D:\SQLData\MSSQL10_50.SQL2008\MSSQL\DATA\MyDB.ldf", "MyDB_NEW_log.ldf"'
GO
-- Attach Renamed ProductsDB Database Online */
CREATE DATABASE MyDB ON
( FILENAME = N'D:\SQLData\MSSQL10_50.SQL2008\MSSQL\DATA\MyDB_NEW.mdf' ),
( FILENAME = N'D:\SQLData\MSSQL10_50.SQL2008\MSSQL\DATA\MyDB_NEW_log.ldf' )
FOR ATTACH
GO

среда, 20. јануар 2016.

Provera ispravnosti JMBG-a

Provera ispravnosti JMBG-a na SQL server strani :

CREATE FUNCTION fnCheckJMBG
(
@JMBG nvarchar(20)
)
RETURNS bit
AS
BEGIN

DECLARE @sum int
DECLARE @index int
DECLARE @numbers TABLE(ID int, Value int);

SET @index=1

WHILE @index <= 13
BEGIN
  INSERT INTO @numbers (ID, Value)
VALUES(@index, CAST(SUBSTRING (@JMBG, @index, 1) AS int))
           SET @index = @index + 1
END

SET @sum = (SELECT Value FROM @numbers WHERE ID=13)+
(SELECT Value FROM @numbers WHERE ID=1)*7 +
(SELECT Value FROM @numbers WHERE ID=2)*6 +
(SELECT Value FROM @numbers WHERE ID=3)*5 +
(SELECT Value FROM @numbers WHERE ID=4)*4 +
(SELECT Value FROM @numbers WHERE ID=5)*3 +
(SELECT Value FROM @numbers WHERE ID=6)*2 +
(SELECT Value FROM @numbers WHERE ID=7)*7 +
(SELECT Value FROM @numbers WHERE ID=8)*6 +
(SELECT Value FROM @numbers WHERE ID=9)*5 +
(SELECT Value FROM @numbers WHERE ID=10)*4 +
(SELECT Value FROM @numbers WHERE ID=11)*3 +
(SELECT Value FROM @numbers WHERE ID=12)*2

RETURN CASE WHEN (@sum % 11)= 0 THEN 1 ELSE 0 END

END
GO

петак, 15. јануар 2016.

Brisanje tabela ponekad nije lak posao

Brisanje tabela, posebno onih koje imaju puno relacija ka drugim tabelama, nije lak posao. Ovo je moje rešenje za brisanje tabele @TableName zajedno sa njenim foreign key-evima:


DECLARE @sqlCommand nvarchar(MAX), @sqlString nvarchar(MAX)

DECLARE cur CURSOR LOCAL FOR
SELECT
'ALTER TABLE ' +  OBJECT_SCHEMA_NAME(parent_object_id) +
'.[' + OBJECT_NAME(parent_object_id) +
'] DROP CONSTRAINT ' + name AS sqlString
FROM sys.foreign_keys
WHERE referenced_object_id = OBJECT_ID(@TableName)

OPEN cur

FETCH NEXT FROM cur INTO @sqlString

WHILE @@FETCH_STATUS = 0 BEGIN

EXEC (@sqlString)
FETCH NEXT FROM cur INTO @sqlString
END

CLOSE cur
DEALLOCATE cur

SET @sqlCommand = 'DROP TABLE dbo.[' + @TableName + ']'
EXEC (@sqlCommand)

среда, 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_......

четвртак, 21. август 2014.

Pozicioniranje na izmenjeni slog na continous formi u Access-u

Nakon refresha continous/datasheet forme Access pozicionira pokazivač sloga na prvi slog u tabeli. Rešenje koje možda nije najelegantnije ali provereno radi :


Dim currID As Variant
currID = Me.ID
Dim rsC As Recordset
Set rsC = Me.RecordsetClone
Me.Requery
With rsC
    .Find "ID = '" & currID & "'"
    If .EOF Then
         MsgBox "Ne mogu da pronađem podatak"
     Else
         Me.Bookmark = .Bookmark
    End If
End With

петак, 15. август 2014.

Unique Constraint samo za nove unose

Imao sam zahtev da počev od ovog momenta svi podaci koji se unose u tabelu (VEEEELIKU) moraju da budu jedinstveni po određenom kriterijumu (kombinacija više polja). Najelegantnije rešenje za to je Unique Constraint u sledećem obliku:

USE ime_baze
GO

CREATE UNIQUE NONCLUSTERED INDEX [tabela_BezDuplihStavki] ON [dbo].[tabela]
(
[prvo_polje] ASC,
[drugo_polje] ASC
)
WHERE ([ID]>(poslednji_id.))
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO


Ovim se od poslednjeg unetog id-a u tabeli (poslednji_id) proveravaju svi naredni unosi.

среда, 13. август 2014.

Kako pronaći u SQL 2008 bazi tabele koje imaju uključen Change Tracking

Sledeći upit izlistava sve tabele u bazi  koje imaju uključen Change Tracking:

USE ime_baze
go

SELECT sys.schemas.name AS SchemaName, sys.tables.name AS TableName FROM sys.change_tracking_tables
JOIN sys.tables ON sys.tables.object_id = sys.change_tracking_tables.object_id
JOIN sys.schemas ON sys.schemas.schema_id = sys.tables.schema_id

уторак, 12. август 2014.

Produženje/zamena sertifikata za Exchange 2007

Da bi zamenili sertifikat za Outlook pristup Exchange Serveru 2007 potrebno je generisati novi i obrisati stari sertifikat. Prvo treba ustanoviti koji je ID starog sertifikata (Thumbprint) i to je najlakše ustanoviti iz dijaloga sa greškom o sertifikatu koji Outlook prikaže. Zatim generisati novi kucajući komandu iz Exchange Shell-a na serveru:

New-ExchangeCertificate

Sertifikat će automatski zameniti stari ali stari neće biti obrisan i njega brišemo komandom:

Remove-ExchangeCertificate -thumbprint [ID starog sertifikata - Thumbprint]

Novokreirani sertifikat treba povezati sa Exchange servisima:

Enable-ExchangeCertificate -thumbprint  [ID novog sertifikata - Thumbprint] -services:IIS,SMTP,POP,IMAP





SQL2008 - Prebacivanje vrednosti kolona tabele u jedan red

Sledeći kod vraća sve vrednosti iz kolone IDArtikla iz tabele FStavke za vrednost polja IDFakture odvojene zarezom u u jedan string:

SELECT STUFF( (SELECT        ', ' + CAST(IDArtikla  as nvarchar(10))
FROM   FStavke
WHERE        (IDFakture = 198093)
ORDER BY ID
                             FOR XML PATH('')),
                            1, 1, '')


понедељак, 2. јун 2014.

Problem sa startovanjem ili logovanjem na SQL server

Problem se javlja kada je Master baza oštećena ili kada zaboravite "sa" password. Takođe može da se desi da ako neko sa svojim nalogom instalira SQL a onda vi ne možete promenite privilegije na toj instanci. Rešenje je u sledećem:
1. Otvorite Configuration Manager iz "SQL Server Configuration" menija
2. Zaustavite željenu SQL instancu
3. Iz Properties->Advanced taba izaberite "Startup parameters" i dodajte “ ;–m” (pazite na razmak pre ;) na kraj linije
4. Restartujte instancu
 5. SQL Server instanca će se startovati single-user mod, napravite željene izmene (novi pass, restore mastera i sl.)
 6. Ne zaboravite da sklonite " ;-m" i ponovo restartujete SQL Server instancu

Nadam se da će ovo nekome pomoći :)

уторак, 6. март 2012.

"An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol"

WCF servis je prilikom snimanja većeg dataseta prijavljivio poruku "An error occurred while receiving the HTTP response to  This could be due to the service endpoint binding not using the HTTP protocol". Nakon višečasovnog češljanja po konfiguracionim fajlovima i po kodu na Internetu sam našao sledeće rešenje. Potrebno je dodati u web.config u sekciji system.web sledeći red : <httpRuntime maxRequestLength="8192"/> . Snimanje sa manjom količinom podataka je prolazilo bez problema.

среда, 22. фебруар 2012.

Kako pronaći neki string na SQLu


Skripta kojom se "pročešljaju" objekti u bazi na SQLu i vrate njihova imena ukoliko unutar njih postoji traženi string:

Use ImeBaze
GO


SELECT sysobjects.*,syscomments.text
FROM syscomments INNER JOIN
     sysobjects ON sysobjects.id = syscomments.id 
WHERE syscomments.text LIKE '%ŠtaSeTraži%'
ORDER BY sysobjects.name
GO