분류 전체보기

728x90
  • 에러 내용

통신 문제로 인해 MSDTC 트랜잭션 관리자가 원본 트랜잭션 관리자에서 트랜잭션을 끌어올 수 없습니다. 이유: 방화벽이 있는데 MSDTC 프로세스에 대한 예외가 없거나, 두 컴퓨터에서 각 컴퓨터의 NetBIOS 이름을 사용해 서로를 찾을 수 없거나, 두 트랜잭션 관리자 중 하나가 네트워크 트랜잭션을 지원하지 않도록 설정되어 있습니다. (예외가 발생한 HRESULT: 0x8004D02B)

 

  • 환경
IDE Visual Studio2010
Language C#
Web Tech ASP.NET

 

  • 해결

내 경우, 디버깅을 할때 백엔드 트랜잭션 로직 안에서 다른 백엔드 트랜잭션 로직을 호출하려는데 먼저 호출된 트랜잭션에 막혀서 에러가 났다. 호출 시 구성 요소 서비스가 자동으로 설치되는 세팅이라 먼저 설치된 구성요소의 트랜잭션을 잠깐 끊고 디버깅을 진행한 후 다시 연결해줬다.

구성 요소 서비스 앱을 실행하고 먼저 설치된 구성요소를 찾아서 우클릭 속성

 

 

트랜잭션 탭에서 트랜잭션 지원하지 않음을 선택 후 적용

디버깅 진행 후(안에서 호출하는 구성요소가 설치된 것을 확인 후) 다시 원래대로 돌려준다.

728x90
728x90
-- 임시 테이블 생성 
CREATE TABLE #TEST( 
	CODE	NVARCHAR(1)	NOT NULL, -- PK용 
	CONTENT NVARCHAR(5)	NULL
) 

-- 데이터 삽입 
INSERT INTO #TEST VALUES ('A', '고양이'); 
INSERT INTO #TEST VALUES ('B', '강아지'); 

---------------------------------------------------------------
-- IF문, 특정문자 포함여부에 따라 다른 SELECT문 출력예시
-- A 고양이
IF(EXISTS(SELECT '' FROM #TEST WHERE CODE = 'A' AND CONTENT LIKE '%고%')) -- 일반테이블은 CONTAINS(CONTENT, '고')
	BEGIN
		SELECT * , 'O' AS '''고''포함' FROM #TEST WHERE CODE = 'A' 
	END
ELSE
	BEGIN
		SELECT '아무 SELECT문'
	END

-- 강아지
IF(EXISTS(SELECT '' FROM #TEST WHERE CODE = 'B' AND CONTENT LIKE '%고%')) 
	BEGIN
		SELECT *, 'O' AS '''고''포함' FROM #TEST WHERE CODE = 'B'
	END
ELSE
	BEGIN
		SELECT GETDATE() AS TODAY
	END
----------------------------------------------------------
-- CASE문, 특정문자 포함여부를 나타내는 컬럼 출력예시
SELECT *, 
	CASE WHEN CONTENT LIKE '%고%' THEN 'O' 
	ELSE 'X' END 
    AS '''고''포함'
FROM #TEST



 

728x90
728x90

 

-- 임시 테이블 생성
  CREATE TABLE #TEST(
  	CODE	NVARCHAR(1)	NOT NULL, 
  	PAGES	INT			NULL, 
	CONTENT	NVARCHAR(10)	NULL
)

-- 데이터 삽입
INSERT INTO #TEST VALUES ('A', 1, '안녕하세요');
INSERT INTO #TEST VALUES ('A', 2, '오늘은');
INSERT INTO #TEST VALUES ('A', 3, '맑은 날씨입니다.');
INSERT INTO #TEST VALUES ('B', 1, '근데 저는');
INSERT INTO #TEST VALUES ('B', 2, '더워요');

-- 전체 조회
SELECT * FROM #TEST

-- 단계별 TEST
SELECT CONTENT FROM #TEST FOR XML PATH('') -- XML형식으로 한 줄로 출력
SELECT '@' + CONTENT FROM #TEST FOR XML PATH('') -- 태그 없앰

-- STUFF(문자열, 시작점, 길이, 치환문자) : 문자치환함수
-- 맨앞 문자 제거(문자열 관련 함수 쓰면 타입 바껴서 링크 없어짐)
SELECT STUFF((SELECT '@' + CONTENT FROM #TEST(NOLOCK) FOR XML PATH('')), 1, 1, '')

-- 조건 더해준 최종
SELECT DISTINCT
	A.CODE
	, ISNULL(STUFF((
		SELECT ' ' + CONTENT
		FROM #TEST(NOLOCK) 
		WHERE A.CODE = CODE -- 묶을 기준 컬럼
		FOR XML PATH('')), 1, 1, ''), '') 
	AS CONTENT
FROM 
	#TEST A(NOLOCK)

 

728x90
728x90

CodePen 사이트를 활용해서 움직이는 화면을 만들어보자.

CodePen은 CSS관련해서 오픈소스가 많은 사이트이고 공개된 소스는 MIT 라이센스를 따르기 때문에 무료이다. Pro모드를 사용한 코드만 저작권이 발생하니 Pro 빼고는 자유롭게 사용하되 라이센스 원문을 포함시켜서 사용해야 한다. 금손들이 많아서 소스를 참고하여 공부하기에도 괜찮다.

 

 

🔗 CodePen https://codepen.io/trending

사이트에 접속해서 상단에 원하는 키워드로 검색

 

 

Pro 태그가 없고 마음에 드는 소스를 선택

 

 

소스를 가져다 쓰면 되는데 왼쪽 밑에 Comments 를 눌러서 밑으로 쭉 내리면

 

 

라이센스가 있다. 이걸 복사해서 코드에 포함시켜준다.

 

 

View Compiled HTML 을 누르면 흔히 아는 <HTML> 형식으로 바뀐다.

 

 

🔗 이전 글 [GitHub] github.io 포트폴리오 만들기-템플릿 연결

 

[GitHub] github.io 포트폴리오 만들기-템플릿 연결

github.io 와 템플릿을 사용하여 누구나 접속가능한 포트폴리오를 만들 예정이다. 설치 순서는 1. Ruby 설치 2. Jekyll 설치 3. 템플릿 연결 #1 Ruby 설치 🔗 https://rubyinstaller.org/downloads/ 최신버전 x6..

nrmhvr.tistory.com

만들었던 포트폴리오에 적용해봤다.

 

짬짬이 수정중...

728x90
728x90

쿼리를 보면 가끔 From절에 dbo.테이블명 이나 [dbo].[테이블명] 을 볼 수 있다. 이때 쓰이는 dbo란 무엇인지 알아보자.


DBO : DataBase Owner 

 

DataBase Owner의 줄임말로 말 그대로 소유자라는 의미이다.

MSSQL에서 기본 소유자이며 따로 지정하지 않으면 dbo가 된다. 

보통 로그인 할때 sa 로 로그인하면 dbo가 되고 테이블이나 프로시저를 생성하면 dbo 의 소유가 된다.

[ ] 대괄호는 문자로 인식한다는 의미이며 MSSQL에서 자동완성 기능을 사용할때 알아서 붙는다.

 

dbo를 쓰는 이유는 소유자를 명시해주어, 해당 소유자 안에서 조회하기 때문에 약간의 성능 향상이 있다.


🔗참고 https://www.sqler.com/board_SQLQA/591855

728x90