[VBA] findNext 에러 제어

 vba에서 find 함수를 찾는데 이어서 찾기 위해 findnext를 쓴다. 하지만 더 이상 찾는 데이터가 없으면 에러이다. 이 경우 에러를 뱉고 프로그램이 멈추기 때문에 따로 처리가 필요하다. 아래와 같음 1 2 3 4 5 6 7 8 9 Dim  wb  As  Excel.Workbook, oRange  As  Range ' FindNext 함수의 에러가 발생할 수 있으므로 객체에 넣는다 ' find 구문 있어야함 (생략)   Set  oRange  =  wb.Worksheets(i).Cells.FindNext(After: = ActiveCell)  ' 다음 데이터가 없으면 oRange값은 Nothing이    If   Not  oRange Is  Nothing   Then      ' FindNext가 정상일 경우 처리 End   If

[SSRS] Line Break Expression

SSRS의 텍스트 표현식에서 \n(줄바꿈)을 입력해줘야 할때 Environment.NewLine 을 입력해준다. vbcrlf 를 입력해주라는 글도 있지만 명확하게 알 수 있는 Environment.NewLine 이 더 좋은 것 같다. 출처

[SQL Server] CPU Share Query Ranking

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 -- ===== [CPU] ===== -- CPU 점유율 높은 쿼리 확인 ;WITH cte AS (      SELECT   stat.[sql_handle]           , stat.statement_start_offset           , stat.statement_end_offset           , COUNT( * ) AS NumExecutionPlans           , SUM(stat.execution_count) AS TotalExecutions           , ((SUM(stat.total_logical_reads)  *   1. 0 )  /  SUM(stat.execution_count)) AS AvgLogicalReads           , ((SUM(stat.total_worker_time)  *   1. 0 )  / ...

[SQL Server] Memory Status

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -- ===== [MEMORY] ===== -- SQL MAX memory 확인 EXEC sp_configure  'max server memory' ;   -- SQL MAX memory 설정 --DECLARE @maxMem INT = 3000 -- MAX. MB 단위로 입력 --EXEC sp_configure 'show advanced options', 1 --RECONFIGURE   --EXEC sp_configure 'max server memory', @maxMem; --RECONFIGURE   -- SQL MIN memory 확인 EXEC sp_configure  'min server memory' ;   -- SQL MIN memory 설정 --DECLARE @minMem INT = 3000 -- MAX. MB 단위로 입력 --EXEC sp_configure 'show advanced options', 1 --RECONFIGURE   --EXEC sp_configure 'min server memory', @minMem; --RECONFIGURE   -- O...

[SQL Server] 권한 부여 안된 유저 확인

유저에 대한 권한이 부여가 안된 리스트 출력 Version: MS-SQL 2017 1 2 3 4 5 6 7 8 9 10 DECLARE @GranteeName NVARCHAR( 50 )  =  N 'username'         ,@PermissionType  CHAR ( 2 )  =   ''         ,@ObjectType       CHAR ( 2 )  =   '' SELECT  SCHEMA_NAME(o.schema_id)  +   '.'   +  o.name AS ObjectName  FROM  sys.objects AS o LEFT JOIN sys.database_permissions AS dp  ON  o.object_id  =  dp.major_id AND dp.type  =  @PermissionType LEFT JOIN  sys.database_principals AS dpr  ON  dp.grantee_principal_id  =  dpr.principal_id     AND dpr.name  =  @GranteeName WHERE  o.type  =  @ObjectType     AND dpr.name IS  NULL

[SQL Server] sys.objects type LIST

SELECT DISTINCT Type FROM sys.objects; type char(2) Object type: AF = Aggregate function (CLR) C = CHECK constraint D = DEFAULT (constraint or stand-alone) F = FOREIGN KEY constraint FN = SQL scalar function FS = Assembly (CLR) scalar-function FT = Assembly (CLR) table-valued function IF = SQL inline table-valued function IT = Internal table P = SQL Stored Procedure PC = Assembly (CLR) stored-procedure PG = Plan guide PK = PRIMARY KEY constraint R = Rule (old-style, stand-alone) RF = Replication-filter-procedure S = System base table SN = Synonym SO = Sequence object U = Table (user-defined) V = View EC = Edge constraint Applies to: SQL Server 2012 (11.x) and later. SQ = Service queue TA = Assembly (CLR) DML trigger TF = SQL table-valued-function TR = SQL DML trigger TT = Table type UQ = UNIQUE constraint X = Extended stored procedure Applies to: SQL Server 2014 (12.x) and later, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW). ST = STATS_TREE Applies to: S...

[SQL Server] Mysql 링크드 서버 OpenQuery 로 View 만들기

 버전: SQL Server 2017 SQL Server에서 연결된 Mysql 링크드 서버에서 가끔 Openquery를 사용해서 데이터를 조회한다. '(quotation) 표기도 헷갈리고 Where절에 파라미터를 넘기는 것도 복잡해서 찾아보니 Openquery 자체를 view로 만들수 있었다. 1 2 3 4 5 6 7 8 -- View 만들기 Create  View ViewName AS SELECT   *   FROM  OPENQUERY( LinkedserverName,  'SELECT * FROM MysqlTable'  ) Query   -- View 실행 DECLARE @id  INT   =   1   SELECT   *   FROM  ViewName  WHERE  id  =  @id; 참고링크

[다독프로젝트 +100] 제로웨이스트는 처음인데요

이미지
제목: 제로웨이스트는 처음인데요 저자: 소일 출판사: 판미동 장르: 사회과학 이전에도 실천하고 싶었지만 방법을 잘 몰랐다. 임신과 출산을 하고 더 관심을 갖게 되어 읽어봤다. 제로웨이스트라는 말 자체가 생소할 수 있지만 천천히 하나 하나 바꿔가야 하는 것은 맞다. 현재 내가 하고 있는 것은 비누로 머리 감기, 그리고 아기의 기저귀를 생분해가 가능한 것을 사용하는 것이다. 기저귀가 썩는데 500년이 걸린다니 정말 무서웠다. 나만 실천한다고 해서 달라질게 뭐가 있냐라는 생각이 들기도 하지만 생각해보면 독립운동도 한 명 한 명이 모여 실천한 것 아닌가. 그런 의미에서 다른 사람들도 책을 볼 수 있도록 중고 서점에 책을 내놔야겠다.

[mysql] 프로시저 실행 시간 확인

프로시저 성능 확인을 위해 각 쿼리의 실행시간이 궁금한 경우가 있다. slowquerylog를 확인하는 것도 좋지만 명확하게 어떠한 프로시저의 실행 시간이 궁금한 경우 다음 방법이 편해서 공유한다. 1 2 3 set  profiling = 1 ; call proc_name(); show  profiles; cs 해당 프로시저 내의 각 쿼리들의 실행결과를 보여주므로 가장 느린 쿼리에 대한 튜닝이 가능해서 편리하다. 출처: 스택오버플로우