--USE [TempTable]
--GO
/****** Object:  UserDefinedFunction [dbo].[fn_GetFileInfoInFullPathUsingXml]    Script Date: 2017-01-17 오후 1:43:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-----------------------------------------------------------------------------------------------------------  
--  파일경로에서 파일정보 가져오기  
--  파일경로 문자열에서 파일명,경로,확장자가지오기(filepath:경로,filename:파일명,extension:확장자)  
--  예: SELECT 데이터베이스명.소유자명.fn_GetFileInfoInFullPathUsingXml('filename','test.xml','/')  
--  SELECT  dbo.fn_GetFileInfoInFullPathUsingXml('filename','c:/dkdk/test.xml','/')  
--  SELECT  dbo.fn_GetFileInfoInFullPathUsingXml('filepath','c:/dkdk/test.xml','/')  
--  SELECT  dbo.fn_GetFileInfoInFullPathUsingXml('extension','c:/dkdk/test.xml','/')  
-----------------------------------------------------------------------------------------------------------  
-----------------------------------------------------------------------------------------------------------  
-- 프로시저 생성  
-----------------------------------------------------------------------------------------------------------  
  
ALTER FUNCTION     [dbo].[fn_GetFileInfoInFullPathUsingXml]  
(  
    @iGubun         NVARCHAR(10),   -- filepath:경로,filename:파일명,extension:확장자  
    @iFullPath      NVARCHAR(MAX),  
    @iDelimiter     NVARCHAR(10)  
)   
RETURNS NVARCHAR(MAX)  
AS  
BEGIN  
      
      
    DECLARE @wTblSplit AS TABLE   
    (  
         Seq        INT     IDENTITY(1,1),  
         Fragment   NVARCHAR(MAX)  
    )  
    DECLARE @wFileInfo  NVARCHAR(MAX)  
    DECLARE @wXml       XML  
    DECLARE @wMax       INT  
      
    SELECT  @wFileInfo  = ''  
    SELECT  @wMax       = 0  
    SET     @wXml       = N'' + REPLACE(@iFullPath, @iDelimiter,'') + ''  
  
    INSERT  INTO @wTblSplit(Fragment)  
    SELECT  r.value('.','NVARCHAR(MAX)') as item  
    FROM    @wXml.nodes('//root/r') as records(r)  
  
    SELECT  @wMax   = MAX(Seq) FROM @wTblSplit  
    IF  @iGubun = 'filepath'  
    BEGIN  
        IF  @wMax   = 1  
        BEGIN  
            SELECT  @wFileInfo = '.'  
        END  
        ELSE  
        BEGIN  
            SELECT  @wFileInfo  = COALESCE(@wFileInfo + @iDelimiter + Fragment, Fragment)  
            FROM    @wTblSplit  
            WHERE   Seq         < @wMax  
            ORDER BY Seq  
              
            SELECT  @wFileInfo  = SUBSTRING(@wFileInfo,2,LEN(@wFileInfo)) + '/'  
        END  
    END  
    ELSE IF @iGubun = 'filename'  
    BEGIN  
        SELECT  @wFileInfo = Fragment FROM @wTblSplit WHERE Seq = @wMax
		SELECT  @wFileInfo = SUBSTRING(@wFileInfo,1,CHARINDEX('.',@wFileInfo))  
    END  
    ELSE IF @iGubun = 'extension'  
    BEGIN  
        SELECT  @wFileInfo = Fragment FROM @wTblSplit WHERE Seq = @wMax  
        SELECT  @wFileInfo = SUBSTRING(@wFileInfo,CHARINDEX('.',@wFileInfo)+1,LEN(@wFileInfo)-CHARINDEX('.',@wFileInfo))  
    END  
      
    RETURN LTRIM(RTRIM(@wFileInfo))  
  
END


http://rocabilly.tistory.com/88 에 있던걸 extension 부분만 수정했다. aaa.bbb.ccc.jpg 처럼 dot('.')이 여러개일경우 오류가 발생할수 있다.


Posted by 두억시니 트랙백 0 : 댓글 0


-- 테이블 이름 변경
-- CustomerName 이라는 테이블을 Customer 라는 이름으로 변경
sp_rename 'CustomerName', 'Customer'

-- 컬럼 이름 변경
-- Test 테이블의 CustomerName 이라는 컬럼을 Customer라는 이름으로 변경
sp_rename 'reserve.[CustomerName]', 'Customer', 'COLUMN'

-- 컬럼 타입 변경
-- Test 테이블의 Customer 컬럼의 타입을 varchar(10)으로 변경
ALTER TABLE Test
ALTER COLUMN Customer varchar(10)



종종 사용하는데 왜 기억을 못하는 걸까? ㅠ_ㅜ

Posted by 두억시니 트랙백 0 : 댓글 0
참으로 힘들었던 설치였다. 설치가 된것처럼 보이면서도 patch 도중 계속적인 appcrash 오류 때문에 몇번을 고스트 복원을 했었던지 셀수도 없을것 같다. 하지만, 끈질기게 찾아내서 결국 모두 완벽하게(?) 성공시켰고, 여러가지 문제점들은 모두 해결되었다. 최신의 노트북에도 파워빌더 시리즈를 설치해 보자. 아 피눈물 날것 같아. ㅠ_ㅜ


[작성자의 개발환경] 열기




<파워빌더 설치전 준비사항>
ntwdblib.dll 최신 파일 - 첨부파일을 C:\WINDOWS\SYSTEM 폴더에 복사한다.(SYSTEM32 폴더가 아니다.)
윈도우즈7 도움말 패치 - 패치를 먼저 설치하고 파워빌더 설치할것을 권장한다.
아웃룩 키보드 입력 변경 - 아웃룩을 설치했다면 키보드 구성을 삭제/변경 해줘야 한다.


 
<설치시 주의사항>
구지 관리자/호환성 모드로 설치할 필요는 없다. 특히 윈도우 XP/2000/2003 의 호환성이 좋을거란 착각으로 마우스 오른쪽 버튼으로 설치해봤는데, 이것때문에 더 오류가 발생하였다. 프린터 드라이버는 비스타(64bit)용을 구해서 설치해도 된다. 사무실의 HP LaserJet 1320의 경우 윈도우즈7 드라이버를 제공하지 않았다.


 
<지금까지 확인된 파워빌더 버전별 설치 오류와 대처방안>
PowerBuilder 6.0/6.5
정상적으로 설치되었다고 생각했으나, 시작시 오류 메시지가 출력된다.
폰트가 변경이 안되고 저장이 안된다.
- 설치폴더(C:\Sybase\PWRS\PB6)의 pb.ini 파일을 건드려 줘야 했다. 어떤 부분이었는지는 잊어버려서 추후 내용을 수정해야 할것 같다. ㅋㅋ 참고용으로 정상적으로 동작하는 나의 pb.ini 를 올려본다.

[pb.ini] 열기


PowerBuilder 7.0
폰트가 변경이 안되고 저장이 안된다.

PowerBuilder 8.0
설치하기 전에 우선 Microsoft Java VM을  설치해야 오류 없이 설치 할수 있었다.
-. 그런데 Java VM이 어떤 녀석이었던 건지 잊어 버렸다. 다시 곰곰히 생각해보자.

PowerBuilder 9.0
별다른 문제없이 설치된다. 간혹 오류 메시지가 나올 수 있으나 무시하고 사용해도 괜찮았다.

PowerBuilder 10.5
patch가 되질 않는다.
64비트 OS를 감지했다는 메시지를 볼수 있는데 과감하게 '아니오'를 누르자.

PowerBuilder 11.5
별다른 문제없이 설치된다.
64비트 OS를 감지했다는 메시지를 볼수 있는데 과감하게 '아니오'를 누르자.
Posted by 두억시니 트랙백 0 : 댓글 0
사용자 삽입 이미지
Error Message :
SQL Server 2005에 연결하는 경우 SQL Server 기본 설정에서는 원격 연결을 허용하지 않기 때문에 발생한 오류일 수 있습니다. (Provider : 명명된 파이프 공급자, error: 40 -SQL Server에 대한 연결을 열 수 없습니다.)(Microsoft SQL Server, Error: 1326)
- 정확한 원인은 알수 없지만, Microsoft SQL 2005 를 설치하면 기본값으로 원격 연결이 설정 되지 않았다.





처리방법(Microsoft Windows XP Professional 기준) :
SQL Server 노출 영역 구성

SQL Server 노출 영역 구성

① [시작] - [모든 프로그램] - [Microsoft SQL Server 2005] - [구성 도구] - [SQL Server 노출 영역 구성] 실행 후 화면 하단의 [서비스 및 연결에 대한 노출 영역 구성] 클릭.



서비스 및 연결에 대한 노출 영역 구성

서비스 및 연결에 대한 노출 영역 구성

② 좌측 메뉴의 [원격 연결] 클릭.



사용자 삽입 이미지
③ [TCP/IP 및 명명된 파이프 모두 사용] combobox check 후 적용 후 SQL 서비스를 다시시작 하거나 컴퓨터를 reboot 시킨다.



사용자 삽입 이미지
④ 좌측 메뉴의 [SQL Server browser] 선택 후 우측 메뉴에서 시작 유형을 [자동] 으로 해주고 [시작] 버튼을 누르면 [SQL Server Browser] 서비스가 정상적으로 시작된다.


위의 방법까지 진행해도 원격 연결이 되지 않으면, firewall 설정을 다시 해주거나 자신의 Netwok 상태를 확인해 본다.
Posted by 두억시니 트랙백 1 : 댓글 2

* SQL : Microsoft SQL Server 2000

잘 사용하던 SQL Server 가 오늘 아침부터 갑자기 접속이 안되는 것이었다. 쿼리 분석기, 엔터프라이즈 관리자 조차 접속이 안되고 서버를 건드린 사람은 없는 듯 했다.

사용자 삽입 이미지

네트워크 라이브러리 구성 편집


* [시작] - [모든 프로그램] - [Microsoft SQL Server] - [클라이언트 네트워크 유틸리티]
[별칭] - [편집] 을 실행.

특이사항이 있다면 <클라이언트 네트워크 유틸리티>에 별칭이 추가되어 있다는 것 정도를 제외하고는 별다른 점은 발견하지 못했다.

해당 별칭을 삭제하고 나니 쿼리 분석기, 엔터프라이즈 관리가자 local 에서 정상적으로 동작을 한다. 결국 포트 문제인가?(결과적으로 별칭 문제가 아니었다.)

하지만 역시 외부에서 접속은 안되고 있는 상황이다. 포트 번호를 확인하러 가자.

사용자 삽입 이미지

SQL Server 네트워크 유틸리티

* [시작] - [모든 프로그램] - [Microsoft SQL Server] - [서버 네트워크 유틸리티]
사용할 수 있는 프로토콜 에서 [TCP/IP] 를 선택하고 아래 [속성] 버튼을 클릭.

사용자 삽입 이미지

TCP/IP 기본 포트 설정


보통 Microsoft SQL Server의 기본 포트는 1433 이다. 만약 이것을 바꾼다면 해당 서버의 IP 뒤에 ,포트번호(콤마+포트)를 꼭 붙여줘야 한다.(예:192.168.0.100,1444)

문제는 아무도 포트번호를 바꾼적이 없는데 1433이 아닌 쌩뚱맞은 포트 번호가 적혀있던게 아닌가? 바로 어제까지만 해도 잘 사용했는데 갑자기 기본 포트가 바뀌어서 오전 내내 접속이 되지 않았다는게 조금 이상했지만 아직 정확한 원인은 찾지 못하였다. 설마 해킹?-_-;
Posted by 두억시니 트랙백 0 : 댓글 0