Private Sub WriteFile(ByVal FileName As String, ByVal data As String) If File.Exists(FileName) Then File.Delete(FileName) Dim swFile As StreamWriter = File.CreateText(FileName) swFile.Write(data) swFile.Flush() swFile.Close() End Sub Private Function ReadFile(ByVal FileName As String) As String Dim ret As String = "" If File.Exists(FileName) Then Dim TheFile As System.IO.StreamReader = New StreamReader(FileName, System.Text.Encoding.Default) ret = TheFile.ReadToEnd() End If Return ret End Function
Private Function ReadStringResource(ByVal resource As String) As String Dim asm As Assembly = Assembly.GetExecutingAssembly() Dim stream As Stream = asm.GetManifestResourceStream(resource) Dim streamReader As StreamReader = New StreamReader(stream) Dim ret As String = streamReader.ReadToEnd Return ret End Function
Dim diskClass As New System.Management.ManagementClass("Win32_LogicalDisk") Dim disks As System.Management.ManagementObjectCollection = diskClass.GetInstances() Dim disk As System.Management.ManagementObject Dim space As System.UInt64 = 0 For Each disk In disks If disk("Description").ToString = "Local Fixed Disk" Then If disk("Description").ToString = "Local Fixed Disk" Then space += CType(disk("FreeSpace"), System.UInt64) End If Next disk
Ejecutar shell y capturar la salida
Dim p As New Process p.StartInfo.UseShellExecute = False p.StartInfo.RedirectStandardOutput = True p.StartInfo.Arguments = "x.txt y.txt" p.StartInfo.WorkingDirectory = "E:\winnt\system32" p.StartInfo.FileName = "xcopy " p.Start() Dim sr As IO.StreamReader = p.StandardOutput Dim sb As New System.Text.StringBuilder("") Dim sinput As String = "" Do Until sinput = "-1" sb.Append(sr.ReadLine() & ControlChars.CrLf) sinput = sr.Read Loop Return sb.ToString
Este ejemplo usa el app.config
Dim aConfig As Configuration.ConfigurationSettings Try Dim MailFrom As New MailAddress(aConfig.AppSettings("EmailFrom")) Dim MailTo As New MailAddress(aConfig.AppSettings("EmailTo")) Dim mailMsg As MailMessage = New MailMessage(MailFrom, MailTo) mailMsg.IsBodyHtml = True mailMsg.Priority = MailPriority.Normal mailMsg.Subject = "Subject for the mail" mailMsg.Body = ReadStringResource("Mail.htm") Dim SmtpMail As New Net.Mail.SmtpClient Dim theCredential As New Net.NetworkCredential("usuario", "contraseña") SmtpMail.Credentials = theCredential SmtpMail.Host = aConfig.AppSettings("EmailServer") SmtpMail.Send(mailMsg) Catch ex As Exception Console.WriteLine(ex.Message) End Try
SQL Query Analyzer tiene la posibilidad de ejecutar stored procedures con teclas rápida Ctrl + n (donde n es un número)
Esto se hace en Tools -> Customize
Entonces si agrego en Ctrl+4 por ejemplo el texto sp_select, al presionar ctrl+4 lo va a ejecutar
Si ejecutan el siguiente script en la base master, cada vez que seleccionen un texto (tanto en la parte de instrucciones t-sql) como en el área de resultados, aparecerá un select con el contenido de la tabla
CREATE procedure sp_select (@tabla AS varchar(200) ) AS declare @a AS varchar(300) SET @a = 'select * from ' + @tabla exec (@a) go
Espero que les sea de utilidad
Con este código, para la transformación solo necesitamos llamarla mandándole un string con el contenido, otro string con el contenido del xsl y “Me.GetType().Assembly.Evidence” y regresará un string con el contenido de la transformación.
Public Function ApplyXMLTransform(ByVal xslSDoc As String, ByVal xmlSDoc As String, ByVal evidence As System.Security.Policy.Evidence) As string Dim xmlDoc As XmlTextReader = New XmlTextReader(New StringReader(xmlSDoc)) Dim xslDoc As XmlTextReader = New XmlTextReader(New StringReader(xslSDoc)) Dim res As New Xml.XmlDocument Dim xslt As New Xml.Xsl.XslTransform xslt.Load(xslDoc, Nothing, evidence) res.Load(xslt.Transform(New Xml.XPath.XPathDocument(xmlDoc), Nothing, New Xml.XmlUrlResolver)) Return res.OuterText End Function
A veces nos topamos con la necesidad de que solo se pueda ejecutar una instancia de nuestro sistema, con esta función lo evitamos.
Function PrevInstance() As Boolean If UBound(System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then Return True Else Return False End If End Function
Se usa así
if PrevExistance() = True Then Application.Exit()
nota los valores booleanos están implícitamente mostrados para facilidad de comprensión.
Buscar si una tabla tiene campo identity, y saber cual es
dim @tabla AS varchar(20) SELECT @tabla='tablaabuscar' SELECT o.name , c.name FROM syscolumns c, sysobjects o WHERE c.STATUS & 128 = 128 AND o.id = c.id AND o.name=@tabla ORDER BY o.name
Private Function paco(ByVal xmlFile As String, ByVal xslFile As String) As String Dim archivo As String = "c:\temp.tmp" Dim temp As New Xml.XmlDocument Dim resolver As XmlUrlResolver = New XmlUrlResolver resolver.Credentials = System.Net.CredentialCache.DefaultCredentials Dim XSLT As Xsl.XslTransform = New Xsl.XslTransform XSLT.Load(xslFile, resolver) XSLT.Transform(archivo, archivo, resolver) Return ReadFile(archivo) End Function