JSFW.SQLFormatter] Addin... 부착
워... 드디어 성공했다. 썩을 편집기에 붙여넣는게 더 어려웠다.
편집기에서 쿼리를 선택해서 단축키를 통해 addin된게 바꿔준다.
참고 링크에 apexsql reflect 라는 sql formatter가 있는데 이거 free무료라고 되있어서 다운 받고 설치해서 이거 저거 돌려봤는데...
콤마위치나 문법체크해서 틀리면 변환을 안해준다. 에러 떨궈버림... 그외 많은 링크들을 봤지만... 여기 part 1, 2, 3과 몇개 글을 보면 된다.
조금 대략적으로 기억나는데로 써놓자.
Visual Studio 2013 Community 에서 AddIns를 개발하려면...
프로젝트에 확장성 > AddIns 프로젝트가 나타나야 되는데 없다!
https://www.visualstudio.com/downloads/download-visual-studio-vs
여기서... 2013용 도구 > 2013 SDK 다운로드!
설치...
대략 집에서도 30분 정도...
New Project에서 확장성 > AddIn 선택
= JSFW.AddIns 이름 지정.
위자드가 뜸.
... 스샷 6개.
스샷에서 4번째에서 두번째 체크박스(I would like .. )를 체크 하면 아래 Connection.cs 에서
OnConnection의 구현부는 딱히 수정하지 않아도 우선 뜸.
- 추가적으로 Command 아이디와 버튼텍스트, 툴팁 정도만 수정하면 됨.
그리고 Exe( ) 메서드 본문을 작성.
프로젝트 생성이 끝나면
dll참조 : 설치된 SSMS 위치에 찾아가서... 2014버젼이라 120에 있었는데..
Microsoft\MicroSoft SQL Server\120\tools\binn\ dll들이 있다. (binn맞음)
- SQLEditors
- SqlPackageBase
- SqlWorkbench.Interfaces
생성된 프로젝트에서 Connect.cs 파일에서
## using문
using System.Collections.Generic;
using System.Linq;
using System.Resources;
using System.Reflection;
using System.Globalization;
using System.Windows.Forms;
using Microsoft.SqlServer.Management.UI.VSIntegration;
using Microsoft.SqlServer.Management.UI.VSIntegration.Editors;
using Microsoft.SqlServer.Management.QueryExecution;
using Microsoft.SqlServer.Management.SqlMgmt;
using Microsoft.VisualStudio.CommandBars;
using JSFW.NEWFMT;
## OnConnection 구현 : 위 내용.
## Exec 구현 : 지정된 명령이 실행될때!!!
여기선 에디터에서 선택된 쿼리정보를 가져와서 재정렬 한 후 가져온 곳에 덮어씌워주면 된다.
try
{
//열려진 문서의 인스턴스를 취득해서
TextDocument textDoc = (TextDocument)_applicationObject.ActiveWindow.Document.Object("TextDocument");
if (textDoc != null)
{
textDoc.StartPoint.CreateEditPoint();
string currentSelectedQuery = textDoc.Selection.Text;
//커맨드를 삽입하고
if (string.IsNullOrEmpty(currentSelectedQuery) == false)
{
currentSelectedQuery = Exec_Formatter(currentSelectedQuery);
textDoc.Selection.Insert(currentSelectedQuery, (int)vsInsertFlags.vsInsertFlagsContainNewText);
}
}
}
catch (Exception exx)
{
System.Windows.Forms.MessageBox.Show(exx.Message);
}
Exec_Formatter() 는 쿼리 정렬 메서드.
여기서 Insert 에서 시간을 많이 잡아먹었다.
붙여 넣었더니 정렬된 쿼리가 이상한 모양으로 ~~~!
클립보드에 붙였다가 textDoc.Paste() 호출하니 잘 붙긴하더라... 원하던 기능이 아니므로 최후에 하기로 남겨두고
방법을 찾다가... 결국엔 찾았다.
AddIns 파일을 수정하고 빌드 정해진 AddIns폴더에 두고 SSMS를 켜주면 도구메뉴 밑에 만들어둔 버튼명이 있다.
이걸 옵션가서 원하는 단축키로 만들어주고, 쿼리 대충 하나 불러놓고 선택한 후 단축키를 딱!!!! 결과 확인!
AddIns 수정과 설치하는 방법은 좀더 공부와 삽질을 해야 된다. ( Poor Sql formatter 소스보고 공부 중.. .)
영어가 안되서... 많이 힘들다.
#바꾸기 전
# 바꾼 후
아싸~~
AddIns 되니까. 흐흐흐.... 뭔가 더 바꿔볼 수 있게 되었다. +_+;;
짜놓은 프로그램들 비쥬얼스튜디오에 추가하면 일일이 따로 안 띄워도 되고 복사해서 붙여넣기 안해도 되공...
'# 9) My Program(.NET) > PRJMNG' 카테고리의 다른 글
JSFW.UI Story Board] 컨트롤 갯수 제한에 걸림. (0) | 2016.06.05 |
---|---|
JSFW.SQLFormatter] AddIns 추가적으로 알아낸것... (0) | 2016.04.22 |
JSFW.Report Tools] 시작해볼까? (0) | 2016.04.20 |
JSFW.SQLFormatter] 수정작업 * 중요 (0) | 2016.04.19 |
JSFW.SQLFormatter] 2차 작업 완료. (0) | 2016.04.16 |