Grazie a queste viste è possibile effettuare salvataggi sulle tabelle mostrando direttamente la struttura tramite una vista.
E' fondamentale però che all'interno della vista non vi siano Join, e che le tabelle a cui fa riferimento abbiano una Identity Key.
CREATE MATERIALIZED VIEW TestMaterializedView FOR UPDATE AS
SELECT ID_GRUPPO, CODICE, TIPO
FROM Tabella
mercoledì 25 giugno 2014
mercoledì 18 giugno 2014
Compilare viste in MVC
E' possibile abilitare la compilazione delle viste in MVC come descritto in:
in poche parole, nel file di progetto dobbiamo settare questa chiave di configurazione:
ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
true
mercoledì 4 giugno 2014
Effettuare salvataggio su DB con NHibernate durante l'elaborazione
UnitOfWork.CurrentSessionCommitAndRestartTransaction()
sessione = UnitOfWork.GetCurrentSession()
giovedì 20 marzo 2014
Funzione per ricercare un valore testuale specifico in un DataBase
--diabilito output conteggio righe
use database
Set NoCount On
--stringa da cercare ed altre variabili
Declare @strToFind varchar(max) = 'StringaDaCercare'
Declare @stringSchema sysname = ''
Declare @stringTab sysname = ''
Declare @stringListaCampi varchar(Max) = ''
Declare @stringListaCampiDove varchar(Max) = ''
Declare @stringSQL varchar(max) = ''
--elenco tabelle e campi
Declare @Tabs table(
TABLE_SCHEMA sysname
,TABLE_NAME sysname
)
Insert into @Tabs
Select Distinct TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS
Where DATA_TYPE in ('char','nchar','varchar',' nvarchar')
Order by TABLE_SCHEMA,TABLE_NAME
--ciclo le righe
While 1=1
Begin
Set @stringListaCampi = ''
Set @stringListaCampiDove = ''
Select Top 1 @stringSchema = TABLE_SCHEMA, @stringTab=TABLE_NAME from
@Tabs
Order by TABLE_SCHEMA,TABLE_NAME;
--esco su rowcount 0
IF @@ROWCOUNT=0
Break;
--formatto la stringa per la ricerca
With Fields
AS
(
Select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
Where DATA_TYPE in ('char','nchar','varchar',' nvarchar','text','ntext')
And TABLE_SCHEMA = @stringSchema
And TABLE_NAME = @stringTab
)
Select @stringListaCampi = @stringListaCampi + '' +
QUOTENAME(COLUMN_NAME) + ' AS ' + QUOTENAME(COLUMN_NAME) + ',',
@stringListaCampiDove = @stringListaCampiDove + QUOTENAME(COLUMN_NAME) +
' Like ''%' + @strToFind + '%'' OR '
From Fields
Set @stringSQL = 'Select ''' + QUOTENAME(@stringSchema) + ''' As
Table_Schema,''' + QUOTENAME(@stringTab) + ''' As Table_Name, ' +
Substring(@stringListaCampi,0, LEN(@stringListaCampi))
+ ' from ' + QUOTENAME(@stringSchema) + '.' + QUOTENAME(@stringTab)
+ ' Where ' +
Substring(@ stringListaCampiDove,0,LEN(@ stringListaCampiDove)-2)
--eseguo SQL
Exec(@stringSQL)
-- elimino la riga dalla tabella temporanea
Delete From @Tabs
Where TABLE_SCHEMA = @stringSchema
And TABLE_NAME = @stringTab
end
use database
Set NoCount On
--stringa da cercare ed altre variabili
Declare @strToFind varchar(max) = 'StringaDaCercare'
Declare @stringSchema sysname = ''
Declare @stringTab sysname = ''
Declare @stringListaCampi varchar(Max) = ''
Declare @stringListaCampiDove varchar(Max) = ''
Declare @stringSQL varchar(max) = ''
--elenco tabelle e campi
Declare @Tabs table(
TABLE_SCHEMA sysname
,TABLE_NAME sysname
)
Insert into @Tabs
Select Distinct TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS
Where DATA_TYPE in ('char','nchar','varchar','
Order by TABLE_SCHEMA,TABLE_NAME
--ciclo le righe
While 1=1
Begin
Set @stringListaCampi = ''
Set @stringListaCampiDove = ''
Select Top 1 @stringSchema = TABLE_SCHEMA, @stringTab=TABLE_NAME from
@Tabs
Order by TABLE_SCHEMA,TABLE_NAME;
--esco su rowcount 0
IF @@ROWCOUNT=0
Break;
--formatto la stringa per la ricerca
With Fields
AS
(
Select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS
Where DATA_TYPE in ('char','nchar','varchar','
And TABLE_SCHEMA = @stringSchema
And TABLE_NAME = @stringTab
)
Select @stringListaCampi = @stringListaCampi + '' +
QUOTENAME(COLUMN_NAME) + ' AS ' + QUOTENAME(COLUMN_NAME) + ',',
@stringListaCampiDove = @stringListaCampiDove + QUOTENAME(COLUMN_NAME) +
' Like ''%' + @strToFind + '%'' OR '
From Fields
Set @stringSQL = 'Select ''' + QUOTENAME(@stringSchema) + ''' As
Table_Schema,''' + QUOTENAME(@stringTab) + ''' As Table_Name, ' +
Substring(@stringListaCampi,0,
+ ' from ' + QUOTENAME(@stringSchema) + '.' + QUOTENAME(@stringTab)
+ ' Where ' +
Substring(@
--eseguo SQL
Exec(@stringSQL)
-- elimino la riga dalla tabella temporanea
Delete From @Tabs
Where TABLE_SCHEMA = @stringSchema
And TABLE_NAME = @stringTab
end
lunedì 10 febbraio 2014
Visualizzare la GAC come File System
Per visualizzare la GAC come file system (e eventualmente bypassare eventuali problemi di abilitazione alla scrittura), settare la chiave
DisableCacheViewer = 1
di tipo: REG_DWORD
in
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Fusion
DisableCacheViewer = 1
di tipo: REG_DWORD
in
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Fusion
martedì 4 febbraio 2014
Aprire un Popup da un GridViewCommandColumnCustomButton
Creare il bottone e inserirlo nella colonna,
Dim customE As New GridViewCommandColumnCustomButton
customE.ID = "Nota"
customE.Text = "Aggiungi Nota"
customE.Image.Url = "../imgs/Note.gif"
col.CustomButtons.Add(customE)
gvDocumenti.Columns.Insert(0, col)
e aggiungere il CustomBottonClick gestito per visualizzare il popup.
gvDocumenti.ClientSideEvents.CustomButtonClick = String.Format("function(s, e) {{ if(e.buttonID = 'Sconta') {0}.Show(); }}", "pcSconta")
Dim customE As New GridViewCommandColumnCustomButton
customE.ID = "Nota"
customE.Text = "Aggiungi Nota"
customE.Image.Url = "../imgs/Note.gif"
col.CustomButtons.Add(customE)
gvDocumenti.Columns.Insert(0, col)
e aggiungere il CustomBottonClick gestito per visualizzare il popup.
gvDocumenti.ClientSideEvents.CustomButtonClick = String.Format("function(s, e) {{ if(e.buttonID = 'Sconta') {0}.Show(); }}", "pcSconta")
giovedì 9 gennaio 2014
Popolare un oggetto via Reflection
Per popolare un oggetto (nel suo costruttore) via Reflection utilizzare questo codice:
public Oggetto(Oggetto obj)
{
var fromFields = typeof(Oggetto).GetProperties();
foreach (var pi in fromFields)
{
pi.SetValue(this, pi.GetValue(obj, null), null);
}
}
public Oggetto(Oggetto obj)
{
var fromFields = typeof(Oggetto).GetProperties();
foreach (var pi in fromFields)
{
pi.SetValue(this, pi.GetValue(obj, null), null);
}
}
Iscriviti a:
Post (Atom)