page no. 96405104
- 개요
- 파라미터 값을 전달할 때, 값 내부에 콤마(
,
)가 포함된 경우 이를 여러 개의 값으로 인식할 수 있습니다.
이를 방지하고 하나의 값으로 처리하기 위한 규약을 사용하는 방법을 기술합니다.
- 파라미터 값을 전달할 때, 값 내부에 콤마(
- 기능 설명
- 콤마가 포함된 값의 문제점
값이 'A,B,C' 처럼 콤마가 포함되어 있는 경우, 이를 세 개의 값(A, B, C) 으로 인식할 수 있습니다. - 콤마가 포함된 값을 처리하는 방법
콤마가 포함된 값을 하나의 값으로 인식시키기 위해서는 콤마 앞에
\\
(역슬래시)를 추가하여 해당 콤마가 값의 일부임을 알려줄 수 있습니다.예를 들어, 값 'A,B,C' 를 하나의 값으로 전달하려면 다음과 같이 콤마 앞에
\\
를 붙여야 합니다.예시:
- 잘못된 값 전달: A,B,C
- 올바른 값 전달: A\\,B\\,C
이렇게 작성하면 A\\,B\\,C는 콤마가 포함된 하나의 값으로 처리됩니다.
- 콤마가 포함된 값의 문제점
- 파라미터 처리 방법
변수를 파라미터로 사용하는 경우
GlobalParam, Variable, TextBox 처럼 사용자가 값을 정의하여 사용할 수 있는 파라미터의 경우 콤마 앞에 역슬래시(\\)를 추가해야 합니다.예제 코드var value = 'A,B,C' // 콤마가 포함된 값 var resultValue = value.split(',').join('\\,'); // 콤마 escape 처리한 값 ( A\\,B\\,C ) // GlobalParam Matrix.AddGlobalParams('VS_EX_GLOBALPARAM', resultValue, 1 /* string */); // Variable Matrix.SetVariable('VS_EX_VARIABLE', resultValue); // TextBox 를 파라미터로 사용하는 경우 Matrix.getObject('VS_TextBox').Text = resultValue;
ComboBox, MultiComboBox, PickList 를 파라미터로 사용하는 경우
각 컨트롤에서 값 목록에서 'A,B,C'라는 값을 선택했을 때 파라미터로 전달되는 방식은 다음과 같습니다.
생성된 쿼리SELECT T1.CODE FROM (SELECT 'A,B,C' AS CODE UNION ALL SELECT 'A' AS CODE UNION ALL SELECT 'B,B,B' AS CODE) T1 WHERE T1.CODE IN ('A,B,C') -- 변수가 올바르게 바인딩 되어 있음을 확인
※ 사용자 스크립트에서 값을 가져오는 동작은 기존과 동일하게 수행되며, 콤마 처리로 인한 별도의 조치가 필요하지 않습니다.
주의 사항
- 콤마가 포함된 값을 반드시 하나의 값으로 전달해야 하는 경우 모든 콤마 앞에
\\
(역슬래시)를 추가하여야 합니다.
변경 사항
변경 전 변경 후 릴리즈 번호 값에 콤마(,)가 포함된 경우, 이를 여러 개의 값으로 인식하여 쿼리의 파라미터가 잘못 전달되는 문제가 발생합니다. 값에 콤마가 포함된 경우, 콤마 앞에 역슬래시(\)를 추가하여 콤마 자체가 값의 일부임을 명시합니다.
기능 정보 |
|
|
|
|
|
|
|
---|---|---|---|---|---|---|---|
시작 버전 정보 |
- 콤마가 포함된 값을 반드시 하나의 값으로 전달해야 하는 경우 모든 콤마 앞에
\\
(역슬래시)를 추가하여야 합니다.