lunedì 3 dicembre 2012
Cursore
Declare @EmpId int
Declare c Cursor For Select Distinct Employee_id From TableName
Open c
Fetch next From c into @EmpId
While @@Fetch_Status=0 Begin
... do whatever you want ...
Fetch next From c into @EmpId
End
Close c
Deallocate c
giovedì 20 settembre 2012
Aggiornare Firma Progetto Visual Studio
Per prolungare la scadenza di una firma è possibile utilizzare la procedura come descritto qui:
https://robindotnet.wordpress.com/2010/01/26/how-to-extend-an-existing-certificate-even-if-it-has-expired/#comments
tramite il file Renewcert.exe eseguire da riga di comando
RenewCert NightbirdPFX.pfx NightbirdPFX5Yrs.pfx CN=Nightbird5Yrs MYpassw0rd
eventualemente omettendo la password finale.
https://robindotnet.wordpress.com/2010/01/26/how-to-extend-an-existing-certificate-even-if-it-has-expired/#comments
tramite il file Renewcert.exe eseguire da riga di comando
RenewCert NightbirdPFX.pfx NightbirdPFX5Yrs.pfx CN=Nightbird5Yrs MYpassw0rd
eventualemente omettendo la password finale.
mercoledì 5 settembre 2012
Ricerca in un DataTable
Dim dt As DataTable = xxxx
dt = SelectIntoDataTable("tipologia = 'S' and dt_inizio > #" & Now.ToString("MM/dd/yyyy") & "#", dt)
Private Function SelectIntoDataTable(ByVal selectFilter As String, ByVal sourceDataTable As DataTable) As DataTable
Dim newDataTable As DataTable = sourceDataTable.Clone
Dim dataRows As DataRow() = sourceDataTable.Select(selectFilter)
Dim typeDataRow As DataRow
For Each typeDataRow In dataRows
newDataTable.ImportRow(typeDataRow)
Next
Return newDataTable
End Function
mercoledì 18 aprile 2012
Inserire un risultato di una select in un parametro
Per inserire il risultato di una select (quindi da varie righe di risultati) in un parametro è possibile utilizzare il metodo COALESCE come segue:
DECLARE @Padri NVARCHAR(MAX)
SELECT @Padri = COALESCE(@Padri + ', ', '') + padri FROM cteSelezionata
DECLARE @Padri NVARCHAR(MAX)
SELECT @Padri = COALESCE(@Padri + ', ', '') + padri FROM cteSelezionata
martedì 3 aprile 2012
Creare un datatable random
'''
''' funzione che Randomizza un datatable specifico
'''
'''
'''
'''
Public Shared Function RandomDatatable(ByVal dt As DataTable) As DataTable
dt.Columns.Add(New DataColumn("RandNum", GetType(Integer)))
Dim i As Integer
Dim rndNum As New Random()
For i = 0 To dt.Rows.Count - 1
dt.Rows(i)("RandNum") = rndNum.Next(10000)
Next i
Dim myDataView As DataView = dt.DefaultView
myDataView.Sort = "RandNum"
Return myDataView.ToTable()
End Function
''' funzione che Randomizza un datatable specifico
'''
'''
'''
'''
Public Shared Function RandomDatatable(ByVal dt As DataTable) As DataTable
dt.Columns.Add(New DataColumn("RandNum", GetType(Integer)))
Dim i As Integer
Dim rndNum As New Random()
For i = 0 To dt.Rows.Count - 1
dt.Rows(i)("RandNum") = rndNum.Next(10000)
Next i
Dim myDataView As DataView = dt.DefaultView
myDataView.Sort = "RandNum"
Return myDataView.ToTable()
End Function
mercoledì 29 febbraio 2012
Ricavare Giorno della settimana da una data
SELECT CASE
WHEN DATENAME(dw, GETDATE()) = 'Sunday'
THEN 'Domenica'
WHEN DATENAME(dw, GETDATE()) = 'Monday'
THEN 'Lunedi'
WHEN DATENAME(dw, GETDATE()) = 'Tuesday'
THEN 'Martedi'
WHEN DATENAME(dw, GETDATE()) = 'Wednesday'
THEN 'Mercoledi'
WHEN DATENAME(dw, GETDATE()) = 'Thursday'
THEN 'Giovedi'
WHEN DATENAME(dw, GETDATE()) = 'Friday'
THEN 'Venerdi'
WHEN DATENAME(dw, GETDATE()) = 'Saturday'
THEN 'Sabato'
ELSE 'Errore'
END AS Giorno
WHEN DATENAME(dw, GETDATE()) = 'Sunday'
THEN 'Domenica'
WHEN DATENAME(dw, GETDATE()) = 'Monday'
THEN 'Lunedi'
WHEN DATENAME(dw, GETDATE()) = 'Tuesday'
THEN 'Martedi'
WHEN DATENAME(dw, GETDATE()) = 'Wednesday'
THEN 'Mercoledi'
WHEN DATENAME(dw, GETDATE()) = 'Thursday'
THEN 'Giovedi'
WHEN DATENAME(dw, GETDATE()) = 'Friday'
THEN 'Venerdi'
WHEN DATENAME(dw, GETDATE()) = 'Saturday'
THEN 'Sabato'
ELSE 'Errore'
END AS Giorno
lunedì 27 febbraio 2012
CTE che contiene una colonna contatore generata
declare @limit int
set @limit = 100
;with MyCte AS
(select MyCounter = 1
UNION ALL
SELECT MyCounter + 1
FROM MyCte
where MyCounter < @limit )
select MyCounter
from MyCte
option (maxrecursion 0)
set @limit = 100
;with MyCte AS
(select MyCounter = 1
UNION ALL
SELECT MyCounter + 1
FROM MyCte
where MyCounter < @limit )
select MyCounter
from MyCte
option (maxrecursion 0)
venerdì 24 febbraio 2012
aggiungere server collegato Access ACCDB
declare @nomeServer nvarchar(MAX)
declare @serverPath nvarchar(MAX) /* il file deve essere SULLA STESSA MACCHINA*/
set @nomeServer = 'server name'
set @serverPath = 'file mdb full path'
EXEC sp_addlinkedserver
@server = @nomeServer,
@provider = N'Microsoft.Jet.OLEDB.4.0',
@srvproduct = N'Access',
@datasrc = @serverPath
-- setto logina al nuovo Server DB
EXEC sp_addlinkedsrvlogin
@rmtsrvname = @nomeServer,
@useself = N'FALSE'
/* dati non necessari per DB senza USR e PSW */
--,@locallogin = NULL
--,@rmtuser = NULL
--,@rmtpassword = NULL
-- TEST: lista tabelle per nuovo server
EXEC sp_tables_ex @nomeServer
GO
declare @serverPath nvarchar(MAX) /* il file deve essere SULLA STESSA MACCHINA*/
set @nomeServer = 'server name'
set @serverPath = 'file mdb full path'
EXEC sp_addlinkedserver
@server = @nomeServer,
@provider = N'Microsoft.Jet.OLEDB.4.0',
@srvproduct = N'Access',
@datasrc = @serverPath
-- setto logina al nuovo Server DB
EXEC sp_addlinkedsrvlogin
@rmtsrvname = @nomeServer,
@useself = N'FALSE'
/* dati non necessari per DB senza USR e PSW */
--,@locallogin = NULL
--,@rmtuser = NULL
--,@rmtpassword = NULL
-- TEST: lista tabelle per nuovo server
EXEC sp_tables_ex @nomeServer
GO
Iscriviti a:
Post (Atom)