1
0
mirror of https://github.com/alex-bochkov/ssms-addin.git synced 2025-11-23 22:04:53 +02:00
This commit is contained in:
Alex Bochkov
2019-12-01 13:06:34 -08:00
parent 581eb1c03a
commit ff74fc44c8
12 changed files with 161 additions and 62 deletions

View File

@@ -191,7 +191,10 @@
</ItemGroup>
<ItemGroup>
<Content Include="Resources\CommandAddin.png" />
<None Include="Resources\sql-file-format.ico" />
<None Include="Resources\sql-file-format.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Resources\sql-icon.png" />
<Content Include="Resources\ToolWindow1Command.png" />
</ItemGroup>
<ItemGroup>

View File

@@ -7,12 +7,16 @@ Imports System.Runtime.InteropServices
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
<Assembly: AssemblyTitle("DBA-Helper.SSMS2018")>
<Assembly: AssemblyDescription("Need SQL Server help with a large db?
<Assembly: AssemblyDescription("This tool is opensource and free!
Please submit your feedback / ideas / found issues at github - https://github.com/alekseybochkov/ssms-addin/
---
Need SQL Server help with a large db?
Contact me at albochkov03@gmail.com!")>
<Assembly: AssemblyConfiguration("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyCompany("https://github.com/alekseybochkov/")>
<Assembly: AssemblyProduct("DBA-Helper.SSMS2018")>
<Assembly: AssemblyCopyright("Alexey Bochkov")>
<Assembly: AssemblyCopyright("Alex Bochkov")>
<Assembly: AssemblyTrademark("")>
<Assembly: AssemblyCulture("")>

View File

@@ -69,5 +69,15 @@ Namespace My.Resources
Return CType(obj,System.Drawing.Icon)
End Get
End Property
'''<summary>
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property sql_icon() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("sql_icon", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
End Module
End Namespace

View File

@@ -121,4 +121,28 @@
<data name="sql-file-format" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\sql-file-format.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="sql_icon" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAAALEAAACxAcYtSY0AAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwa
AAADsUlEQVRYR92XSUxTURSGjQuX7ti5djYxYjCKqCSKjKIhKGJAUQkRSR1CVDBoRQ2VKUqhzELBgtIq
UwqCGlJFIyqKQpShICKGwQGNEaW2/b3vlhZqb9tHqRsX3+Kd83L+7953+9rOAcAbnwws8M3CSnu4p8LH
LRnBHhlwYc2ZDrPIYms23LyzoCfAHqtEwMJE4GQVdAfK4ceaZ4RZZOGdiRBWGAujgKgRKHgEvS0JZpGF
owK32mxLWBSsMRsBWxJmF7aYrYA1CbMQWzhDgCVhEWQNZwn8LcEMY+GIQGI9W4DDKMEMY+GIgHs6EFMB
CORswkugYYaxcESAD8wwFv9WQCici70ZfgjLPGqNx0eU0pyENhhRRt/Gw30KJk1hCtwJneJyVDOWntNZ
EQi7shxh4l6Ei8lDmQHeF4H1Cbz57ZmI6GNdDIFwcTEdeDKTHE0Jf2RxwM3D/BCcohLvtmUyBX5RgYFc
4KMBPWHknQzD/WUU7Wi+qUf7o3kY7TwOdG+2YPwN+Xhb1H0NO+Fxhilg2NLJ4U2t93Cg5KvZoRKUj9Ke
jgSXNLVie+5vetBWXNQir0ZqCqpuTMKS8zqoVPHTwieZfBQ2BX4OFSIob4KG7pd+w8GSMUr+3Ze0X6Z6
apJyS9HSAYsIDU3kPJCQFPl1WsutLnBM4HVnFR0eXvQd/eoKfBq4RutGQgt/0P6DF3fwszcKAeIPdEhQ
1lvnCHDPPpKs2LhKH0K84j0G+65jfOgqre3I1RiE+iMgVebTIe6p350jwDHUX46cxnZElo5hd+E4DU1T
dmFiuAA+Ej0CsrX0nrWpGriKftEhm9LGnCfwdVCKgb4bFNXzu1SAOw9c75DsM71OqlXD9ZLeNCSm+ImZ
QNINOXqfReBt6z7ourbwF+jrkcOXrJILmY6MHD6u39quNPWnv249079g/LU/0hRlZsM5BEUq/gLfyOrj
b75HtOwTJbZiCHUt98n2F9I+R2dXJUS1PQiUfERIthpLLxh2QiSvQcfjQwiRdCBQrKZsF/egvO6yXQEN
FRg0BPCGHEJucPOD09id0403T6INQUy8DQIebIEyKpBAXsUy7hXLk8oTQH0UP+LIvURg0D+DIbD3iisR
GKESM2GGX0a6jULECtoZAhzBwnnk63gPGSy0RltMpeJaXAuM3I+swqvQUibPdpWiZecUpRENWHl2wiJ8
SoAH//kvIh54SeBKhmv/DmPBV2DZBUwww6xB/p67eImx2B7rUrFhdTJ87bFGiPl/AOoRilFYTVaKAAAA
AElFTkSuQmCC
</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -56,7 +56,7 @@
<Parent guid="guidSHLMainMenu" id="IDG_VS_WNDO_OTRWNDWS1" />
<Icon guid="guidImages1" id="bmpPic1" />
<Strings>
<ButtonText>SSMS2018 Addin (C) Alex Bochkov</ButtonText>
<ButtonText>DBA Helper © Alex Bochkov</ButtonText>
</Strings>
</Button>
</Buttons>

View File

@@ -27,11 +27,12 @@ Partial Class SettingForm
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.TextBoxScriptFolder = New System.Windows.Forms.TextBox()
Me.ComboBoxParserVersion = New System.Windows.Forms.ComboBox()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(178, 86)
Me.Button1.Location = New System.Drawing.Point(179, 63)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(141, 34)
Me.Button1.TabIndex = 0
@@ -40,7 +41,7 @@ Partial Class SettingForm
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(335, 85)
Me.Button2.Location = New System.Drawing.Point(326, 62)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(126, 35)
Me.Button2.TabIndex = 1
@@ -50,7 +51,7 @@ Partial Class SettingForm
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(20, 33)
Me.Label1.Location = New System.Drawing.Point(11, 10)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(119, 13)
Me.Label1.TabIndex = 2
@@ -59,24 +60,34 @@ Partial Class SettingForm
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(19, 56)
Me.Label2.Location = New System.Drawing.Point(10, 33)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(39, 13)
Me.Label2.Size = New System.Drawing.Size(106, 13)
Me.Label2.TabIndex = 3
Me.Label2.Text = "Label2"
Me.Label2.Text = "TSQL Parser Version"
'
'TextBoxScriptFolder
'
Me.TextBoxScriptFolder.Location = New System.Drawing.Point(145, 30)
Me.TextBoxScriptFolder.Location = New System.Drawing.Point(136, 7)
Me.TextBoxScriptFolder.Name = "TextBoxScriptFolder"
Me.TextBoxScriptFolder.Size = New System.Drawing.Size(316, 20)
Me.TextBoxScriptFolder.TabIndex = 4
'
'ComboBoxParserVersion
'
Me.ComboBoxParserVersion.FormattingEnabled = True
Me.ComboBoxParserVersion.Items.AddRange(New Object() {"SQL Server 2008", "SQL Server 2012", "SQL Server 2014", "SQL Server 2016", "SQL Server 2017", "SQL Server 2019"})
Me.ComboBoxParserVersion.Location = New System.Drawing.Point(136, 30)
Me.ComboBoxParserVersion.Name = "ComboBoxParserVersion"
Me.ComboBoxParserVersion.Size = New System.Drawing.Size(316, 21)
Me.ComboBoxParserVersion.TabIndex = 5
'
'SettingForm
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(475, 132)
Me.ClientSize = New System.Drawing.Size(460, 105)
Me.Controls.Add(Me.ComboBoxParserVersion)
Me.Controls.Add(Me.TextBoxScriptFolder)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
@@ -84,7 +95,7 @@ Partial Class SettingForm
Me.Controls.Add(Me.Button1)
Me.Name = "SettingForm"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "SettingForm"
Me.Text = "DBA Helper Setting"
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -95,4 +106,5 @@ Partial Class SettingForm
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents TextBoxScriptFolder As System.Windows.Forms.TextBox
Friend WithEvents ComboBoxParserVersion As System.Windows.Forms.ComboBox
End Class

View File

@@ -5,6 +5,7 @@
InitializeComponent()
TextBoxScriptFolder.Text = SettingManager.GetTemplatesFolder()
ComboBoxParserVersion.SelectedItem = SettingManager.GetSQLParserVersion()
End Sub
@@ -16,9 +17,16 @@
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
SettingManager.SaveTemplatesFolder(TextBoxScriptFolder.Text)
If Not String.IsNullOrEmpty(TextBoxScriptFolder.Text) Then
SettingManager.SaveTemplatesFolder(TextBoxScriptFolder.Text)
End If
If Not String.IsNullOrEmpty(ComboBoxParserVersion.SelectedItem) Then
SettingManager.SaveSQLParserVersion(ComboBoxParserVersion.SelectedItem)
End If
Close()
End Sub
End Class

View File

@@ -15,38 +15,29 @@ Namespace SettingManager
End Function
Private Function GetRegisterValue(Parameter As String) As String
Function GetTemplatesFolder() As String
Dim Folder As String = ""
Dim RegisterValue As String = ""
Try
Dim RootKey = GetRoot()
Folder = RootKey.GetValue("ScriptTemplatesFolder").ToString
RegisterValue = RootKey.GetValue(Parameter).ToString
Catch ex As Exception
End Try
If String.IsNullOrEmpty(Folder) Then
Folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "dba-helper-scripts")
End If
Return Folder
Return RegisterValue
End Function
Function SaveTemplatesFolder(Folder As String) As Boolean
Private Function SaveRegisterValue(ParameterName As String, ParameterValue As String) As Boolean
Try
Dim RootKey = GetRoot()
RootKey.SetValue("ScriptTemplatesFolder", Folder)
RootKey.SetValue(ParameterName, ParameterValue)
RootKey.Close()
Catch ex As Exception
@@ -57,6 +48,50 @@ Namespace SettingManager
End Function
'***********************************************************************************
Function GetTemplatesFolder() As String
Dim Folder As String = GetRegisterValue("ScriptTemplatesFolder")
If String.IsNullOrEmpty(Folder) Then
Folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "dba-helper-scripts")
End If
Return Folder
End Function
Function GetSQLParserVersion() As String
Dim TSQLParserVersion As String = GetRegisterValue("TSQLParserVersion")
If String.IsNullOrEmpty(TSQLParserVersion) Then
TSQLParserVersion = "SQL Server 2017" 'default value
End If
Return TSQLParserVersion
End Function
Function SaveTemplatesFolder(Folder As String) As Boolean
Return SaveRegisterValue("ScriptTemplatesFolder", Folder)
End Function
Function SaveSQLParserVersion(TSQLParserVersion As String) As Boolean
Return SaveRegisterValue("TSQLParserVersion", TSQLParserVersion)
End Function
'Function GetExcelExportFolder() As String
' Dim Folder As String = ""

View File

@@ -17,9 +17,9 @@
<Menu Name="FileMenu" Margin="2,2,5,0">
<MenuItem Header="Actions" Name="FileMenuActions">
<MenuItem Header="Format Selection" Click="button1_Click"/>
<MenuItem Header="Setting" Click="buttonSetting_Click">
<MenuItem Header="Setting" Click="buttonSetting_Click" >
<MenuItem.Icon>
<Image Source="pack://siteoforigin:,,,/Resources/sql-file-format.ico" />
<Image Source="Resources/sql-icon.png" />
</MenuItem.Icon>
</MenuItem>
</MenuItem>

View File

@@ -103,7 +103,7 @@ Partial Public Class ToolWindow1Control
AddFiles()
System.Windows.MessageBox.Show("Templates have been refreshed!")
System.Windows.MessageBox.Show("The template list has been refreshed!")
End Sub
@@ -113,22 +113,30 @@ Partial Public Class ToolWindow1Control
Dim FileName As String = sender.ToolTip
Dim FileContent = My.Computer.FileSystem.ReadAllText(FileName)
If My.Computer.FileSystem.FileExists(FileName) Then
Dim dte As DTE = TryCast(Package.GetGlobalService(GetType(DTE)), DTE)
Dim FileContent = My.Computer.FileSystem.ReadAllText(FileName)
Dim selection As TextSelection = DirectCast(dte.ActiveDocument.Selection, TextSelection)
Dim dte As DTE = TryCast(Package.GetGlobalService(GetType(DTE)), DTE)
selection.Delete()
If Not dte.ActiveDocument Is Nothing Then
selection.Insert(FileContent.Trim)
Dim selection As TextSelection = DirectCast(dte.ActiveDocument.Selection, TextSelection)
selection.Delete()
selection.Insert(FileContent.Trim)
End If
Else
System.Windows.MessageBox.Show("File " + FileName + " doesn't exist!")
End If
Catch ex As Exception
System.Windows.MessageBox.Show(ex.Message)
End Try
End Sub
@@ -146,11 +154,6 @@ Partial Public Class ToolWindow1Control
End Sub
Private Sub ComboBox_SelectionChanged(sender As Object, e As System.Windows.Controls.SelectionChangedEventArgs)
End Sub
Private Sub FormatSelection()
@@ -169,18 +172,18 @@ Partial Public Class ToolWindow1Control
Dim SqlParser As TSqlParser = Nothing
Dim TargetVersion As String = "2019" 'SettingManager.GetTSQLFormatVersion()
If TargetVersion = "2008" Then
Dim TargetVersion As String = SettingManager.GetSQLParserVersion()
If TargetVersion = "SQL Server 2008" Then
SqlParser = New TSql100Parser(False)
ElseIf TargetVersion = "2012" Then
ElseIf TargetVersion = "SQL Server 2012" Then
SqlParser = New TSql110Parser(False)
ElseIf TargetVersion = "2014" Then
ElseIf TargetVersion = "SQL Server 2014" Then
SqlParser = New TSql120Parser(False)
ElseIf TargetVersion = "2016" Then
ElseIf TargetVersion = "SQL Server 2016" Then
SqlParser = New TSql130Parser(False)
ElseIf TargetVersion = "2017" Then
ElseIf TargetVersion = "SQL Server 2017" Then
SqlParser = New TSql140Parser(False)
ElseIf TargetVersion = "2019" Then
ElseIf TargetVersion = "SQL Server 2019" Then
SqlParser = New TSql150Parser(False)
Else
SqlParser = New TSql140Parser(False)
@@ -205,17 +208,17 @@ Partial Public Class ToolWindow1Control
Dim StrAdd2 = ""
Dim Gen As SqlScriptGenerator = Nothing
If TargetVersion = "2008" Then
If TargetVersion = "SQL Server 2008" Then
Gen = New Sql100ScriptGenerator
ElseIf TargetVersion = "2012" Then
ElseIf TargetVersion = "SQL Server 2012" Then
Gen = New Sql110ScriptGenerator
ElseIf TargetVersion = "2014" Then
ElseIf TargetVersion = "SQL Server 2014" Then
Gen = New Sql120ScriptGenerator
ElseIf TargetVersion = "2016" Then
ElseIf TargetVersion = "SQL Server 2016" Then
Gen = New Sql130ScriptGenerator
ElseIf TargetVersion = "2017" Then
ElseIf TargetVersion = "SQL Server 2017" Then
Gen = New Sql140ScriptGenerator
ElseIf TargetVersion = "2019" Then
ElseIf TargetVersion = "SQL Server 2019" Then
Gen = New Sql150ScriptGenerator
Else
Gen = New Sql140ScriptGenerator

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="SSMS2018Addin.00b4c103-c834-4ba1-b29f-7464c6d5c3c2" Version="1.0" Language="en-US" Publisher="Alex Bochkov" />
<DisplayName>SSMS2018Addin</DisplayName>
<Description>Empty VSIX Project.</Description>
<Identity Id="DBAHelper.SSMS2018.00b4c103-c834-4ba1-b29f-7464c6d5c3c2" Version="2.0" Language="en-US" Publisher="Alex Bochkov" />
<DisplayName>DBA-Helper.SSMS2018</DisplayName>
<Description xml:space="preserve">SQL Server Management Studio 2018 Productivity ToolProducti</Description>
</Metadata>
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[16.0, 17.0)" />
@@ -17,6 +17,6 @@
</Prerequisites>
<Assets>
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
</Assets>
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%|" />
</Assets>
</PackageManifest>