July 2007 - Posts

Sitan tip... 

Uvek koristim Send To opciju za razne stvari, a zapravo najčešće da otvorim sadržaj bilo kog fajla u Notepad-u.
U Visti se Send To folder ne nalazi na istom mestu gde je bio u XP-u.

U Visti je najjednostavnije u Run dijalogu otkucati: %APPDATA%\Microsoft\Windows\SendTo

%APPDATA% je enviroment varijabla koja se mapira na direktorijum C:\Users\[ime korisnika]\AppData\Roaming

Sad ovde jednostavno napravite potrebne prečice i sve funkcioniše kao i ranije.

Posted by Milos.Milosavljevic | 1 comment(s)
Filed under:

Opet, još jedan jako interesantan članak.
Kako isti kod upotrebiti u Win Forms i Mobile aplikaciji.

Preporuke za portovanje i savlađivanje razlika između ove dve platforme + primer za download.

Link: http://msdn.microsoft.com/msdnmag/issues/07/07/ShareCode/

Posted by Milos.Milosavljevic | with no comments
Filed under:

Interesantan članak o Microsoft Synchronization Services 1.0 API-ju i novom Sync Designeru.

Keš tehnologija koja poboljšava perfomanse i smanjuje latenciju prilikom sinhronizacije podataka + grafičko dizajniranje.

Vredi pogledati:

http://www.ftponline.com/vsm/2007_05/magazine/features/rjennings/

Posted by Milos.Milosavljevic | with no comments

Kada je trebalo automatski generisati primarni ključ tabele koji će biti jedinstven na globalnom nivou standardno se koristilo polje tipa uniqueidentifier i default NewID(). Ovo je bilo bitno ako su se podaci skupljali sa više SQL Servera na jednom centralnom. Scenarije za ovakvu upotrebu nalazimo na svakom koraku.

Problem je u tome što NewID() funkcija generiše vrednosti koje nisu inkrementalne - vrednosti nemaju nikakve veze sa realnim redosledom unosa slogova u tabeli. Ovo je znalo da pravi probleme u smislu perfomansi, jer je uvek optimalnije da vrednosti primarnog ključa u tabeli budu sekvencijane zbog načina kreiranja indeksa koji ide uz primarni ključ i pakovanja podataka u strane. Kod clustered indeksa ovo je još izraženije.

Zbog ovoga u SQL Serveru 2005 je uvedena nova funkcija: NewSequentialID () koja radi slično kao NewID() ali ovog *** generiše sekvencijalne vrednosti.

Probajte sledeći skript:

USE TempDB
GO
CREATE TABLE Test
(
IdentityKolona int identity,
Sekvenca uniqueidentifier DEFAULT NEWSEQUENTIALID()
)

DECLARE @i int
SET @i=0
WHILE @i <= 60000
BEGIN
 INSERT INTO Test DEFAULT VALUES
 SET @i=@i+1
END

-- sortiraj po identity koloni
SELECT * FROM Test ORDER BY IdentityKolona
-- Sortiraj po sekvenci
SELECT * FROM Test ORDER BY Sekvenca
DROP TABLE Test

Na žalost SQL Mobile za sada ne podržava ovu funkciju.

Posted by Milos.Milosavljevic | with no comments
Filed under:

U jednom projektu koji uključuje veliki broj stored procedura na SQL 2005, došlo se do ideje da se napravi jedna generićka funkcija koja za zadati naziv stored procedure i niz objekata (parametri stored procedure) odrađuje sav posao poziva i prosleđivanja parametara.

Da bi ovo napravili bilo je naravno potrebno da se pročitaju parametri i njihovi atributi kako bi se ispravno napravila Parameters kolekcija. Mozda nekome bude interesantna ovakva varijanta SQL upita koji za zadato ime stored procedure vraća definiciju parametara. U primeru korišćena stara dobra Northwind baza i njena stored procedura 'SalesByCategory'. Upit radi na SQL 2000 i 2005 korišćenjem syscolumns sistemske tabele. Probajte:

select
  colid as 'Redosled',
  name as 'Ime parametra',
  type_name(xusertype) as 'Tip',
  xusertype as 'SQLTip',
  length as 'Zauzima bajtova', 
  case when type_name(xtype) = 'uniqueidentifier'
    then xprec 
  else OdbcPrec(xtype, length, xprec)
  end as 'Velicina',
  OdbcScale(xtype,xscale) as 'Skala',
  isoutparam as 'Output param'
from syscolumns
where id = object_id ('SalesByCategory')
order by colid