Come fare ad eseguire lo shrink del database di contenuto di WSS, quando WSS utilizza l'istanza di Sql Server propria (quella che crea il setup di WSS)?
Il problema è che da SQL Server Management Studio non ci si può connettere all'istanza di SQL Server de iWSS (almeno questo mi risulta).
Allora si può ricorrere alla linea di comando.
- Aprire il prompt dei comandi
- Posizionarsi sulla cartella (SQL Server 2008):
<drive>:\Program Files\Microsoft SQL Server\90\Tools\Binn
- eseguire il comando:
sqlcmd -S MY_SERVER\MICROSOFT##SSEE -q "dbcc shrinkdatabase(MY_WSS_CONTENT_DB)"
Dove:
MY_SERVER\MICROSOFT##SSEE è l'istanza di SQL Server
MY_WSS_CONTENT_DB è il database di WSS
Naturalmente ringrazio il collega Osvaldo che mi ha supportato nel determinare il comando sql da eseguire!
Il post mostra un semplice tip per vedere se un punto è visibile nello schermo (anche in presenza di più schermi).
La grafica dell'esempio è "mozzafiato":
Il codice è invece il seguente:
1: Public Class Form1
2:
3: Private Sub Button1_Click(ByVal sender As System.Object, _
4: ByVal e As System.EventArgs) Handles Button1.Click
5: Me.TxtEsito.Text = "..."
6: Dim p As Point
7: Try
8: Me.Cursor = Cursors.WaitCursor
9: Threading.Thread.Sleep(120)
10: p = New Point(Me.TxtX.Text, Me.TxtY.Text)
11: Dim s As Screen = Screen.FromPoint(p)
12: If s Is Nothing Then
13: Me.TxtEsito.Text = "non nello schermo"
14: Else
15: Me.TxtEsito.Text = "Schermo '" & s.DeviceName & "'"
16: ' Verifica se il punto è contenuto
17: If s.WorkingArea.Contains(p) Then
18: Me.TxtEsito.Text &= ": il punto è contenuto!"
19: Else
20: Me.TxtEsito.Text &= ": il punto NON è contenuto!"
21: End If
22: End If
23: Catch ex As Exception
24: Me.TxtEsito.Text = ex.Message
25: Finally
26: Me.Cursor = Cursors.Default
27: End Try
28: End Sub
29:
30:
31: End Class
In pratica è sufficiente determinare lo schermo che "dovrebbe" mostrare il punto che ci interessa:
Dim s As Screen = Screen.FromPoint(p)
Ho scritto "dovrebbe" in quanto, se nessuno schermo contiene quel punto allora il metodo restituisce lo schermo più "vicino" al punto.
A questo punto, per essere sicuri che il punto sia contenuto nell'area visibile dello schermo, basta eseguire la seguente chiamata:
If s.WorkingArea.Contains(p) Then