쉬프트-RND 제2007-012호

 

 

 

 

 

 

 

 

 

 

 

 

API GUIDE

GAUCE for .NET 5.0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ã SHIFT Information & Communication Co., Ltd.

Phone 02 464.7676 • Fax 02 464 7234 • www.shift.co.kr

 

Copyright Information

 

©Copyright 2007 SHIFT Information & Communication Co., Ltd.

 

모든 권리는 저작권자의 소유입니다.

 

저자: 쉬프트정보통신㈜

 

이 프로그램의 모든 정보에 대해서는 SHIFT Information & Communication Co. 에서 소유권을 가집니다. 이 정보는 사용제한 및 기밀유지 규정에 포함하는 사용자계약에 따라 제공되며 저작권법에 의해 보호됩니다.

이 소프트웨어를 역 엔지니어링하는 것은 금지 되어 있습니다.

이 설명서의 내용은 사전공지 없이 변경될 수 있습니다.

이 설명서에는 오류가 있을 수도 있으므로 잘못된 내용이 발견되면 서면으로 알려 주시기 바랍니다.  

SHIFT Information & Communication Co.에서는 오류에 대한 책임을 지지 않습니다.

기타 모든 제품들과 회사 이름은 각각 해당 소유주의 상표로서 참조용으로만 사용됩니다.

The copy numbers referenced above should be written into the Copy Number space on the cover of each distributed copy.  If the document is not controlled, you can delete this table and the Copy Number label from the cover.

 

Contents

매뉴얼에 대해서..................................................................................................................................... 1

매뉴얼의 전제 조건........................................................................................................................ 1

매뉴얼의 구성.................................................................................................................................. 1

관련 매뉴얼...................................................................................................................................... 1

일러두기........................................................................................................................................... 2

정의 및 용어정리............................................................................................................................ 2

GAUCE API 설명.................................................................................................................................... 3

GAUCE for .NET 5.0 서비스 객체............................................................................................. 3

GauceBasePage API...................................................................................................................... 4

IGauceBasePage API.................................................................................................................. 67

IGauceDbHelper API................................................................................................................. 73

GauceConnection API............................................................................................................... 81

ServiceLoader API....................................................................................................................... 85

IGauceService............................................................................................................................... 86

IGauceRequest............................................................................................................................. 93

IGauceResponse.......................................................................................................................... 94

GauceDataSet............................................................................................................................... 95

GauceMessageSet..................................................................................................................... 112

GauceDebugLoger.................................................................................................................... 114

GauceParameterProperty....................................................................................................... 115

GauceParameter........................................................................................................................ 116

ActivexRollupFilter.................................................................................................................. 118

IGauceServiceCall..................................................................................................................... 119

IGauceQueryStorage................................................................................................................ 124

부록....................................................................................................................................................... 130

GauceDefine............................................................................................................................... 130

GauceVariable........................................................................................................................... 132

 

 


매뉴얼에 대해서

본 매뉴얼은 GAUCE for .NET 5.0을 사용하여 서비스를 작성하는 개발자을 위한 것입니다.  이 제품은 Microsoft Visual Studio .NET 2003혹은 Microsoft Visual Studio .NET 2005에서 GAUCE Framework을 사용하여 서비스를 생성하는 방법을 가이드 합니다.

 

 

매뉴얼의 전제 조건

본 매뉴얼은 GAUCE for .NET 혹은 GAUCE를 이용한 개발절차나 특성등에 대한 충분한 이해를 전제조건으로 합니다.

서비스를 생성하기 위한 API를 가이드 하기 위한 매뉴얼이며, 비즈니스 로직을 설계하고 비즈니스 로직에 필요한 데이터베이스 기반 지식에 대한 이해가 필요합니다.

 

매뉴얼의 구성

본 매뉴얼의 각 장은 처음으로 GAUCE for .NET을 이용하여 개발을 수행하는데 필요한 단계들로 구성되어 있으며 다음 2개의 주요파트로 나누어져 있습니다.

1.       GAUCE for .NET 5.0 Server API 설명

2.       GAUCE for .NET 5.0 추가 설명

 

 

관련 매뉴얼

본 매뉴얼을 읽기 전에 필요한 문서는 다음과 같다.

문서이름                                                      설명

Max Component Manual

GAUCE에서 제공하는 다양한 Component 에 대한 기능을 확인할 수 있습니다.

http://member.shift.co.kr/online/index.html

혹은

제품설치시디의 /Manual CD/03.GAUCE Componet Manual 디렉터리에 포함되어 있는 GAUCEComponent 매뉴얼을 참조합니다.

GAUCE .NET 개발 가이드

GauceNet401_Developement.doc

 

 

 

 

 

일러두기

본 매뉴얼을 읽기 전에 필요한 사항은 다음과 같다.

표기 예                                                         내용

텍스트

본문, 바탕체, Book Antiqua, 10pt

텍스트

본문 내용을 강조

CTRL + C

Ctrl 과 C키를 동시에 누름

namespace GauceLib {}

.NET 코드

<xml>

XML

도구 메뉴를 연다.

UI에 포함되어 있는 컴포넌트 이름

. . .

생략

…

반복

<<파일이름>>

파일 이름과 번호

그림1

그림 이름과 번호

표2

표번호

http://member.shift.co.kr

참조한 URL

[ ]

메뉴 명이나 버튼 명 등을 나타냄

 

 

정의 및 용어정리

본 매뉴얼을 통해서 자주 볼 수 있는 용어는 다음과 같다.

용어                         설명

VS.NET

VS.NET(Visual Studio .NET)는 .NET Framework의 기능을 활용 하여ASP.NET 웹 응용 프로그램, XML Web Services, 데스크톱 응용 프로그램 및 모바일 응용 프로그램을 빌드할 수 있는 마이크로소프트사의 통합 개발 환경입니다.

GAUCE .NET

닷넷환경에서 UI프리젠테이션 서비스를 만드는 최적의 솔루션입니다.

 

 

GAUCE API 설명

Gauce .NET 5.0 버전은 크게 GauceServiceHandler, GauceRequestHandler, GauceResponseHandler 와 이들을 래핑하는 GauceBasePage 객체로 구성되며, GauceServiceHandler는 GauceMessageSet, GauceResponseHandler, GauceRequestHandler, GauceEventHandler와 GauceServiceSet 객체를 생성 관리한다.

GauceBasePage 는 GAUCE for .NET 5.0의 자체 프레임웍 기능을 제공하는 클래스로내부적으로는 DB Connection을 유지관리하고, 파일처리, 예외처리 등을 담당하고 기본적인 시나리오 템플릿 파일을 구성하는 요체가 된다.

한편, GauceResponseHandler와 GauceRequestHandler는 각각 송수신 data 포맷에 맞는 객체를 생성하고 초기화한다. 이때 생성되는 객체는 data 포맷에 따라 다음과 같다.

data 포맷이 CSV30 인 경우는 CSV30Response 와 CSVRequest 객체를 생성하고, data 포맷이 BIN 인 경우는 BINResponse 와 BINRequest 객체를 생성하며, data 포맷이 CSV 인 경우는 CSVResponse 와 CSVRequest 객체를 생성한다.

그러나, 실제 사용자에게 열려있는 객체는 인터페이스를 위주로 하며, 다음과 같은 객체들이 있다.

 

 

GAUCE for .NET 5.0 서비스 객체

서비스객체명                 객체설명

GauceBasePage

GauceService객체들을 생성하고 관리하며, 예외처리 등을 한다.

IGauceBasePage

AJAX.NET이나 Atlas 등 GauceService객체를 이용하지 않는 서비스 저작시 지원을 위한 클래스인터페이스

IGauceDbHelper

DB Connection을 유지하고 관리한다.

ServiceLoader

서비스를 생성하고 로딩한다.

IGauceService

GauceSeviceHandler 객체로 구현된다.

IGauceRequest

GauceCommonRequest 객체로 구현된다. CSVRequest, BINRequest객체는 GauceCommonRequest 객체를 상속받는다.

IGauceResponse

GauceCommonResponse 객체로 구현된다. CSV30Response, BINResponse, SVResponse 객체는GauceCommonResponse 객체를 상속받는다.

GauceDataSet

ASP.NET의 System.Data.DataSet을 상속받는다.

GauceMessageSet

메시지를 보관하는 클래스이다.

IGauceLoger

GauceCommonLoger 객체로 구현된다. GauceDebugLoger, GuaceEventLoger, GauceMessageLoger 객체는 GauceCommonLoger 객체를 상속받는다.

GauceParameter-Property

Parameter의 속성을 관리한다.

GauceParameter

DB 파라미터를 관리하는 객체로 구현된다.

ActivexRollup-Filter

ActiveX 관련 IE 부분패치에 대응하기 위한 RollupFilter 모듈이다. GAUCE for .NET 5.0부터 지원한다.

IGauceServiceCall

가우스 서비스간의 데이터 통신을 지원하는 인터페이스로 GauceServiceCallHandler 객체로 구현된다.

IGauceQuery-Storage

가우스 서비스 작성시에 사용되는 쿼리문을 Xml File 형태로 관리 할 수 있도록 지원하는 인터페이스로 GauceQueryStorageHandler 객체로 구현된다.

 

 

GauceBasePage API

PROPERTIES

·      GauceLoader [ get, set ]

Gauce의 서비스를 관장하는 GauceService객체를 생성해 주는 ServiceLoader 객체를 담고있는 속성값이다.

Ver 3.0 과의 API 호환을 위한 속성이다.

사용예제)

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

IGauceService oGaService = oGBasePage.GauceLoader.newService(“default”);

 

·      GauceService [ get, set ]

Gauce의 서비스를 관장하는 GauceService 객체를 담고있는 속성값이다.

Ver 3.0 과의 API 호환을 위한 속성이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

GauceMessageSet oGaMessageSet = oGBasePage .GauceService.getMessageSet();

 

·      GauceMessage [ get, set ]

클라이언트 콤포넌트로 메시지를 전송하기 위한 객체 GauceMessageSet객체를 담고있는 속성값이다.

Ver 3.0 과의 API 호환을 위한 속성이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.GauceMessage.addMessage ("User", "90001", except.Message);

 

·      GauceRequest [ get, set ]

클라이언트 콤포넌트로부터 요청받은 HttpRequest와 데이터들을 담고있는 GauceRequest 객체를 담고있는 속성값이다.

Ver 3.0 과의 API 호환을 위한 속성이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

string strParam = oGBasePage .GauceRequest.getParameter(“empid”);

 

·      GauceResponse [ get, set ]

클라이언트 콤포넌트로 전송할 HttpResponse와 데이터들을 담고있는 GauceResponse 객체를 담고있는 속성값이다.

Ver 3.0 과의 API 호환을 위한 속성이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage .GauceResponse.write(“HttpResponse를 통한 데이터 전송”);

 

·      GauceDbHelper [ get, set ]

DB 연결객체관리, Transaction 객체관리 등의 Data Service Component(DSC)역할을 담당하는 DB Helper객체를 담고있는 속성값이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

// DB 연결을 추가한다.

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection(

"conn1", GauceVariable.DbProviderType.OLEDB null, 0);

 

·      GauceServiceCall [ get, set ]

가우스 서비스 간의 통신을 할 수 있도록 API를 제공하는 객체를 담고있는 속성값이다. 다음 예제는 기 작성된 FirstRowSelect.aspx 서비스를 호출하여 얻은 GauceDataSet을 재 가공하여 클라이언트로 전송하는 예이다.

GAUCE for .NET 5.0부터 제공하며, 조회만 가능하다.

사용예제)

CommunicationInfo oComInfo = new CommunicationInfo();

oComInfo.ServiceUri =

"http://localhost/GauceNetSample50_VS2003/FirstRow/FirstRowSelect.aspx";

// SOCD를 생성하지 않으면 디폴트 SOCD인 'O:output=output'이 생성된다.

  // oComInfo.Socd.Add(new GSocdInfo(GauceVariable.DataSetType.OUTPUT,

  // "output1", "output2"));

oComInfo.Params.Add("RequestData", "GAUCE_NET_DATA");

oComInfo.Params.Add("frowcnt", oGBasePage.getIntParam("frowcnt"));

 

GauceDataSet oGDS = oGBasePage.GauceServiceCall.getOutputDataSet(oComInfo);

if(oGDS != null) {

// 받은 데이터를 가공합니다.

GauceDataSet oOutGDS =   

    oGBasePage.GauceService.newDataSet("ResultDS");

 

oOutGDS.addDataColumn2("SEQ_NUMBER",

                  GauceVariable.ColumnDataType.INT, 4);

oOutGDS.addDataColumn2("ZIP_NUMBER",

                  GauceVariable.ColumnDataType.STRING, 24);

oOutGDS.addDataColumn2("ZIP_ADDR",

                  GauceVariable.ColumnDataType.STRING, 64);

oOutGDS.addDataColumnEnd();

 

char [] param = {'\0'};

 

DataTable oTbl = oGDS.Tables[0];

for(int i=0; i< oTbl.Rows.Count; i++){

DataRow oRow = oTbl.Rows[i];

oOutGDS.addDataRowValue("SEQ_NUMBER", i);

oOutGDS.addDataRowValue("ZIP_NUMBER",

Convert.ToInt32(oRow["ZIPCODE"]) + "-" +

                    Convert.ToInt32(oRow["AREACODE"]));

oOutGDS.addDataRowValue("ZIP_ADDR",

"   " + Convert.ToString(oRow["STATE"]).TrimEnd(param) + "/"

      + Convert.ToString(oRow["CITY"]).TrimEnd(param));

 

oOutGDS.addDataRow();

}

oOutGDS.end();

// 데이터 복사가 완료되었으므로 데이터를 클리어시킨다.

oGDS.Clear();

}

 

·      GauceQueryStorage [ get, set ]

가우스 서비스에서 사용되는 쿼리문을 Xml File을 통하여 관리하기 위한 API를 제공하는 객체를 담고있는 속성값이다.

GAUCE for .NET 5.0부터 제공한다.

사용예제1) - Query.xml

<?xml version="1.0" encoding="utf-8"?>

<Query>

<Select>

<Statement id="GauceNetSample50_VS2003.QueryManage.SelectQuery.01">

    <![CDATA[

        select deptnm, year, amt1, amt2 from Grid1

    ]]>

</Statement>

</Select>

<Transaction>

   <Statement id="GauceNetSample50_VS2003.QueryManage.TransactionQuery.01">

    <![CDATA[

        INSERT INTO BigintTest(Name, SI_Amt, I_Amt, BI_Amt)

        VALUES (@Name, @SI_Amt , @I_Amt, @BI_Amt )

    ]]>

</Statement>

</Transaction>

</Query>

 

사용예제2) – 내부 소스 코드

 

XmlQueryInfo oQueryInfo = oGBasePage.GauceQueryStorage.getQueryInfoByXPath(

"//Statement[@id='GauceNetSample50_VS2003.QueryManage.SelectQuery.01']");

if(oQueryInfo.IsSuccess)

{

// 쿼리를 실행하여 결과를 클라이언트로 전송합니다.

oGBasePage.commonSelect(oConn, oQueryInfo.QueryString);

}

else

{

oGBasePage.addMessage2(

GauceVariable.MessageType.Application,

"90000",

oQueryInfo.ErrorMsg);

 

oGBasePage.setResult(false);

}

 

 

 

 

METHODS

·      GauceBasePage (+2개 오버로딩)

Gauce의 서비스를 관장하는 서비스 개체를 생성하기위한 GauceBasePage 클래스의 생성자로, ASP.NET의 HttpServerUtility, HttpRequest와 HttpResponse 개체를 가지고 생성된다.

이때 ServiceLoader 객체가 생성되어 초기화 되며, 잘못된 요청을 Filtering 하기 위해 클라이언트의 요청 데이터를 분석하여 정보를 저장한다.

GauceBasePage(HttpServerUtility svr, HttpRequest req, HttpResponse res)

GauceBasePage(string strDomain)

GauceBasePage(Web.UI.Page oPage)  // Ver 5.0 부터 지원

 

Parameter 명

설명

HttpServerUtility svr

ASP .NET 이 클라이언트에서 보낸 웹요청처리를 담당하는 유틸리티 개체 이다.

HttpRequest req

ASP .NET 이 클라이언트에서 보낸 HttpRequest개체 이다.

HttpResponse res

ASP .NET 작업에서 받은 Http 응답정보를 캡술화하는 HttpResponse개체이다.

string strDomain

AJAX.NET을 지원하기 위해 도메인 이름만 지정한다.

Web.UI.Page oPage

현재 페이지를 나타내는 System.Web.UI.Page 개체이다.

사용예제)

// 가우스 페이지 기본 생성자 (1)

GauceBasePage oGBasePage= new GauceBasePage(Server, Request, Response);

// 가우스 페이지 기본 생성자 (2)

GauceBasePage oGBasePage = new GauceBasePage(this.Page);

// AJAX.NET을 지원하기 위한 생성자로 도메인 이름만 지정한다.

GauceBasePage oGBasePage = new GauceBasePage(“default”);

 

·      Release (+1개 오버로드)

GauceBasePage 객체가 사용한 모든 리소스들을 해제한다. 특히 DB 연결이 되어 있으면 이곳에서 자동으로 모든 DB연결들을 Closing 해준다.

void Release()

void Release(bool IsResponseEnd)

 

Parameter 명

설명

bool IsResponseEnd

Response.End() 메소드를 호출할지 여부를 결정하는 값이다. 이 값이 True이면 비즈니스 로직 수행 후에 HTML코드가 클라이언트로 전송되지 않는다.

 

사용예제1) GAUCE for .NET 5.0 이전

 

finally{

if (bPrintResult == true){

// 클라이언트로 작업결과를 전송합니다.

oGBasePage.printMessage();

// GauceBasePage객체를 해제합니다.

// 파리미터값이 true인 경우는 화면코드가 클라이언트로 전송되지

// 않습니다. DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이

// 해제됩니다.

oGBasePage.Release(true);

}

else{

// GauceBasePage객체를 해제합니다.

// elease의 파리미터값이 false(또는 지정하지 않음)인 경우는

// 화면코드가 클라이언트로 전송됩니다. DB연결이 설정된 경우에는

// 이곳에서 자동으로 DB연결이 해제됩니다.

oGBasePage.Release();

}

}

 

 

사용예제2) GAUCE for .NET 5.0 이후

 

finally{

// GauceBasePage객체를 해제합니다.

// 가우스 클라이언트에서 요청한 결과를 전송합니다. DB연결이

// 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

oGBasePage.Release();

}

 

 

·      initGaucePage (+4개 오버로드)

GauceBasePage 객체가 래핑하는 각 객체들을 생성하고, 초기화 작업을 수행한다.

void initGaucePage(string strDomain)

void initGaucePage(string strDomain, int nEncodeType)

void initGaucePage(string strDomain, int nEncodeType,

                  int nPacketType, bool bCompress, int nFirstRowSize)

 

// GAUCE for .NET 4.0.1부터 지원 – Enum Type 파라미터

void initGaucePage(string strDomain,

                   GauceVariable.PacketEncodingType enmEncodeType)

void initGaucePage(string strDomain,

                   GauceVariable.PacketEncodingType enmEncodeType,

GauceVariable.ResponsePacketType enmPacketType,

                   bool bCompress, int nFirstRowSize)

 

 

Parameter 명

설명

string strDomain

도메인의 이름을 입력한다. 여기서 입력한 도메인 이름으로 해당 Configuration file을 참조하여 서비스 환경을 구축한다.

int nEncodeType

클라이언트 DataSet 콤포넌트와 상호 교환되는 컬럼데이터의 인코드타입을 지정한다. (GauceDefine 값 사용) 기본 값은 GauceDefine.RESPONSE_CODE_ANSI(0) 이다.

[인코드타입의 index 정의(GauceDefine)]

RESPONSE_CODE_ANSI       0

RESPONSE_CODE_UTF8       1

RESPONSE_CODE_UNICODE    2

RESPONSE_CODE_UNICODEBIG 3 (현재는 지원되지 않음)

int nPacketType

송신할 패킷의 타입을 지정한다. (GauceDefine 값 이용)

[송신할 패킷의 index 정의(GAUCE DEFINE)]

GauceDefine.CSV30_FORMAT 1

GauceDefine.BIN_FORMAT   2

GauceDefine.CSV_FORMAT   3

bool bCompress

송신할 패킷의 압축여부를 지정한다.

int nFirstRowSize

송신할 패킷의 퍼스트로우 사이즈를 지정한다.

nFirstRowSize에 정의된 Row사이즈 단위 만큼씩 잘라서 클라이언트로 전송하게 된다. 0 일경우는 모든 데이터 패킷을 한꺼번에 전송하는 All Row 방식이 된다. -1 일경우에는 Gauce System이 자동으로 퍼스트로우 사이즈를 최적화하게 된다.

GauceVariable.PacketEncodingType enmEncodeType

클라이언트 DataSet 콤포넌트와 상호 교환되는 컬럼데이터의 인코드타입을 지정한다. (GauceVariable 사용)

[GAUCE VARIABLE의 PacketEncodingType 열거형 값]

GauceVariable.PacketEncodingType.NORMAL  :ANSI

GauceVariable.PacketEncodingType.UTF8    :UTF8

GauceVariable.PacketEncodingType.UNICODE1:UTF-16

GauceVariable.PacketEncodingType.UNICODE_BIG

  :UTF-16 BigEndian

GauceVariable.ResponsePacketType enmPacketType

송신할 패킷의 타입을 지정한다. (GauceVariable 사용)

[GAUCE VARIABLE의 ResponsePacketType 값]

GauceVariable.ResponsePacketType.CSV30 :응용 CSV 패킷

GauceVariable.ResponsePacketType.BINARY:Binary 패킷

GauceVariable.ResponsePacketType.CSV   :순수 CSV 패킷

 

사용예제1) 기본정의

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage ("default",

GauceDefine.RESPONSE_CODE_UTF8,

GauceDefine.BIN_FORMAT,

false,

-1);

 

사용예제2) GAUCE for .NET 4.0.1에서 새롭게 추가된 GauceVariable 사용 예

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage ("default",

GauceVariable.PacketEncodingType.NORMAL, GauceVariable.ResponsePacketType.BINARY

false,

-1 );

 

·      getIntParam (+1개 오버로드)

Get방식으로 전송된 HTTP Request Parameter값을 추출하여 Int 값으로 리턴해준다.

int getIntParam(string paramName)

int getIntParam(string paramName, int defaultValue)

 

Parameter 명

설명

string paramName

추출할 파라미터값의 키가 되는 파라미터 이름이다.

int defaultValue

파라미터값이 존재하지 않는 경우 적용할 디폴트 값을 지정한다.

 

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage("default”);

 

if ( oGBasePage.getIntParam("RequestIntData") == 1234)

{

   ………………………

}

 

·      getShortParam (+1개 오버로드)

Get방식으로 전송된 HTTP Request Parameter값을 추출하여 Short 값으로 리턴해준다.

short getShortParam(string paramName)

short getShortParam(string paramName, short defaultValue)

 

Parameter 명

설명

string paramName

추출할 파라미터값의 키가 되는 파라미터 이름이다.

int defaultValue

파라미터값이 존재하지 않는 경우 적용할 디폴트 값을 지정한다.

 

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage("default”);

 

if ( oGBasePage. getShortParam ("RequestShortData") == 10)

{

   ………………………

}

 

·      getStringParam (+1개 오버로드)

Get방식으로 전송된 HTTP Request Parameter값을 추출하여 String 값으로 리턴해준다.

string getStringParam (string paramName)

string getStringParam (string paramName, short defaultValue)

 

Parameter 명

설명

string paramName

추출할 파라미터값의 키가 되는 파라미터 이름이다.

int defaultValue

파라미터값이 존재하지 않는 경우 적용할 디폴트 값을 지정한다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage("default”);

 

if ( oGBasePage.getStringParam ("RequestStringData") == “1234”)

{

   ………………………

}

else if (oGBasePage.getStringParam ("RequestStringData", “빈값”) != “빈값”)

{

   ………………………

}

 

·      getIntFormParam

POST 방식으로 전송된 HTTP Request의 Form Parameter값을 추출하여 Int값으로 리턴해준다.

int getIntFormParam(string paramName)

 

Parameter 명

설명

string paramName

추출할 파라미터값의 키가 되는 파라미터 이름이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage("default”);

if ( oGBasePage.getIntFormParam ("RequestIntFormData") == 1234){

   ………………………

}

 

·      getStringFormParam

POST 방식으로 전송된 HTTP Request의 Form Parameter값을 추출하여 String 값으로 리턴해준다.

string getStringFormParam(string paramName)

 

Parameter 명

설명

string paramName

추출할 파라미터값의 키가 되는 파라미터 이름이다.

 

사용예제)

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage("default”);

 

if ( oGBasePage.getStringFormParam("RequestStringFormData") == “1234”)

{

   ………………………

}

 

 

·      getStringGauceParam

GAUCE Tr component의 Parameters속성으로 정의하여 전송된 Parameter값을 추출하여 String 값으로 리턴해준다.

string getGauceStringParam (string paramName)

 

Parameter 명

설명

string paramName

추출할 파라미터값의 키가 되는 파라미터 이름이다.

 

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

oGBasePage.initGaucePage("default”);

 

if ( oGBasePage.getGauceStringParam ("RequestData") == “GAUCE_NET_TR_DATA”)

{

   ………………………

}

 

·      addMessage

클라이언트로 전송할 메시지 만들고 축적한다. 가우스 콤포넌트의 요청이 아닌경우에는 메시지가 생성되지 않는다.

void addMessage(string stErrorType, string stErrorCode,

                string stErrorMessage)

 

Parameter 명

설명

string stErrorType

클라이언트에서 구분할 메시지타입을 입력한다.

(예: “System”, “User”, “Etc”, …)

string stErrorCode

메시지코드값을 입력한다.

string stErrorMessage

메시지을 입력한다.

 

사용예제)

 

printMessage 예제를 참조 해 주십시오.

 

 

·      addMessage2

클라이언트로 전송할 메시지 만들고 축적한다. 가우스 콤포넌트의 요청이 아닌경우에는 메시지가 생성되지 않는다.

assMessage 메소드와 기능은 동일하며, 다만 입력되는 첫번째 파라미터의 형태만 GauceVariable을 사용하는 것이 다르다. (GAUCE for .NET 4.0.1 버전부터 적용)

void addMessage2 (GauceVariable.MessageType enmErrorType,

                  string stErrorCode, string stErrorMessage)

 

Parameter 명

설명

GauceVariable.MessageType enmErrorType

클라이언트에서 구분할 메시지타입을 입력한다.

string stErrorCode

메시지코드값을 입력한다.

string stErrorMessage

메시지을 입력한다.

 

사용예제)

 

printMessage 예제를 참조 해 주십시오.

 

 

 

·      setResult

Message를 전송하기전에 작업이 성공인지 실패인지를 지정한다.가우스 콤포넌트의 요청이 아닌경우에는 리턴된다.여러 번 지정한 경우는 최종적으로 지정한 값으로 갱신된다.

void setResult(bool bIsSuccess)

 

Parameter 명

설명

bool bIsSuccess

작업의 성공/실패 여부를 지정한다.

 

사용예제)

 

printMessage 예제를 참조 해 주십시오.

 

 

·      getResult

Transaction 작업에서 작업이 성공인지 실패인지 결과를 얻어온다.

GAUCE for .NET 4.0.1 버전부터 지원한다.

bool getResult ()

 

Parameter 명

설명

반환값

작업의 성공/실패 여부를 반환한다.

 

사용예제)

 

printMessage 예제를 참조 해 주십시오.

 

 

·      printMessage

메시지(서비스 수행결과)를 클라이언트로 송신한다. 이 메소드 호출은 Aspx서비스 내에서 단 한번만 이루어져야 한다. 가우스 콤포넌트의 요청이 아닌경우에는 리턴된다.

주의) GAUCE for .NET 5.0부터는 사용되지 않는다.

void printMessage ()

 

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

bool bPrintResult == false;

 

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

if(oGBasePage.getGauceStringParam("RequestData")=="GAUCE_NET_TR_DATA"){

   bPrintResult == true;

       oGBasePage.addMessage(“User”, 70001, “사용자 메시지 작업수행”);

       oGBasePage.setResult(true);

}

}

catch (Exception except)

{

        //oGBasePage.addMessage("System", "90001", except.Message);

          oGBasePage.addMessage2(GauceVariable.MessageType.System, "90001",

                                 except.Message);

    oGBasePage.setResult(false);

}

finally

{

    // 서비스 객채를 해제한다.

    if(bPrintResult == true) {

        oGBasePage.printMessage();

        oGBasePage.Release(true);

    }

    else

        oGBasePage.Release();

}

 

·      commonSelect (+5개 오버로드)

Get방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과데이터셋을 클라이언트로 전송한다.

쿼리문에 파라미터가 포함된 경우에는 오버로드된 메소드를 이용한다.

이 메소드는 기존 3.0 버전에서 조회서비스 작성시에 GauceDataSet을 생성하고(newDataSet), DataSet Header를 생성(addDataColumn)하여, 연결된 DB에 대하여 DB를 Open하여 쿼리문을 수행(ExecuteReader)하고 결과셋을 생성된 Gauce DataSet에 Fill(addDataRowValue, addDataRow)하여 클라이언트로 전송(GauceDataSet.end) 하는 과정을 자동화한 메소드 이다.

void commonSelect(GauceConnection oGaConn, string strSql)

void commonSelect(GauceConnection oGaConn, string strSql,

                  SortedList lparam)

void commonSelect(GauceConnection oGaConn, string strSql,

                  SortedList lparam, object oTransaction)

void commonSelect(string strDataSetName, GauceConnection oGaConn,

                  string strSql)

void commonSelect(string strDataSetName, GauceConnection oGaConn,

                  string strSql, SortedList lparam)

void commonSelect(string strDataSetName, GauceConnection oGaConn,

                  string strSql, SortedList lparam, object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기

                 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다. 이 값은

                GauceDefine에 정의돤 값을 이용한다.

[ProviderType index 정의(GAUCE DEFINE 값)]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP  4  // Ver 5.0 부터 지원

- ConnectionString: 실제 DB연결 정보를 가진

                   스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 기본값은

                  120초이다.

string strSql

DB 쿼리문을 지정한다.

SortedList lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

이때 DB Provider가 OLEDB인 경우에는 파라미터 이름과 순서에 특별히 주의를 기울여야만 한다. 파라미터 이름은 Add 한 정렬순서가 바뀌지 않도록 지정해 주어야 한다. 예를들면, 다음과 같이 지정해 주면될 것이다.

예1) 올바른 예

SortedList param = new SortedList();

param.Add("param1",oGBasePage.getStringParam("empid"));

param.Add("param2",oGBasePage.getStringParam("empname"));

param.Add("param3",

                 oGBasePage.getStringParam("empaddress"));

 

예2) 잘못 정의한 예

SortedList param = new SortedList();

param.Add("empid", oGBasePage.getStringParam("empid"));

param.Add("empname",oGBasePage.getStringParam("empname"));

param.Add("empaddress",

                 oGBasePage.getStringParam("empaddress"));

 

위와 같이 파라미터를 지정하게 되면 Add한 순서는 empid, empname, empaddress 이지만, SortedList에 저장된 순서는 empaddress, empid, empname 순으로 바뀌게 되어 엉뚱한 결과를 가져오게 된다.

한편, param.Add에서param의 value값은 실제 DB에 입력될 필드타입에 따라 Convert 되어야할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert해 주어야만 한다.

param.Add("param1",Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

string strDataSetName

commonSelect는 DataSetName을 지정하지 않는 경우는 디폴트로 “output1”이라는 DataSet이 생성된다. strDataSetName은 디폴트 이외의 이름으로 데이터셋을 생성할 경우 사용한다.

 

사용예제)

bool bPrintResult == false;

string SelectSql = null;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try {

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// IDbConnection 인터페이스를 이용하여 DB Provider 종류에 상관없이

// Transaction 객체를 선언합니다.

IDbTransaction oTr = null;

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA"){

bPrintResult = true;

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection  

             (conn1", GauceVariable.DbProviderType.MSSQL, null, 0);

SelectSql = "select * from emp where empid = @param1";

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다.

oTr = oConn.beginTransaction();

        oGBasePage.commonSelect (oConn, SelectSql, param, oTr);

}

}

catch (Exception except){

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally{

    if(bPrintResult == true) {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null) {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

        // GauceBasePage객체를 해제합니다. Release의 파리미터값이 true인

        // 경우는 화면코드가 클라이언트로 전송되지 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else {

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

·      commonSelect2 (+3개 오버로드)

Get방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과데이터셋을 클라이언트로 전송한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값 뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

void commonSelect2(GauceConnection oGaConn, string strSql,

                   GauceParameter lparam)

void commonSelect2(GauceConnection oGaConn, string strSql,

                   GauceParameter lparam, object oTransaction)

void commonSelect2(string strDataSetName, GauceConnection oGaConn,

                   string strSql,GauceParameter lparam)

void commonSelect2(string strDataSetName, GauceConnection oGaConn,

               string strSql, GauceParameter lparam, object oTransaction)

 

Parameter 명

설명

GauceParameter lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터 값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

사용예제)

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname",

                    oGBasePage.getStringParam("empname"));

oGparam.add("empaddress",

                  oGBasePage.getStringParam("empaddress"));

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1", Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

 

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",

                  oGBasePage.getStringParam("hiredata"),

                  GauceVariable.DbType.DateTime);

 

사용예제)

 

bool bPrintResult == false;

string SelectSql = null;

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// Transaction start

IDbTransaction oTr = null;

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA"){

bPrintResult = true;

 

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SelectSql = "select * from emp where empid = @empid";

 

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다.

oTr = oConn.beginTransaction();

        oGBasePage.commonSelect2 (oConn, SelectSql, oGparam, oTr);

}

}

catch (Exception except){

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally{

    if(bPrintResult == true) {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null) {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

 

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 true인 경우는 화면코드가 클라이언트로

        // 전송되지 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else{

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

·      commonSelect_byDataSet (+2개 오버로드)

Get방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과 데이터셋을 클라이언트로 전송한다. 쿼리문에 파라미터가 포함된 경우에는 오버로드된 메소드를 이용한다.

이 메소드는 기존 3.0 버전에서 조회서비스 작성시에 연결된 DB에 대하여 DB를 Open하여 쿼리문을 수행(ExecuteReader)하고 결과셋을 입력된 Gauce DataSet에 Fill(addDataRowValue, addDataRow)하여 클라이언트로 전송(GauceDataSet.end) 하는 과정을 자동화한 메소드 이다.

이 메소드는 주로 클라이언트로 전송할 데이터셋의 특정컬럼을 추가 또는 변경하는 작업이 필요한 경우에 사용한다.

void commonSelect_byDataSet (GauceConnection oGaConn,

GauceDataSet GauceDS, string strSql)

void commonSelect_byDataSet (GauceConnection oGaConn,

GauceDataSet GauceDS,

string strSql, SortedList lparam)

void void commonSelect_byDataSet (GauceConnection oGaConn,

GauceDataSet GauceDS, string strSql,

                               SortedList lparam, object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[ProviderType index값(GAUCE DEFINE 값)]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP  4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

GauceDataSet GauceDS

쿼리결과셋을 데이터를 저장할 GauceDataSet 객체를 지정한다.

string strSql

DB 쿼리문을 지정한다.

SortedList lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

 

사용예제)

 

bool bPrintResult == false;

string SelectSql = null;

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

 

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// Transaction start

IDbTransaction oTr= null;

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA" )

{

bPrintResult = true;

 

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SelectSql = "select * from emp where empid = @param1";

 

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다.

oTr = oConn.beginTransaction();

 

// Gauce DataSet을 생성한다.

GauceDataSet oDataSet = oGBasePage.GauceService.newDataSet(“output1”);

// 타입 또는 사이즈 변경등을 원하는 컬럼에 대해서만 해더를 수정한다.

oDataSet.addChangingDataColumn(“name”, GauceDefine.TB_URL);

       

oGBasePage.commonSelect_byDataSet (oConn, oDataSet, SelectSql,

                                param, oTr);

}

}

catch (Exception except)

{

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally

{

    if(bPrintResult == true)

    {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null)

        {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

 

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 true인 경우는 화면코드가 클라이언트로 전송되지

// 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else

     {

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

·      commonSelect_byDataSet2 (+1개 오버로드)

Get방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과데이터셋을 클라이언트로 전송한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값 뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

void commonSelect_byDataSet2 (GauceConnection oGaConn,

GauceDataSet GauceDS,

string strSql,GauceParameter lparam)

void commonSelect_byDataSet2 (GauceConnection oGaConn,

GauceDataSet GauceDS,string strSql,

                              GauceParameter lparam,object oTransaction)

 

Parameter 명

설명

GauceParameter lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터 값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

예1)

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid",

               oGBasePage.getStringParam("empid"));

oGparam.add("empname",

               oGBasePage.getStringParam("empname"));

oGparam.add("empaddress",

               oGBasePage.getStringParam("empaddress"));

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1",

Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",oGBasePage.getStringParam("hiredata"),

            GauceVariable.DbType.DateTime);

 

사용예제)

bool bPrintResult == false;

string SelectSql = null;

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// IDbConnection 인터페이스를 이용하여DB Provider 종류에 상관없이

// Transaction 객체를 선언합니다.

IDbTransaction oTr = null;

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA" )

{

bPrintResult = true;

 

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SelectSql = "select * from emp where empid=@ empid";

 

GauceParameter GauceParameter = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다.

oTr = oConn.beginTransaction();

 

// Gauce DataSet을 생성한다.

GauceDataSet oDataSet =

                   oGBasePage.GauceService.newDataSet(“output1”);

// 타입 또는 사이즈 변경등을 원하는 컬럼에 대해서만 해더를 수정한다.

oDataSet.addChangingDataColumn2(“name”,

                            GauceVariable.ColumnDataType.URL);       

oGBasePage.commonSelect_byDataSet2(oConn, oDataSet, SelectSql,

                                  oGparam, oTr);

}

}

catch (Exception except)

{

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally

{

    if(bPrintResult == true)

    {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null)

        {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 true인 경우는 화면코드가 클라이언트로

        // 전송되지 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else

     {

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

·      postSelect (+2개 오버로드)

POST 방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과데이터셋을 클라이언트로 전송한다. 쿼리문에 파라미터가 포함된 경우에는 오버로드된 메소드를 이용한다.

이 메소드는 기존 3.0 버전에서 조회서비스 작성시에 GauceDataSet을 생성하고(newDataSet), DataSet Header를 생성(addDataColumn)하여, 연결된 DB에 대하여 DB를 Open하여 쿼리문을 수행(ExecuteReader)하고 결과셋을 생성된 Gauce DataSet에 Fill(addDataRowValue, addDataRow)하여 클라이언트로 전송(GauceDataSet.end) 하는 과정을 자동화한 메소드 이다.

void postSelect(GauceConnection oGaConn, string strDataSetName,

               string strSql)

void postSelect(GauceConnection oGaConn, string strDataSetName,

               string strSql, SortedList lparam)

void postSelect(GauceConnection oGaConn, string strDataSetName,

               string strSql, SortedList lparam, object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string strDataSetName

결과 데이터를 담을 GauceDataSet 이름을 지정한다. 이 이름은 클라이언트의 Tr 콤포넌트에서 지정한 서버쪽 DataSet이름이다. 즉, Tr 콤포넌트에서 다음과 같이 지정했다면 ASPX(O:output1=ga_dataset) ‘output1’으로 지정해야 한다.

string strSql

DB 쿼리문을 지정한다.

SortedList lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

이때 DB Provider가 PROVIDERTYPE_OLEDB인 경우에는 파라미터 이름과 순서에 특별히 주의를 기울여야만 한다. 파라미터 이름은 Add 한 정렬순서가 바뀌지 않도록 지정해 주어야 한다.

예를들면, 다음과 같이 지정해 주면될 것이다.

예1)

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

param.Add("param2", oGBasePage.getStringParam("empname"));

param.Add("param3",  

                oGBasePage.getStringParam("empaddress"));

 

다음의 예는 잘못 지정한 예이다.

예2)

SortedList param = new SortedList();

param.Add("empid", oGBasePage.getStringParam("empid"));

param.Add("empname",oGBasePage.getStringParam("empname"));

param.Add("empaddress",

                 oGBasePage.getStringParam("empaddress"));

위와 같이 파라미터를 지정하게 되면 Add한 순서는 empid, empname, empaddress 이지만, SortedList에 저장된 순서는 empaddress, empid, empname 순으로 바뀌게 되어 엉뚱한

결과를 가져오게 된다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

 

사용예제)

bool bPrintResult == false;

string SelectSql = null;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// Transaction start

SqlTransaction oTr = null;

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA" )

{

bPrintResult = true;

 

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SelectSql = "select * from emp where id=?";

 

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다. DB Provider에 맞도록 캐스팅합니다.

oTr = (SqlTransaction) oConn.beginTransaction();

 

        oGBasePage.postSelect (oConn, “output1”, SelectSql, param, oTr);

}

}

catch (Exception except)

{

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally

{

    if(bPrintResult == true)

    {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null)

        {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

 

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 true인 경우는 화면코드가 클라이언트로

         // 전송되지 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else

     {

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

·      postSelect2 (+1개 오버로드)

POST 방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과데이터셋을 클라이언트로 전송한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

 

void postSelect2(GauceConnection oGaConn, string strDataSetName,

                 string strSql, GauceParameter lparam)

void postSelect2(GauceConnection oGaConn, string strDataSetName,

              string strSql, GauceParameter lparam, object oTransaction)

 

Parameter 명

설명

GauceParameter lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터 값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname",

                  oGBasePage.getStringParam("empname"));

oGparam.add("empaddress",

                oGBasePage.getStringParam("empaddress"));

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1", Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",oGBasePage.getStringParam("hiredata"),

            GauceVariable.DbType.DateTime);

 

사용예제)

bool bPrintResult == false;

string SelectSql = null;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try {

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// IDbConnection 인터페이스를 이용하여DB Provider 종류에 상관없이

// Transaction 객체를 선언합니다.

IDbTransaction oTr = null;

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA"){

bPrintResult = true;

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

SelectSql = "select * from emp where empid = @empid";

 

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다.

oTr = oConn.beginTransaction();

 

        oGBasePage.postSelect2 (oConn, “output1”, SelectSql, oGparam, oTr);

}

}

catch (Exception except)

{

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally

{

    if(bPrintResult == true)

    {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null)

        {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

 

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 true인 경우는 화면코드가 클라이언트로

        // 전송되지 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else

     {

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

 

·      postSelect_byDataSet (+2개 오버로드)

POST 방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과데이터셋을 클라이언트로 전송한다.

쿼리문에 파라미터가 포함된 경우에는 오버로드된 메소드를 이용한다.

이 메소드는 기존 3.0 버전에서 조회서비스 작성시에 연결된 DB에 대하여 DB를 Open하여 쿼리문을 수행(ExecuteReader)하고 결과셋을 입력된 Gauce DataSet에 Fill(addDataRowValue, addDataRow)하여 클라이언트로 전송(GauceDataSet.end) 하는 과정을 자동화한 메소드 이다.

이 메소드는 주로 클라이언트로 전송할 데이터셋의 특정컬럼을 추가 또는 변경하는 작업이 필요한 경우에 사용한다.

 

void postSelect_byDataSet (GauceConnection oGaConn,

                           GauceDataSet GauceDS, string strSql)

void postSelect_byDataSet (GauceConnection oGaConn,

                           GauceDataSet GauceDS, string strSql,

                           SortedList lparam)

void void postSelect_byDataSet (GauceConnection oGaConn,

GauceDataSet GauceDS, string strSql,

                               SortedList lparam, object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string strDataSetName

결과 데이터를 담을 GauceDataSet 이름을 지정한다. 이 이름은 클라이언트의 Tr 콤포넌트에서 지정한 서버쪽 DataSet이름이다. 즉, Tr 콤포넌트에서 다음과 같이 지정했다면 ASPX(O:output1=ga_dataset) ‘output1’으로 지정해야 한다.

string strSql

DB 쿼리문을 지정한다.

SortedList lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

이때 DB Provider가 PROVIDERTYPE_OLEDB인 경우에는 파라미터 이름과 순서에 특별히 주의를 기울여야만 한다. 파라미터 이름은 Add 한 정렬순서가 바뀌지 않도록 지정해 주어야 한다.

예를들면, 다음과 같이 지정해 주면될 것이다.

예1)

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

param.Add("param2", oGBasePage.getStringParam("empname"));

param.Add("param3",  

                oGBasePage.getStringParam("empaddress"));

 

다음의 예는 잘못 지정한 예이다.

예2)

SortedList param = new SortedList();

param.Add("empid", oGBasePage.getStringParam("empid"));

param.Add("empname",oGBasePage.getStringParam("empname"));

param.Add("empaddress",

                 oGBasePage.getStringParam("empaddress"));

위와 같이 파라미터를 지정하게 되면 Add한 순서는 empid, empname, empaddress 이지만, SortedList에 저장된 순서는 empaddress, empid, empname 순으로 바뀌게 되어 엉뚱한

결과를 가져오게 된다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

 

사용예제)

bool bPrintResult == false;

string SelectSql = null;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// IDbConnection 인터페이스를 이용하여 DB Provider 종류에 상관없이

// Transaction 객체를 선언합니다.

IDbTransaction oTr = null;

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA")

{

bPrintResult = true;

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SelectSql = "select * from emp where empid = @param1";

 

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다.

oTr = oConn.beginTransaction();

 

// Gauce DataSet을 생성한다.

GauceDataSet oDataSet =

                 oGBasePage.GauceService.newDataSet(“output1”);

// 타입 또는 사이즈 변경등을 원하는 컬럼에 대해서만 해더를 수정한다.

oDataSet.addChangingDataColumn2("name",

                             GauceVariable.ColumnDataType.URL);

       

oGBasePage.postSelect_byDataSet (oConn, oDataSet, SelectSql,

                                 param, oTr);

}

}

catch (Exception except)

{

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally

{

    if(bPrintResult == true)

    {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null)

        {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

 

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 true인 경우는 화면코드가 클라이언트로 전송되지

// 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else

     {

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

·      postSelect_byDataSet2 (+1개 오버로드)

POST 방식의 요청을 연결된 DB Connection에 대하여 쿼리문을 수행하여 결과데이터셋을 클라이언트로 전송한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

 

void postSelect_byDataSet (GauceConnection oGaConn,

                GauceDataSet GauceDS,string strSql,GauceParameter lparam)

void postSelect_byDataSet (GauceConnection oGaConn, GauceDataSet GauceDS,

                string strSql,GauceParameter lparam,object oTransaction)

 

Parameter 명

설명

GauceParameter lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터 값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname",

                  oGBasePage.getStringParam("empname"));

oGparam.add("empaddress",

                oGBasePage.getStringParam("empaddress"));

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1", Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",oGBasePage.getStringParam("hiredata"),

            GauceVariable.DbType.DateTime);

 

사용예제)

bool bPrintResult == false;

string SelectSql = null;

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// IDbConnection 인터페이스를 이용하여DB Provider 종류에 상관없이

// Transaction 객체를 선언합니다.

IDbTransaction oTr = null;

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA")

{

bPrintResult = true;

GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SelectSql = "select * from emp where empid = @empid";

 

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid ", oGBasePage.getStringParam("empid"));

 

// Transaction을 시작합니다.

oTr = oConn.beginTransaction();

 

// Gauce DataSet을 생성한다.

GauceDataSet oDataSet=

                   oGBasePage.GauceService.newDataSet(“output1”);

// 타입 또는 사이즈 변경등을 원하는 컬럼에 대해서만 헤더를

// 수정한다.

oDataSet.addChangingDataColumn2("name",

                               GauceVariable.ColumnDataType.URL);

       

oGBasePage.postSelect_byDataSet (oConn, oDataSet, SelectSql,

                               oGparam, oTr);

}

}

catch (Exception except)

{

    oGBasePage.addMessage("System", "90001", except.Message);

    oGBasePage.setResult(false);

}

finally

{

    if(bPrintResult == true)

    {

        // printMessage() 이전에 처리해 줍니다.

        if(oTr != null)

        {

            if (oGBasePage.getResult())

                oTr.Commit();

            else

                oTr.Rollback();

        }

// 클라이언트로 작업결과를 전송합니다.

        oGBasePage.printMessage();

 

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 true인 경우는 화면코드가 클라이언트로 전송되지

// 않습니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

        oGBasePage.Release(true);

     }

     else

     {

        // GauceBasePage객체를 해제합니다.

        // Release의 파리미터값이 false(또는 지정하지 않음)인 경우는 화면코드가

// 클라이언트로 전송됩니다.

        // DB연결이 설정된 경우에는 이곳에서 자동으로 DB연결이 해제됩니다.

         oGBasePage.Release();

     }

}

 

 

·      multiSelect (+1개 오버로드)

여러 개의 조회 서비스작업을 하나의 서비스에서 처리할 수 있도록 지원하는 메소드이다. 각 파라미터는 배열형태로 되어 있으며, 조회 서비스의 개수만큼 모든 파라미터들은 같은 배열크기를 선언하여 사용한다.

void multiSelect(GauceConnection [] oaGaConn, string [] staDataSetName,

string [] staSql)

void multiSelect(GauceConnection [] oaGaConn, string [] staDataSetName,

                 string [] staSql, SortedList [] alparam)

 

Parameter 명

설명

GauceConnection[] oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string[] strDataSetName

결과 데이터를 담을 GauceDataSet 이름을 지정한다. 이 이름은 클라이언트의 Tr 콤포넌트에서 지정한 서버쪽 DataSet이름이다. 즉, Tr 콤포넌트에서 다음과 같이 지정했다면 ASPX(O:output1=ga_dataset) ‘output1’으로 지정해야 한다.

string[] strSql

DB 쿼리문을 지정한다.

SortedList[] lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

이때 DB Provider가 PROVIDERTYPE_OLEDB인 경우에는 파라미터 이름과 순서에 특별히 주의를 기울여야만 한다. 파라미터 이름은 Add 한 정렬순서가 바뀌지 않도록 지정해 주어야 한다.

예를들면, 다음과 같이 지정해 주면될 것이다.

예1)

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

param.Add("param2", oGBasePage.getStringParam("empname"));

param.Add("param3",                 oGBasePage.getStringParam("empaddress"));

 

다음의 예는 잘못 지정한 예이다.

예2)

SortedList param = new SortedList();

param.Add("empid", oGBasePage.getStringParam("empid"));

param.Add("empname",oGBasePage.getStringParam("empname"));

param.Add("empaddress",                 oGBasePage.getStringParam("empaddress"));

위와 같이 파라미터를 지정하게 되면 Add한 순서는 empid, empname, empaddress 이지만, SortedList에 저장된 순서는 empaddress, empid, empname 순으로 바뀌게 되어 엉뚱한 결과를 가져오게 된다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

Try {

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA")

{

string [] staSql = {null, null};

string [] staDataSet = {“output1”, “output2”};

bPrintResult = true;

 

GauceConnection [] oaConn = {null, null};

oaConn[0] = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

oaConn[1] = oGBasePage.GauceDbHelper.addConnection (

"conn2",

GauceVariable.DbProviderType.OLEDB,

null,

300);

 

staSql[0] = "select * from emp where empid = @param1";

staSql[1] = "select * from jobs where jobid = ?";

 

SortedList [] htaParam = {new SortedList(), new SortedList()};

htaParam[0].Add("param1", oGBasePage.getStringParam("empid"));

htaParam[1].Add("param1", oGBasePage.getStringParam("jobid"));

 

oGBasePage.multiSelect (oaConn, staDataSet, staSql, htaParam);

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

 

·      multiSelect2

여러 개의 조회 서비스작업을 하나의 서비스에서 처리할 수 있도록 지원하는 메소드이다. 각 파라미터는 배열형태로 되어 있으며, 조회 서비스의 개수만큼 모든 파라미터들은 같은 배열크기를 선언하여 사용한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

void multiSelect2(GauceConnection [] oaGaConn, string [] staDataSetName,

                  string [] staSql, GauceParameter [] alparam)

 

Parameter 명

설명

GauceParameter[] lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

예1)

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname", oGBasePage.getStringParam("empname"));

oGparam.add("empaddress", oGBasePage.getStringParam("empaddress"));

 

예2) GauceParameter 배열 형태

GauceParameter [] alparam =

              {new GauceParameter(), new GauceParameter()};

alparam[0].add("empname",

                      oGBasePage.getStringParam("ename"));

alparam[1].add("job_id",

                      oGBasePage.getStringParam("jobid"));

 

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1", Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",oGBasePage.getStringParam("hiredata"),

           GauceVariable.DbType.DateTime);

지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA")

{

string [] staSql = {null, null};

string [] staDataSet = {“output1”, “output2”};

bPrintResult = true;

 

GauceConnection [] oaConn = {null, null};

oaConn[0] = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

oaConn[1] = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.OLEDB,

null,

0);

staSql[0] = "select * from emp where ename = @empname";

staSql[1] = "select * from jobs where jobid = ?";

 

GauceParameter [] alparam = {new GauceParameter(),

                             new GauceParameter()};

alparam[0].Add("empname ", oGBasePage.getStringParam("ename"));

alparam[1].Add("jobid", oGBasePage.getStringParam("jobid"));

 

oGBasePage.multiSelect2(oaConn, staDataSet, staSql, alparam);

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

·      multiSelect_byDataSet (+1개 오버로드)

여러 개의 조회 서비스작업을 하나의 서비스에서 처리할 수 있도록 지원하는 메소드이다. 각 파라미터는 배열형태로 되어 있으며, 조회 서비스의 개수만큼 모든 파라미터들은 같은 배열크기를 선언하여 사용한다.

이 메소드는 주로 클라이언트로 전송할 데이터셋의 특정컬럼을 추가 또는 변경하는 작업이 필요한 경우에 사용한다.

void multiSelect_byDataSet(GauceConnection [] oaGaConn,

      GauceDataSet [] aDataSets, string [] staSql)

void multiSelect_byDataSet(GauceConnection [] oaGaConn,

      GauceDataSet [] aDataSets, string [] staSql, SortedList [] alparam)

 

Parameter 명

설명

GauceConnection[] oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string[] strDataSetName

결과 데이터를 담을 GauceDataSet 이름을 지정한다. 이 이름은 클라이언트의 Tr 콤포넌트에서 지정한 서버쪽 DataSet이름이다. 즉, Tr 콤포넌트에서 다음과 같이 지정했다면 ASPX(O:output1=ga_dataset) ‘output1’으로 지정해야 한다.

string[] strSql

DB 쿼리문을 지정한다.

SortedList[] lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

이때 DB Provider가 PROVIDERTYPE_OLEDB인 경우에는 파라미터 이름과 순서에 특별히 주의를 기울여야만 한다. 파라미터 이름은 Add 한 정렬순서가 바뀌지 않도록 지정해 주어야 한다.

예를들면, 다음과 같이 지정해 주면될 것이다.

예1)

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

param.Add("param2", oGBasePage.getStringParam("empname"));

param.Add("param3",                 oGBasePage.getStringParam("empaddress"));

 

다음의 예는 잘못 지정한 예이다.

예2)

SortedList param = new SortedList();

param.Add("empid", oGBasePage.getStringParam("empid"));

param.Add("empname",oGBasePage.getStringParam("empname"));

param.Add("empaddress",                 oGBasePage.getStringParam("empaddress"));

위와 같이 파라미터를 지정하게 되면 Add한 순서는 empid, empname, empaddress 이지만, SortedList에 저장된 순서는 empaddress, empid, empname 순으로 바뀌게 되어 엉뚱한 결과를 가져오게 된다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA")

{

string [] staDataSet = {“output1”, “output2”};

string [] staSql = {null, null};

bPrintResult = true;

 

GauceConnection [] oaConn = {null, null};

oaConn[0] = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

oaConn[1] = oGBasePage.GauceDbHelper.addConnection (

"conn2",

GauceVariable.DbProviderType.OLEDB,

null,

300);

 

staSql[0] = "select * from emp where empid = @param1";

staSql[1] = "select * from jobs where jobid = ?";

 

SortedList [] aParam = {new SortedList(), new SortedList()};

aParam[0].Add("param1", oGBasePage.getStringParam("empid"));

aParam[1].Add("param2", oGBasePage.getStringParam("jobid"));

 

// Gauce DataSet을 생성한다.

GauceDataSet [] oaDataSet = {null, null};

oaDataSet[0] = oGBasePage.GauceService.newDataSet(“output1”);

oaDataSet[1] = oGBasePage.GauceService.newDataSet(“output2”);

// 타입 또는 사이즈 변경등을 원하는 컬럼에 대해서만 해더를 수정한다.

oaDataSet[0].addChangingDataColumn2(“name”,

                    GauceVariable.ColumnDataType.URL);

oaDataSet[1].addChangingDataColumn2(“description”,

                    GauceVariable.ColumnDataType.STRING, 120);

       

oGBasePage.multiSelect_byDataSet (oaConn, oaDataSet,

                                  staSql, aParam);

 

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

·      multiSelect_byDataSet2

여러 개의 조회 서비스작업을 하나의 서비스에서 처리할 수 있도록 지원하는 메소드이다. 각 파라미터는 배열형태로 되어 있으며, 조회 서비스의 개수만큼 모든 파라미터들은 같은 배열크기를 선언하여 사용한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

void multiSelect_byDataSet(GauceConnection [] oaGaConn,

  GauceDataSet [] aDataSets, string [] staSql, GauceParameter [] alparam)

 

Parameter 명

설명

GauceParameter[] lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

예1)

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname", oGBasePage.getStringParam("empname"));

oGparam.add("empaddress", oGBasePage.getStringParam("empaddress"));

 

예2) GauceParameter 배열 형태

GauceParameter [] alparam =

              {new GauceParameter(), new GauceParameter()};

alparam[0].add("empname",

                      oGBasePage.getStringParam("ename"));

alparam[1].add("job_id",

                      oGBasePage.getStringParam("jobid"));

 

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1", Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",oGBasePage.getStringParam("hiredata"),

           GauceVariable.DbType.DateTime);

지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData") == "GAUCE_NET_DATA")

{

string [] staDataSet = {“output1”, “output2”};

string [] staSql = {null, null};

bPrintResult = true;

 

GauceConnection [] oaConn = {null, null};

oaConn[1] = oaConn[0] = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null, 0);

 

staSql[0] = "select * from emp where name = @empname";

staSql[1] = "select * from jobs where jobid = @jobid";

 

GauceParameter [] alparam = {new GauceParameter(),

                             new GauceParameter()};

alparam[0].add("empname", oGBasePage.getStringParam("name"));

alparam[1].add("jobid ", oGBasePage.getStringParam("job_id"));

 

// Gauce DataSet을 생성한다.

GauceDataSet [] oaDataSet = {null, null};

oaDataSet[0] = oGBasePage.GauceService.newDataSet(“output1”);

oaDataSet[1] = oGBasePage.GauceService.newDataSet(“output2”);

//타입 또는 사이즈 변경등을 원하는 컬럼에 대해서만 해더를 수정한다.

oaDataSet[0].addChangingDataColumn2(“name”,

              GauceVariable.ColumnDataType.URL);

oaDataSet[1].addChangingDataColumn2(“description”,

              GauceVariable.ColumnDataType.STRING, 120);

       

oGBasePage.multiSelect_byDataSet2 (oaConn, oaDataSet, staSql,

                                 alparam);

}

}

catch (Exception except){

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally{

// 서비스 객채를 해제한다.

if(bPrintResult == true){

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

 

·      execNonQuery (+3개 오버로드)

Insert/Update/Delete 등의 Transaction 작업을 하는데 사용하는 메소드 이다.

반영된 로우 개수를 리턴한다.

int execNonQuery(GauceConnection oGaConn, string strQuery)

int execNonQuery(GauceConnection oGaConn, string strQuery,

                SortedList lparam)

int execNonQuery(GauceConnection oGaConn, string strQuery,

                SortedList lparam,object oTransaction)

int execNonQuery(GauceConnection oGaConn, string strQuery,

            SortedList lparam, object oTransaction, CommandType cmdType)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string strSql

DB 쿼리문을 지정한다.

SortedList lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

이때 DB Provider가 PROVIDERTYPE_OLEDB인 경우에는 파라미터 이름과 순서에 특별히 주의를 기울여야만 한다. 파라미터 이름은 Add 한 정렬순서가 바뀌지 않도록 지정해 주어야 한다.

예를들면, 다음과 같이 지정해 주면될 것이다.

예1)

SortedList param = new SortedList();

param.Add("param1", oGBasePage.getStringParam("empid"));

param.Add("param2", oGBasePage.getStringParam("empname"));

param.Add("param3",  

                oGBasePage.getStringParam("empaddress"));

 

다음의 예는 잘못 지정한 예이다.

예2)

SortedList param = new SortedList();

param.Add("empid", oGBasePage.getStringParam("empid"));

param.Add("empname",oGBasePage.getStringParam("empname"));

param.Add("empaddress",

                 oGBasePage.getStringParam("empaddress"));

위와 같이 파라미터를 지정하게 되면 Add한 순서는 empid, empname, empaddress 이지만, SortedList에 저장된 순서는 empaddress, empid, empname 순으로 바뀌게 되어 엉뚱한

결과를 가져오게 된다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

CommandType cmdType

Command객체의 명령타입을 지정한다. 이 메소드에서는 Text와 Table만을 지원한다. StoredProcedure를 사용하려면 execSelectStoredProcedure나 execTrStoredProcedure메소드를 이용하도록 한다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if(oGBasePage.getStringGauceParam("RequestData")=="GAUCE_NET_DATA_TR")

{

string strSql = null;

bPrintResult = true;

GauceConnection oaConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.OLEDB,

null,

0);

 

GauceDataSet oDataSet

                   = oGBasePage.GauceService.getDataSet("input1");

DataTable dtTable = oDataSet.Tables[0];

for(int i=0; i < dtTable.Rows.Count; i++){

DataRow drRow = dtTable.Rows[i];

// insert

if(oDataSet. isInsertRow(i)){

strSql = "insert into Grid2(sabun ,name , amt1 , amt2, chk, gubun ) values (?, ?, ?, ?, ?, ?)";

SortedList param = new SortedList();

param.Add ( "param1", drRow["sabun"]);

param.Add ( "param2", drRow["name"]);

param.Add ( "param3", drRow["amt1"]);

param.Add ( "param4", drRow["amt2"]);

param.Add ( "param5", drRow["chk"]);

param.Add ( "param6", drRow["gubun"]);

 

oGBasePage.execNonQuery(oConn, strSql, param);

}

// update

else if(oDataSet .isUpdateRow(i)) {

strSql = "update Grid2 set name=?, amt1=?, amt2=?, chk=?, gubun=? where sabun=?";

SortedList param = new SortedList();

param.Add ( "parm1", drRow["name"]);

param.Add ( "parm2", drRow["amt1"]);

param.Add ( "parm3", drRow["amt2"]);

param.Add ( "parm4", drRow["chk"]);

param.Add ( "parm5", drRow["gubun"]);

param.Add ( "parm6", drRow["sabun"]);

 

oGBasePage.execNonQuery(oConn, strSql, param);

}

// delete

else if(oDataSet.isDeleteRow(i)){

    strSql = "delete from Grid2 where sabun = ?";

    SortedList param = new SortedList();

    param.Add ( "parm1", drRow["sabun"]);

 

    oGBasePage.execNonQuery(oConn, strSql, param);

}

}

}

catch (Exception except){

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally{

// 서비스 객채를 해제한다.

if(bPrintResult == true){

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

·      execNonQuery2 (+3개 오버로드)

Insert/Update/Delete 등의 Transaction 작업을 하는데 사용하는 메소드 이다.

반영된 로우 개수를 리턴한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

int execNonQuery2(GauceConnection oGaConn, string strQuery)

int execNonQuery2(GauceConnection oGaConn, string strQuery,

GauceLib.GauceParameter lparam)

int execNonQuery2(GauceConnection oGaConn, string strQuery,

GauceLib.GauceParameter lparam,

object oTransaction)

int execNonQuery2(GauceConnection oGaConn, string strQuery,

GauceLib.GauceParameter lparam,

                  object oTransaction,CommandType cmdType)

 

Parameter 명

설명

GauceParameter lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터 값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname",

                  oGBasePage.getStringParam("empname"));

oGparam.add("empaddress",

                oGBasePage.getStringParam("empaddress"));

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1", Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",oGBasePage.getStringParam("hiredata"),

            GauceVariable.DbType.DateTime);

 

사용예제)

Bool bPrintResult == false;

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if(oGBasePage.getStringGauceParam("RequestData")=="GAUCE_NET_DATA_TR")

{

string strSql = null;

bPrintResult = true;

 

GauceConnection oaConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

GauceDataSet oDataSet =

                     oGBasePage.GauceService.getDataSet("input1");

DataTable dtTable = oDataSet.Tables[0];

 

for(int i=0; i < dtTable.Rows.Count; i++)

{

DataRow drRow = dtTable.Rows[i];

// insert

if(oDataSet.isInsertRow(i)){

strSql = "insert into Grid2(sabun ,name , amt1 , amt2, chk, gubun ) values (@sabun , @name , @amt1 , @amt2, @chk, @gubun)";

GauceParameter oGparam = new GauceParameter();

oGparam.add ("sabun", drRow["sabun"]);

oGparam.add ("name", drRow["name"]);

oGparam.add ("amt1", drRow["amt1"]);

oGparam.add ("amt2", drRow["amt2"]);

oGparam.add ("chk", drRow["chk"]);

oGparam.add ("gubun", drRow["gubun"]);

 

oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

// update

else if(oDataSet.isUpdateRow(i)) {

strSql = "update Grid2 set “+

“name=@name, amt1=@amt1, amt2=@amt2, chk= chk, gubun= gubun ”+ “where sabun=@sabun";

GauceParameter oGparam = new GauceParameter();

oGparam.add ("name", drRow["name"]);

oGparam.add ("amt1", drRow["amt1"]);

oGparam.add ("amt2", drRow["amt2"]);

oGparam.add ("chk", drRow["chk"]);

oGparam.add ("gubun", drRow["gubun"]);

oGparam.add ("sabun", drRow["sabun"]);

 

oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

// delete

else if(oDataSet. isDeleteRow(i)){

GauceParameter oGparam = new GauceParameter();

oGparam.add ("sabun", drRow["sabun"]);

 

    oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

}

}

catch (Exception except){

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally{

// 서비스 객채를 해제한다.

if(bPrintResult == true){

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

 

 

·      execSelectStoredProcedure

조회전용 스토어드 프로시져를 수행하는 메소드이다.

void execSelectStoredProcedure( GauceConnection oGaConn,

string strProcedureName, SortedList inputParam, SortedList outputParam,

  SortedList returnParam, object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string strProcedureName

스토어드프로시져 이름을 입력한다.

SortedList inputParam

Input용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

SortedList outputParam

output용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

SortedList returnParam

return용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA" )

{

bPrintResult = true;

GauceConnection oaConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SortedList inputParam = new SortedList();

inputParam.Add("empid", oGBasePage.getStringParam("empid"));

oGBasePage.execSelectStoredProcedure (oConn,

"LJH_PROC00",

inputParam,

null,

null,

null

);

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

·      execSelectStoredProcedure2

GAUCE for .NET 4.0 버전에서 사용하던 execSelectStoredProcedure 메소드와 기능은 동일하지만, SortedList 파라미터 대신 GAUCE for .NET 4.0.1버전에서 추가된 GauceParameter 클래스를 이용하여 DB 파라미터를 관리하고자 할 때 사용합니다.

GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

void execSelectStoredProcedure2(GauceConnection oGaConn,

string strProcedureName,

GauceParameter inputParam,

GauceParameter outputParam,

GauceParameter returnParam,

                                object oTransaction)

 

Parameter 명

설명

GauceParameter inputParam

Input용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

GauceParameter outputParam

output용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

GauceParameter returnParam

return용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA" ){

bPrintResult = true;

GauceConnection oaConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

GauceParameter inputParam = new GauceParameter();

inputParam.add("name",

oGBasePage.getStringParam("empname"), GauceVariable.DbType.String);

 

oGBasePage.execSelectStoredProcedure2(oConn,

"LJH_PROC00",

inputParam,

null, null, null);

}

}

catch (Exception except){

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally{

// 서비스 객채를 해제한다.

if(bPrintResult == true){

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

·      execSelectStoredProcedure_byDataSet (GAUCE for .NET 5.0 버전부터 지원)

   조회전용 스토어드 프로시져를 수행하는 메소드이다. 미리 정의된 GauceDataSet에 결과 셋을 담아올 때 사용한다.

void execSelectStoredProcedure_byDataSet ( GauceConnection oGaConn,

                                GauceDataSet oGaDataSet,

string strProcedureName,

SortedList inputParam,

SortedList outputParam,

SortedList returnParam,

                                object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

GauceDataSet oGaDataSet

프로시져 실행 결과를 담기 위해 미리 정의한 가우스 데이터셋 객체를 지정한다.

string strProcedureName

스토어드프로시져 이름을 입력한다.

SortedList inputParam

Input용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

SortedList outputParam

output용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

SortedList returnParam

return용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

 

 

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try {

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA" ){

GauceConnection oaConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

SortedList inputParam = new SortedList();

inputParam.Add("empid", oGBasePage.getStringParam("empid"));

 

GauceDataSet oGaDataSet =

                  oGBasePage.GauceService.newDataSet(“output1”);

oGaDataSet.addChangingDataColumn(“org_name”, “map_name”,

                  GauceDefine.TB_STRING, 24);

 

oGBasePage.execSelectStoredProcedure (oConn,

                                      oGaDataSet,

"LJH_PROC00",

inputParam,

null,null,null);

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

Finally

{

// 서비스 객채를 해제한다.

oGBasePage.Release();

}

 

·      execSelectStoredProcedure2_byDataSet (GAUCE for .NET 5.0 버전부터 지원)

GAUCE for .NET 4.0 버전에서 사용하던 execSelectStoredProcedure 메소드와 기능은 동일하지만, SortedList 파라미터 대신 GAUCE for .NET 4.0.1버전에서 추가된 GauceParameter 클래스를 이용하여 DB 파라미터를 관리하고자 할 때 사용합니다.

GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

미리 정의된 GauceDataSet에 결과 셋을 담아올 때 사용합니다.

void execSelectStoredProcedure2(GauceConnection oGaConn,

GauceDataSet oGaDataSet,

string strProcedureName,

GauceParameter inputParam,

GauceParameter outputParam,

GauceParameter returnParam,

                                object oTransaction)

 

Parameter 명

설명

GauceDataSet oGaDataSet

프로시져 실행 결과를 담기 위해 미리 정의한 가우스 데이터셋 객체를 지정한다.

GauceParameter inputParam

Input용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

GauceParameter outputParam

output용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

GauceParameter returnParam

return용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

 

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if ( oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA" ){

GauceConnection oaConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

GauceParameter inputParam = new GauceParameter();

inputParam.add("name", oGBasePage.getStringParam("empname"),

             GauceVariable.DbType.String);

 

GauceDataSet oGaDataSet =

                    oGBasePage.GauceService.newDataSet(“output1”);

oGaDataSet.addChangingDataColumn2 (“org_name”, “map_name”,

                    GauceVariable.ColumnDataType.TB_STRING, 24);

oGBasePage.execSelectStoredProcedure2(oConn,

                                      oGaDataSet,

"LJH_PROC00",

inputParam,

null,

null,

null);

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// 서비스 객채를 해제한다.

oGBasePage.Release();

}

 

·      execTrStoredProcedure

Transaction 전용 스토어드 프로시져를 수행하는 메소드이다. 이 메소드는 스토어드프로시져의 리턴값들을 정의한 GauceProcedureReturn 객체를 리턴한다.

GauceProcedureReturn 객체에는 다음과 같은 속성과 메소드들이 있다.

[GauceProcedureReturn]

- ProviderType: DB Privider 타입값이다. 이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP  4  // Ver 5.0 부터 지원

     - AppliedRowCount: 프로시져 수행결과 반영된 로우개수

     - Parameters:

       프로시져 실행 시 입력한 파라미터들을 저장하고 있는 해쉬테이블이다.

     - object getParameterValue (string stParameterName):

                입력한 파라미터의 값을 파라미터 이름을 통하여 얻어낸다.

 

GauceProcedureReturn execTrStoredProcedure( GauceConnection oGaConn,

string strProcedureName,

SortedList inputParam,

SortedList outputParam,

SortedList returnParam,

                                object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

GauceDataSet oGaDataSet

프로시져 실행 결과를 담기 위해 미리 정의한 가우스 데이터셋 객체를 지정한다.

string strProcedureName

스토어드프로시져 이름을 입력한다.

SortedList inputParam

Input용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

SortedList outputParam

output용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

SortedList returnParam

return용 파라미터를 SortedList에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션관리객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if (oGBasePage.getStringGauceParam("RequestData")== "GAUCE_NET_DATA_TR")

{

bPrintResult = true;

 

GauceDataSet oDataSet = oGBasePage.GauceService.getDataSet("input1");

DataTable dtTable = oDataSet.Tables[0];

 

for(int i=0; i < dtTable.Rows.Count; i++)

{

DataRow drRow = dtTable.Rows[i];

// insert

if(oDataSet.isInsertRow(i))

{

SortedList inputParam = new SortedList();

inputParam.Add ( "id", drRow["id"]);

inputParam.Add ( "name", drRow["name"]);

inputParam.Add ( "age", drRow["age"]);

inputParam.Add ( "address", drRow["address"]);

inputParam.Add ( "dept", drRow["dept"]);

 

SortedList outputParam = new SortedList();

outputParam.Add ("outid", "");

outputParam.Add ("outname", "");

 

SortedList returnParam = new SortedList();

returnParam.Add ("returnValue", "");

 

GauceProcedureReturn structProcRet

= oGBasePage.execTrStoredProcedure( oConn,

"LJH_TR_PROC01",

inputParam,

outputParam,

returnParam,

null);

                 int nAppliedRowcnt = structProcRet.AppliedRowCount;

                 int strOutputValue1 =    

                   Convert.ToInt32(structProcRet.getParameterValue("outid"));

                 string strOutputValue2 =  

                Convert.ToString(structProcRet.getParameterValue("outname"));

int strReturnValue =  Convert.ToInt32(structProcRet.getParameterValue("returnValue"));

}

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

·      execTrStoredProcedure2

Transaction 전용 스토어드 프로시져를 수행하는 메소드이다. 이 메소드는 스토어드프로시져 의 리턴값들을 정의한 GauceProcedureReturn 객체를 리턴한다. GauceProcedureReturn 객체에는 다음과 같은 속성과 메소드들이 있다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty 참조)

[GauceProcedureReturn]

- ProviderType: DB Privider 타입값이다. 이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP  4  // Ver 5.0 부터 지원

     - AppliedRowCount: 프로시져 수행결과 반영된 로우개수

     - Parameters:

         프로시져실행시 입력한 파라미터들을 저장하고 있는 해쉬테이블이다.

     - object getParameterValue (string stParameterName):

         입력한 파라미터의 값을 파라미터 이름을 통하여 얻어낸다

 

GauceProcedureReturn execTrStoredProcedure2(GauceConnection oGaConn,

string strProcedureName,

GauceParameter inputParam,

GauceParameter outputParam,

GauceParameter returnParam,

                                            object oTransaction)

 

Parameter 명

설명

GauceParameter inputParam

Input용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

GauceParameter outputParam

output용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

GauceParameter returnParam

return용 파라미터를 GauceParameter 에 이름/값 쌍으로 저장한다. 파라미터가 없으면 null을 입력한다.

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try {

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if(oGBasePage.getStringGauceParam("RequestData") == GAUCE_NET_DATA_TR")

{

bPrintResult = true;

GauceDataSet oDataSet =

                    oGBasePage.GauceService.getDataSet("input1");

DataTable dtTable = oDataSet.Tables[0];

for(int i=0; i < dtTable.Rows.Count; i++)

{

DataRow drRow = dtTable.Rows[i];

// insert

if(oDataSet.isInsertRow(i)) {

GauceParameter inputParam = new GauceParameter();

       inputParam.add ( "id", drRow["id"]);

       inputParam.add ( "name", drRow["name"]);

       inputParam.add ( "age", drRow["age"]);

       inputParam.add ( "address", drRow["address"]);

   inputParam.add ( "dept", drRow["dept"]);

 

GauceParameter outputParam = new GauceParameter();

       outputParam.add ("outid", " ");

       outputParam.add ("outname", " ");

 

         GauceParameter returnParam = new GauceParameter();

returnParam.add ("returnValue", 0);

 

GauceProcedureReturn structProcRet =

GBasePage.execTrStoredProcedure2 (oConn, "LJH_TR_PROC01", inputParam, outputParam, returnParam, null);

 

int nAppliedRowcnt = structProcRet.AppliedRowCount;

                int strOutputValue1 =

                Convert.ToInt32(structProcRet.getParameterValue("outid"));

                string strOutputValue2 =

             Convert.ToString(structProcRet.getParameterValue("outname"));

int strReturnValue = Convert.ToInt32(structProcRet.getParameterValue("returnValue"));

}

}

}

catch (Exception except){

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

Finally

{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

·      downloadFile (+1개 오버로드)

서버의 특정디렉토리에 저장되어 있는 BLOB데이터(File)를 다운로드 받는 메소드 이다.

void downloadFile(string strFileFullPath )

void downloadFile(string strMappath, string strFilename)

 

Parameter 명

설명

string strFileFullPath

파일이 위치해 있는 곳을 가리키는 전체경로이다.

string strMappath

파일이 위치해 있는 디렉토리 경로를 웹서버의 입장에서 기술한 값이다. 즉, 웹서버의 디렉토리 Aliasing 값이다.

string strFilename

파일이름을 입력한다.

사용예제)

 

deleteFile 예제를 참조하시오

 

 

·      saveFile (+1개 오버로드)

서버의 특정디렉토리에 BLOB데이터(File)를 저장하는 메소드 이다.

void saveFile(string strFileFullPath, byte[] bData)

void saveFile(string strMappath, string strFilename, byte[] bData)

 

Parameter 명

설명

string strFileFullPath

파일이 위치해 있는 곳을 가리키는 전체경로이다.

byte[] bData

BOBL Data(File Binary Data) 값이다.

string strMappath

파일이 위치해 있는 디렉토리 경로를 웹서버의 입장에서 기술한 값이다. 즉, 웹서버의 디렉토리 Aliasing 값이다.

string strFilename

파일이름을 입력한다.

사용예제)

 

deleteFile 예제를 참조하시오

 

 

·      deleteFile (+1개 오버로드)

서버의 특정디렉토리에 BLOB데이터(File)를 삭제하는 메소드 이다.

void deleteFile( string strFileFullPath)

void deleteFile( string strMappath, string strFileName )

 

Parameter 명

설명

string strFileFullPath

파일이 위치해 있는 곳을 가리키는 전체경로이다.

string strMappath

파일이 위치해 있는 디렉토리 경로를 웹서버의 입장에서 기술한 값이다. 즉, 웹서버의 디렉토리 Aliasing 값이다.

string strFilename

파일이름을 입력한다.

사용예제)

Bool bPrintResult == false;

string strSql = ""; // 쿼리문을 저장할 변수

 

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

 

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

 

if (oGBasePage.getStringParam("RequestData") == GAUCE_NET_DATA_SELECT")

{ 

// BLOB 데이터 리스트 조회

bPrintResult = true;

strSql = "select data_name, data_url from Blob";

GauceDataSet oOutDataSet =

                 oGBasePage.GauceService.newDataSet("output1");

oOutDataSet.addChangingDataColumn2("name",

                  GauceVariable.ColumnDataType.URL);

oGBasePage.commonSelect_byDataSet(oConn, oOutDataSet, strSql);

}

else if (oGBasePage.getStringGauceParam("RequestData")  

                                              =="GAUCE_NET_DATA_TR")

{

    // Transaction 작업을 합니다.

    GauceDataSet oDataSet =

                        oGBasePage.GauceService.getDataSet("input1");

    DataTable dtTable = oDataSet.Tables[0];

    for(int i=0; i < dtTable.Rows.Count; i++){

        DataRow drRow = dtTable.Rows[i];

        if(oDataSet.isInsertRow(i))

        {// 입력

            byte[] binaryData;

            string strFilename = drRow["data_name"].ToString();

            binaryData =  (byte[])drRow["data_url"];

           

            oGBasePage.saveFile ("/GauceNetDemo40/blob",

strFilename,

binaryData);

           

            // Insert 쿼리문을 작성합니다.

          strSql="insert into Blob(data_name ,data_url) values(?, ?)";

           

            GauceParameter oGparam = new GauceParameter();

            oGparam.add ( " data_name", drRow["data_name"]);

            oGparam.add ( " data_url",

./blob.aspx?RequestData=GAUCE_NET_DATA_GETBLOB&data_name="

+ Server.UrlEncode((string)drRow["data_name"]));

oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

else if(oDataSet.isUpdateRow(i)){  

   // Update 쿼리문을 작성합니다.

//BLOB데이터는 Update문을 수행하지 않습니다.

}

else if(oDataSet.isDeleteRow(i)){ // delete

    oGBasePage.deleteFile("/GauceNetDemo40/blob",

drRow["data_name"].ToString());

                // Delete 쿼리문을 작성합니다.

                strSql = "delete from Blob where data_name = @data_name";

GauceParameter oGparam = new GauceParameter();

                oGparam.add ("data_name", drRow["data_name"]);

                oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

    }

    oDataSet.Clear();

}

else if (oGBasePage.getStringParam("RequestData")

                                         == "GAUCE_NET_DATA_GETBLOB")

{

    // 파일을 다운로드합니다.

    bPrintResult = true;

    string strFilename = oGBasePage.getStringParam("data_name");

    oGBasePage.downloadFile("/GauceNetDemo40/blob", strFilename);

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

 

·      getBinaryDataFromFile (+1개 오버로드)

서버의 특정디렉토리에 있는 BLOB데이터(File)를 Filestream을 통하여 Binary 데이터로 읽어 들인다.

Byte [] getBinaryDataFromFile ( string strFileFullPath )

Byte [] getBinaryDataFromFile ( string strMappath, string strFileName )

 

Parameter 명

설명

string strFileFullPath

파일이 위치해 있는 곳을 가리키는 전체경로이다.

string strMappath

파일이 위치해 있는 디렉토리 경로를 웹서버의 입장에서 기술한 값이다. 즉, 웹서버의 디렉토리 Aliasing 값이다.

string strFilename

파일이름을 입력한다.

 

사용예제)

string strMapPath = null;

strMapPath = "/GauceNetSample40/image/icon";

 

GauceDataSet GDS =  oGBasePage.GauceService.newDataSet("output1");

GDS.addDataColumn2("Tb_img", GauceVariable.ColumnDataType.BLOB);

GDS.addDataColumn2("Tb_img_id", GauceVariable.ColumnDataType.STRING);

GDS.addDataColumn2("Tb_img_size", GauceVariable.ColumnDataType.INT);

GDS.addDataColumnEnd();

 

byte [] MyBinaryData =

                oGBasePage.getBinaryDataFromFile(strMapPath, "root.bmp");

 

GDS.addDataRowValue("Tb_img", MyBinaryData); //이미지 스트림

GDS.addDataRowValue("Tb_img_id", "root"); //이미지 id

GDS.addDataRowValue("Tb_img_size", MyBinaryData.Length); // 이미지 사이즈

GDS.addDataRow();

 

GDS.end();

 

 

·      createDirectory (+1개 오버로드)

서버상에 일반권한을 가진 디렉토리를 생성한다.

DirectoryInfo createDirectory ( string strDirFullPath )

DirectoryInfo createDirectory

                       (string strBaseDirMappath, string strSubDirName )

 

Parameter 명

설명

string strDirFullPath

생성할 디렉토리의 절대경로이다. 경로상에 명시된 모든 디렉토리에 대하여 디렉토리가 존재하지 않을 경우는 새롭게 생성한다.

string strBaseDirMappath

하위디렉토리를 생성하기 위한 기준 디렉토리 Map 경로를 입력한다. 만일 기준 디렉토리가 존재하지 않을 경우에는 예외가 발생한다.

string strSubDirName

하위 렉토리이름을 입력한다.

 

사용예제1)

 

oGBasePage.initGaucePage("default");

 

// Directory하나를 생성합니다.

// 디렉토리 Path 중간에 디렉토리가 없으면 계속적으로 만들어 간다.

DirectoryInfo oDirInfo = oGBasePage.ceateDirectory("C:\\Temp\\MyTestDir\\sub1");

 

 

사용예제2)

 

oGBasePage.initGaucePage("default");

 

// Directory하나를 생성합니다.

// 디렉토리 Path 중간에 디렉토리가 없으면 계속적으로 만들어 간다.

// 첫번째 파라미터를 기준으로 두번째 파라미터의 이름을 가진 서브디렉토리를 생성한다.

DirectoryInfo oDirInfo = oGBasePage.ceateDirectory("C:\\Temp\\MyTestDir”, “sub1");

 

 

 

·      deleteDirectory

디렉토리를 삭제한다.

DirectoryInfo deleteDirectory ( string strDirFullPath,

                                             bool bDeleteSubDirectory )

 

Parameter 명

설명

string strDirFullPath

삭제할 디렉토리의 절대경로이다.

bool bDeleteSubDirectory

부디렉토리까지 삭제할지 여부를 지정한다. 값이 False일 경우, 만일 하위 디렉토리가 존재하면 예외가 발생하고, True이면 하위 디렉토리가 존재할 경우 하위 디렉토리까지 한꺼번에 삭제한다.

 

사용예제)

 

oGBasePage.initGaucePage("default");

 

// Directory하나를 생성합니다.

// 디렉토리 Path 중간에 디렉토리가 없으면 계속적으로 만들어 간다.

DirectoryInfo oDirInfo = oGBasePage.ceateDirectory("C:\\Temp\\MyTestDir\\sub1");

oGBasePage.deleteDirectory("C:\\Temp\\MyTestDir\\sub1", false);

 

 

 

 

 

·      getBinaryDataFromDB

DataBase에 있는 BLOB데이터(File)를 DataReader를 통하여 Binary 데이터로 읽어 들인다. 클라이언트로 BLOB데이터 이외의 추가적인 파일정보를 보내려고 할 때는 이 메소드를 호출하여 BLOB데이터를 얻은 후 HTTP Header정보를 입력하여 바이너리 데이터를 전송하도록 한다.

Byte [] getBinaryDataFromDB (GauceConnection oGaConn, string strSql,

                              string strBlobColName)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string strSql

BLOB컬럼 데이터를 조회할 DB 쿼리문을 지정한다.

string strBlobColName

조회한 DB컬럼 중 BLOB데이터를 가지고 있는 컬럼명을 지정한다.

 

사용예제)

if (oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA_GETBLOB"){

bPrintResult = true;

string strFilename = oGBasePage.getStringParam("data_name");

strSql = "SELECT data_url from img_tbl where data_name ="  

        +"'"+strFilename+"'";

byte[] baData = oGBasePage.getBinaryDataFromDB (oConn, strSql,

                                                           "data_url");

 

/* HTTP Header는 필요시에만 추가 한다. */

//Response.ContentType = "application/unknown";

//Response.AddHeader("Content-Disposition", "attachment; filename="

// + Server.UrlEncode(strFilename).Replace("+", "%20").ToString());   

Response.BinaryWrite(baData);

Response.Flush();

}

 

 

IGauceBasePage API

AJAX.NET이나 Atlas 등 GauceService객체를 이용하지 않는 서비스 저작시 지원을 위한 클래스 인터페이스 입니다. GAUCE for .NET 4.0.1 버전부터 지원합니다.

(AJAX.NET 구현방법의 자세한 내용은 “GauceNet401_Developement.doc” 문서를 참고.)

PROPERTIES

·      GauceDbHelper [ get, set ]

DB 연결객체관리, Transaction 객체관리 등의 Data Service Component(DSC)역할을 담당하는 DB Helper객체를 담고있는 속성값이다.

사용예제)

IGauceBasePage oGBasePage = new GauceBasePage(“default”);

// DB 연결을 추가한다.

GauceConnection oConn =

                            oGBasePage.GauceDbHelper.addConnection("conn1",

                            GauceVariable.DbProviderType.OLEDB

                             null,  0);

 

·      GauceLoger [ get, set ]

가우스에서 발생하는 시스템 상황을 로깅하기 위한 IGauceLoger 객체를 담고 있는 속성값 이다.

 

 

 

 

 

 

 

 

 

 

 

 

METHODS

·      saveFile

서버의 특정디렉토리에 BLOB데이터(File)를 저장하는 메소드 이다.

void saveFile(string strFileFullPath, byte[] bData)

 

Parameter 명

설명

string strFileFullPath

파일이 위치해 있는 곳을 가리키는 전체경로이다.

byte[] bData

BOBL Data(File Binary Data) 값이다.

 

·      deleteFile

서버의 특정디렉토리에 BLOB데이터(File)를 삭제하는 메소드 이다.

void deleteFile( string strFileFullPath)

 

Parameter 명

설명

string strFileFullPath

파일이 위치해 있는 곳을 가리키는 전체경로이다.

 

·      getBinaryDataFromFile

서버의 특정디렉토리에 있는 BLOB데이터(File)를 Filestream을 통하여 Binary 데이터로 읽어 들인다.

Byte [] getBinaryDataFromFile ( string strFileFullPath)

 

Parameter 명

설명

string strFileFullPath

파일이 위치해 있는 곳을 가리키는 전체경로이다.

 

·      createDirectory

서버상에 일반권한을 가진 디렉토리를 생성한다.

DirectoryInfo createDirectory ( string strDirectoryFullPath)

 

Parameter 명

설명

string strDirectoryFullPath

생성할 디렉토리의 절대경로이다. 경로상에 명시된 모든 디렉토리에 대하여 디렉토리가 존재하지 않을 경우는 새롭게 생성한다.

·      deleteDirectory

디렉토리를 삭제한다.

void deleteDirectory(string strDirectoryFullPath, bool bDeleteSubDirectory)

 

Parameter 명

설명

string strDirectoryFullPath

삭제할 디렉토리의 절대경로이다.

bool bDeleteSubDirectory

부디렉토리까지 삭제할지 여부를 지정한다. 값이 False일 경우, 만일 하위 디렉토리가 존재하면 예외가 발생하고, True이면 하위 디렉토리가 존재할 경우 하위 디렉토리까지 한꺼번에 삭제한다.

 

·      convertDataReaderToDataSet

DataReader객체를 .NET DataSet을 변환하여 리턴한다.

DataSet convertDataReaderToDataSet (IDataReader oiDataReader)

 

Parameter 명

설명

IDataReader oiDataReader

.NET DataSet으로 변환할 DataReader를 지정한다.

 

·      ReleaseDbHelper

GauceBasePage에서 최종적으로 호출되는 릴리즈 메소드 이다. 이 메소드는 DBHelper 객체에서 관리하는 각종 리소스들을 릴리즈 한다.

(For Ajax.Net 에서만 사용 –GAUCE for .NET 4.0.1 버전부터 지원)

void ReleaseDbHelper()

 

사용예제)

// Ajax.Net 에서 Gauce를 연동하여 서비스 작성시 IGauceBasePage를

// 이용합니다.

IGauceBasePage oGBase =  null;

DataSet oRetValue = null;

string strQuery = "";

try

{

    oGBase = new GauceBasePage("default");

    GauceConnection oConn = oGBase.GauceDbHelper.addConnection("conn1",

                            GauceVariable.DbProviderType.OLEDB, null, 0);

 

    strQuery = "select * from emp where name like '%' + @name + '%'";

 

    GauceParameter oParam = new GauceParameter();

    oParam.add("name", searchEmpname);

    oRetValue = oGBase.GauceDbHelper.buildDataSet(oConn, strQuery,

                                                        "emp", oParam);

}

catch(Exception exp)

{   

    throw new Exception(exp.Message);

}

finally

{// 객체에서 관리하는 각종 리소스들을 릴리즈 한다

    if(oGBase != null)

        oGBase.ReleaseDbHelper();

}

 

·      execNonQuery2 (+3개 오버로드)

Insert/Update/Delete 등의 Transaction 작업을 하는데 사용하는 메소드 이다.

반영된 로우 개수를 리턴한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty참조)

int execNonQuery2(GauceConnection oGaConn, string strQuery)

int execNonQuery2(GauceConnection oGaConn, string strQuery,

GauceLib.GauceParameter lparam)

int execNonQuery2(GauceConnection oGaConn, string strQuery,

GauceLib.GauceParameter lparam,

object oTtransaction)

int execNonQuery2(GauceConnection oGaConn, string strQuery,

GauceLib.GauceParameter lparam,

                 object oTtransaction,CommandType cmdType)

 

Parameter 명

설명

GauceLib.GauceParameter lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터 값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname",

                  oGBasePage.getStringParam("empname"));

oGparam.add("empaddress",

                oGBasePage.getStringParam("empaddress"));

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1", Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",oGBasePage.getStringParam("hiredata"),GauceVariable.DbType.DateTime);

 

사용예제)

Bool bPrintResult == false;

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

try

{

// 가우스 BASE 서비스 객채를 초기화 한다.

oGBasePage.initGaucePage("default”);

// 최초의 서비스 호출시 화면을 먼저 출력시키기 위한 코드입니다.

if(oGBasePage.getStringGauceParam("RequestData")=="GAUCE_NET_DATA_TR")

{

string strSql = null;

bPrintResult = true;

 

GauceConnection oaConn = oGBasePage.GauceDbHelper.addConnection (

"conn1",

GauceVariable.DbProviderType.MSSQL,

null,

0);

 

GauceDataSet oDataSet =

                    oGBasePage.GauceService.getDataSet("input1");

DataTable dtTable = oDataSet.Tables[0];

for(int i=0; i < dtTable.Rows.Count; i++)

{

DataRow drRow = dtTable.Rows[i];

// insert

if(oDataSet.isInsertRow(i))

{

strSql = "insert into Grid2(sabun ,name , amt1 , amt2,"

+   " chk, gubun ) values (@sabun , @name , @amt1 , "

+   "@amt2, @chk, @gubun)";

 

GauceParameter oGparam = new GauceParameter();

oGparam.add ("sabun", drRow["sabun"]);

oGparam.add ("name", drRow["name"]);

oGparam.add ("amt1", drRow["amt1"]);

oGparam.add ("amt2", drRow["amt2"]);

oGparam.add ("chk", drRow["chk"]);

oGparam.add ("gubun", drRow["gubun"]);

 

oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

// update

else if(oDataSet.isUpdateRow(i))

{

strSql = "update Grid2 set “+

“name=@name, amt1=@amt1, amt2=@amt2, chk= chk, gubun= gubun ”+ “where sabun=@sabun";

GauceParameter oGparam = new GauceParameter();

oGparam.add ("name", drRow["name"]);

oGparam.add ("amt1", drRow["amt1"]);

oGparam.add ("amt2", drRow["amt2"]);

oGparam.add ("chk", drRow["chk"]);

oGparam.add ("gubun", drRow["gubun"]);

oGparam.add ("sabun", drRow["sabun"]);

 

oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

// delete

else if(oDataSet. isDeleteRow(i))

{

GauceParameter oGparam = new GauceParameter();

oGparam.add ("sabun", drRow["sabun"]);

 

    oGBasePage.execNonQuery2(oConn, strSql, oGparam);

}

}

}

catch (Exception except)

{

oGBasePage.addMessage("System", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// 서비스 객채를 해제한다.

if(bPrintResult == true)

{

oGBasePage.printMessage();

oGBasePage.Release(true);

}

else

oGBasePage.Release();

}

 

 

IGauceDbHelper API

METHODS

·      addConnection (+2개 오버로드)

DB와 연결하여 관련정보를 저장하는 GauceConnection 객체를 추가한다.

GauceConnection addConnection (GauceConnection oConn)

GauceConnection addConnection (string stConnectionName, int nProviderType,

string stConnectionString, int nTimeout)

GauceConnection addConnection (string stConnectionName,

                              GauceVariable.DbProviderType enumProviderType,

                             string stConnectionString, int nTimeout)

 

Parameter 명

설명

GauceConnection oConn

이미 생성한 커넥션객체를 지정한다.

string stConnectionName

커넥션객체명을 입력한다. 이 값은 GauceDbHelper내에서 유일한 값이어야 한다.

int nProviderType

DB Provider 타입을 지정한다. 이 값은 GauceDefine값이어야 한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL  0;

PROVIDERTYPE_OLEDB  1;

PROVIDERTYPE_ORACLE  2;

PROVIDERTYPE_ODBC  3

PROVIDERTYPE_ODP  4//GAUCE for .NET 5.0 부터 지원

string stConnectionString

실제 DB 커넥션정보를 기술한 스트링 값이다. 이값을 지정하게되면 Config에 잡혀있는 DB연결정보는 무시된다. 지정하지 않으려면 null을 입력한다.

int nTimeout

커맨드명객체의 명령실행시 타임아웃값을 지정한다. 디폴트값은 120초 이다.

DbProviderType enumProviderType

DB Provider 타입을 지정한다. (GauceVariable 사용)

[GAUCE VARIABLE의 DbProviderType 열거형 값]

GauceVariable.DbProviderType.MSSQL: MSSQL Client 공급자

GauceVariable.DbProviderType.ODBC:OLEDB 공급자

GauceVariable.DbProviderType.OLEDB:Oracle Client 공급자

GauceVariable.DbProviderType.ORACLE: ODBC 공급자

GauceVariable.DbProviderType.ODP:Oracle Access Db (ODP .NET) 공급자 (GAUCE for .NET 5.0 부터 지원)

 

사용예제)

GauceBasePage oGaPage = new GauceBasePage(Server, Request,Response);

GauceConnection oConn1 = new GauceConnection();

oConn1.ConnectionName = “Conn1”;

oConn1.ProviderType = GauceDefine.PROVIDER_OLEDB;

oConn1.ConnectionString = “None”;

oConn1.CommandTimeOut = 150;

oConn1 = oGaPage.GauceDbHelper.addConnection(oConn1);

 

GauceConnection oConn2 =

             oGaPage.GauceDbHelper.addConnection( “Conn2”,

             GauceDefine.PROVIDER_MSSQL, null, 300);

 

 

·      addConnection2 (+1개 오버로드)

Gauce Config에서 설정한 암호화된 다중 연결정보를 사용하여 GauceConnection 객체를 추가한다. GAUCE for .NET 4.0.1 버전부터 지원한다.

GauceConnection addConnection2(string stConnectionName, int nProviderType,

string stProvConnectionId, int nTimeout)

GauceConnection addConnection2(string stConnectionName,    

                              GauceVariable.DbProviderType enumProviderType,

                              string stProvConnectionId, int nTimeout)

 

Parameter 명

설명

string stConnectionName

커넥션객체명을 입력한다. 이 값은 GauceDbHelper내에서 유일한 값이어야 한다.

int nProviderType

DB Provider 타입을 지정한다. 이 값은 GauceDefine값이어야 한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL  0;

PROVIDERTYPE_OLEDB  1;

PROVIDERTYPE_ORACLE  2;

PROVIDERTYPE_ODBC  3

PROVIDERTYPE_ODP  4//GAUCE for .NET 5.0 부터 지원

string stProvConnectionId

암호화된 다중 커넥션정보를 가져오기 위한 식별ID를 입력한다.

이 값은 Gauce Config에서 설정한 스트링값이며, 유일한 값이다. 암호화된 커넥션정보를 사용하지 않으려면 addConnection 메소드를 사용하면 된다.

int nTimeout

커맨드명객체의 명령실행시 타임아웃값을 지정한다. 디폴트값은 120초 이다.

DbProviderType enumProviderType

DB Provider 타입을 지정한다. (GauceVariable 사용)

[GAUCE VARIABLE의 DbProviderType 열거형 값]

GauceVariable.DbProviderType.MSSQL: MSSQL Client 공급자

GauceVariable.DbProviderType.ODBC:OLEDB 공급자

GauceVariable.DbProviderType.OLEDB:Oracle Client 공급자

GauceVariable.DbProviderType.ORACLE: ODBC 공급자

GauceVariable.DbProviderType.ODP:Oracle Access Db (ODP .NET) 공급자 (GAUCE for .NET 5.0 부터 지원)

 

 

사용예제)

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

 

GauceConnection oConn =

oGaPage.GauceDbHelper.addConnection( “Conn1”,

                      GauceVariable.DbProviderType.MSSQL

                      “Sql_Pubs”,

                      300);

 

·      getConnection

DB와 연결된 GauceConnection 객체를 커넥션이름을 통하여 얻어온다.

GauceConnection getConnection (string stConnectionName)

 

Parameter 명

설명

string stConnectionName

커넥션객체명을 입력한다. 이 값은 GauceDbHelper내에서 유일한 값이어야 한다.

 

사용예제)

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

oGaPage.GauceDbHelper.addConnection( “Conn1”,

                                     GauceVariable.DbProviderType.MSSQL,

                                     null,

                                     0);

GauceConnection oConn = oGaPage.GauceDbHelper.getConnection(“Conn1”);

 

·      getConnections

DB와 연결된 모든 GauceConnection 객체를 얻어온다.

GauceConnection [] getConnections();

 

사용예제)

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

oGaPage.GauceDbHelper.addConnection( “Conn1”,

                                GauceVariable.DbProviderType.MSSQL,

                                null,

                                100);

oGaPage.GauceDbHelper.addConnection( “Conn2”,

                                GauceVariable.DbProviderType.MSSQL,

                                null,

                                200);

 

GauceConnection [] oaConn = oGaPage.GauceDbHelper.getConnections();

 

·      buildDataReader (+2개 오버로드)

DB 연결정보를 바탕으로 쿼리문을 싱행시켜 DataReader객체를 생성해 준다.

얻어온 객체는 IDataReader 인터페이스 객체임으로 각 DB Provider 타입에 맞도록 캐스팅하지 않아도 된다.

IDataReader buildDataReader(GauceConnection oGaConn, string strQuery)

IDataReader buildDataReader(GauceConnection oGaConn, string strQuery,

                           SortedList lparam);

IDataReader buildDataReader(GauceConnection oGaConn, string strQuery,

                           SortedList lparam, object oTransaction);

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string strQuery

DB 쿼리문을 지정한다.

SortedList lparam

DB 쿼리문에 파라미터가 포함된 경우에 SortedList에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션 관리 객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

 

사용예제)

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

oGaPage.GauceDbHelper.addConnection( “Conn1”,

                                  GauceVariable.DbProviderType.MSSQL,

                                  null,

                                  100);

 

IDataReader myReader = oGaPage.GauceDbHelper.buildDataReader( oGaConn,

                       strSql, lparam, oTransaction);

 

·      buildDataReader2 (+1개 오버로드)

DB 연결정보를 바탕으로 쿼리문을 싱행시켜 DataReader객체를 생성해 준다.

얻어온 객체는 IDataReader 인터페이스 객체임으로 각 DB Provider 타입에 맞도록 캐스팅하지 않아도 된다.  GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty참조)

IDataReader buildDataReader2(GauceConnection oGaConn, string strQuery,

                            GauceParameter lparam);

IDataReader buildDataReader2(GauceConnection oGaConn, string strQuery,

                            GauceParameter lparam, object oTransaction);

 

Parameter 명

설명

GauceParameter lparam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터 값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

사용예제)

GauceParameter oGparam = new GauceParameter();

oGparam.add("empid", oGBasePage.getStringParam("empid"));

oGparam.add("empname",

oGBasePage.getStringParam("empname"));

oGparam.add("empaddress",

oGBasePage.getStringParam("empaddress"));

한편, oGparam.add 에서 param의 value값은 실제 DB에 입력될 필드타입에 따라 Conver 되야 할 필요가 있을 수 있다. 예를들어 DB필드 타입이 DateTime인 필드를 파라미터 값으로 설정/입력하고자 한다면 다음과 같이 명시적으로 타입을 Convert 하거나, DB필드 타입 파라미터를 사용한다.

 

- 명시적으로 타입을 Convert한 예)

oGparam.add("param1",Convert.ToDateTime(oGBasePage.getStringParam("hiredata")));

- DB필드 타입 파라미터를 사용한 예)

oGparam.add("param1",

           oGBasePage.getStringParam("hiredata"),

           GauceVariable.DbType.DateTime);

사용예제)

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

oGaPage.GauceDbHelper.addConnection( “Conn1”,

           GauceVariable.DbProviderType.MSSQL, null, 100);

 

lDataReader myReader = oGaPage.GauceDbHelper.buildDataReader2 (oGaConn,

                                            strSql, lparam, oTransaction);

 

·      buildDataSet (+3개 오버로드)

DB 연결정보를 바탕으로 쿼리문을 실행시켜 입력한 table 명으로 .NET DataSet객체를 생성해 준다.

DataSet buildDataSet(GauceConnection oGaConn, string strQuery, string table);

DataSet buildDataSet(GauceConnection oGaConn, string strQuery, string table,

GauceParameter oParam);

DataSet buildDataSet(GauceConnection oGaConn, string strQuery, string table,

object oTransaction);

DataSet buildDataSet(GauceConnection oGaConn, string strQuery, string table,

                    GauceParameter oParam, object oTransaction);

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string strQuery

DB 쿼리문을 지정한다.

string strtable

생성할 .NET DataSet의 테이블 이름을 입력한다.

GauceParameter oParam

DB 쿼리문에 파라미터가 포함된 경우에 GauceParameter에 이름/값 쌍으로 파라미터값을 지정하여 사용한다. 파라미터가 없으면 null을 입력한다.

object oTransaction

다중쿼리문을 작성하여 하나의 트랜젝션단위로 묶어서 실행하기를 원하는 경우 사용되는 트랜젝션 관리 객체이다. 트랜젝션관리가 필요없으면 null을 입력한다.

사용예제)

string strSql = “select * from emp”;

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

GauceConnection oConn = oGaPage.GauceDbHelper.addConnection( “Conn1”,

    GauceVariable.DbProviderType.MSSQL, null, 100);

DataSet ds =

            oGaPage.GauceDbHelper.buildDataSet(oConn, strSql, “MyTable”);

 

·      buildCommand (+3개 오버로드)

DB 연결정보를 바탕으로 쿼리문을 실행시켜 Command 객체를 생성해 준다.

얻어온 객체는 IDbCommand 인터페이스의 객체임으로 각 DB Provider 타입에 맞도록 캐스팅되지 않아도 된다.

이 메소드는 스토어드프로시져 또는 복잡한 형태의 Transaction작업등을 수행하는데 있어서 GauceBasePage의 메소드들이 기능을 지원하지 못할 경우 확장성을 위해 열어둔 메소드이다.

IDbCommand buildCommand(GauceConnection oGaConn, string sql)

IDbCommand buildCommand(GauceConnection oGaConn, string sql,

                        SortedList inputParam)

IDbCommand buildCommand(GauceConnection oGaConn, string sql,

                        SortedList inputParam, SortedList outputParam,

                        SortedList returnParam)

IDbCommand buildCommand(GauceConnection oGaConn, string sql,

                        SortedList inputParam, SortedList outputParam,

                        SortedList returnParam, object oTransaction)

 

Parameter 명

설명

GauceConnection oGaConn

DB 연결정보를 가진 Gauce 클래스 객체이다. 이 클래스는 다음의 속성값을 가지고 있다.

[GauceConnection]

- ConnectionName: GauceConnection 객체들을 구분하기 위한 유일한 식별값이다.

- ProviderType: DB Privider 타입값이다.

이값은 GauceDefine에 정의돤 값을 이용한다.

[GAUCE DEFINE 값]

PROVIDERTYPE_MSSQL 0

PROVIDERTYPE_OLEDB 1

PROVIDERTYPE_ORACLE 2

PROVIDERTYPE_ODBC 3

PROVIDERTYPE_ODP 4  // Ver 5.0 부터 지원

- ConnectionString: 실제로 DB연결 정보를 가진 스트링값이다.

- CommandTimeOut: DB Command의 Timeout값이다. 디폴트값을 120초이다.

string sql

DB 쿼리문을 지정한다.

SortedList inputParam

Input용 파라미터를 키/값 쌍의 SortedList를 생성하여 지정한다.

SortedList outputParam

output용 파라미터를 키/값 쌍의 SortedList를 생성하여 지정한다.

SortedList returnParam

return용 파라미터를 키/값 쌍의 SortedList를 생성하여 지정한다.

object oTransaction

다중쿼리를 사용하는 경우 트랜젝션을 관리할 객체를 선언한다.

 

 

 

사용예제)

string strSql = "DeptUpdateProc";

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

GauceConnection oConn = oGaPage.GauceDbHelper.addConnection( “Conn1”,

                            GauceVariable.DbProviderType.OLEDB,

                            null,

                            100);

// IDbCommand 인터페이스 객체를 반환함으로 DB Type 캐스팅이 필요 없다.

IDbCommand command = oGaPage.GauceDbHelper.buildCommand(oConn, strSql);

 

·      buildCommand2 (+2개 오버로드)

DB 연결정보를 바탕으로 쿼리문을 실행시켜 Command 객체를 생성해 준다.

얻어온 객체는 IDbCommand 인터페이스의 객체임으로 각 DB Provider 타입에 맞도록 캐스팅되지 않아도 된다.  GAUCE for .NET 4.0.1 버전부터 지원한다.

쿼리문에 파라미터가 포함된 경우에는 GauceParameter 클래스를 이용하여 DB 파라미터를 관리합니다. GauceParameter 객체를 생성하여 파라미터 추가시 DB 파라미터의 키, 값뿐만 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다. (GauceParameterProperty참조)

IDbCommand buildCommand2(GauceConnection oGaConn, string strQuery,

                         GauceParameter inputParam);     

IDbCommand buildCommand2(GauceConnection oGaConn, string strQuery,

GauceParameter inputParam, GauceParameter outputParam,

GauceParameter returnParam);

IDbCommand buildCommand2(GauceConnection oGaConn, string strQuery,

GauceParameter inputParam, GauceParameter outputParam,

GauceParameter returnParam, object oTransaction);

 

Parameter 명

설명

GauceParameter inputParam

Input용 파라미터를 키/값 쌍의 GauceParameter 를 생성하여 지정한다.

GauceParameter outputParam

output용 파라미터를 키/값 쌍의 GauceParameter 를 생성하여 지정한다.

GauceParameter returnParam

return용 파라미터를 키/값 쌍의 GauceParameter 를 생성하여 지정한다.

 

사용예제)

string strSql = "DeptUpdateProc";

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

GauceConnection oConn = oGaPage.GauceDbHelper.addConnection( “Conn1”,

                      GauceVariable.DbProviderType.MSSQL, null, 100);

// IDbCommand 인터페이스 객체를 반환함으로 DB Type 캐스팅이 필요 없다.

IDbCommand command = oGaPage.GauceDbHelper.buildCommand2(oConn, strSql);

 

·      getDbConnection

커넥션명을 가지고 실제 DB연결 객체를 얻어온다. 얻어온 객체는 IDbConnection 인터페이스 객체임으로 각 DB Provider 타입에 맞도록 캐스팅되지 않아도 된다.

IDbConnection getDbConnection(string stConnectionName)

 

Parameter 명

설명

string stConnectionName

GauceConnection 객체 생성시에 사용했던 커넥션명이다.

 

사용예제)

string strSql = "DeptUpdateProc";

 

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

oGaPage.GauceDbHelper.addConnection( “Conn1”,

GauceVariable.DbProviderType.OLEDB,

null,

100);

oGaPage.GauceDbHelper.addConnection( “Conn2”,

GauceVariable.DbProviderType.MSSQL,

null,

100);

 

IDbConnection Conn1

= oGaPage.GauceDbHelper.getDbConnection(“Conn1”);

IDbConnection Conn2

             = oGaPage.GauceDbHelper.getDbConnection(“Conn2”);

 

 

 

 

GauceConnection API

PROPERTIES

·      ConnectionName [ get, set ]

GauceConnection 객체를 구분하는 유일한 키값이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

GauceConnection oGaConn = oGBasePage.GauceDbHelper.addConnection(

      “Conn1”, GauceVariable.DbProviderType.MSSQL, null, 0);

 

// strConnectionName에는 “Conn1” 값이 저장되어 있을 것이다.

String strConnectionName = oGaConn.ConnectionName;

 

·      ProviderType [ get, set ]

DB Provider의 타입을 정한 값으로 GauceDefine 값으로 지정된다.

다음 예제에서는 GauceVariable의 DbProviderType 열거형 값으로 지정했지만, 내부적으로는 GauceDefine 값으로 변환된다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

GauceConnection oGaConn = oGBasePage.GauceDbHelper.addConnection(

    “Conn1”, GauceVariable.DbProviderType.MSSQL, null, 0);

 

// nDbProviderType에는 GauceDefine.PROVIDER_MSSQL 값이 저장되어 있을

// 것이다.

int nDbProviderType = oGaConn.ProviderType;

 

·      ConnectionString [ get, set ]

실제 DB연결을 하기위해 지정한 연결정보를 가지고 있는 스트링 값이다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

GauceConnection oGaConn = oGBasePage.GauceDbHelper.addConnection(

   “Conn1”, GauceVariable.DbProviderType.MSSQL,null, 0);

   

// 이곳에서는 addConnection시에 연결문자열을 지정하는 세번째 인자가

// null이므로 strConnectInfo 에는 Gauce Config 또는 Web.config에서

// 지정한 DB Provider타입에 해당하는 디폴트 연결문자열이 저장되어 있을

// 것이다.

string strConnectInfo = oGaConn.ConnectionString

 

·      CommandTimeOut [ get, set ]

Command명령을 수행하는데 있어서의 명령 대기시간 값이다. 초단위의 int값을 지정한다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

GauceConnection oGaConn = oGBasePage.GauceDbHelper.addConnection(

   “Conn1”, GauceVariable.DbProviderType.MSSQL, null, 50);,

   

// nTimeOut 에는 명령어 대기시간 50 이 저장되어 있을 것이다.

// 만일 addConnection의 네번째 인자가 0 이라면

// 디폴트값 120초가 세팅되어 있을 것이다.

int nTimeOut = oGaConn.CommandTimeOut

 

·      CommandTimeOut [ get, set ]

Command명령을 수행하는데 있어서의 명령 대기시간 값이다. 초단위의 int값을 지정한다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

GauceConnection oGaConn = oGBasePage.GauceDbHelper.addConnection(

   “Conn1”, GauceVariable.DbProviderType.MSSQL, null, 50);,

   

// nTimeOut 에는 명령어 대기시간 50 이 저장되어 있을 것이다.

// 만일 addConnection의 네번째 인자가 0 이라면

// 디폴트값 120초가 세팅되어 있을 것이다.

int nTimeOut = oGaConn.CommandTimeOut

 

·      DbConnection [ get, set ]

  set 메소드는 GAUCE for .NET 5.0 버전부터 지원

GauceConnection객체 추가시에 지정한 DB Provider 타입에 맞게 실제 DB Connection 객체를 가져온다. 객체를 가져올 때 IDbConnection 으로 반환됨으로 DB Provider 타입에 맞게 캐스팅할 필요가 없다.

사용예제)

GauceBasePage oGBasePage = new GauceBasePage(Server, Request, Response);

GauceConnection oGaConn = oGBasePage.GauceDbHelper.addConnection(

     “Conn1”,

     GauceVariable.DbProviderType.MSSQL,

     null,

     50);,

  // addConnection 에서 지정한 DB Provider 타입으로 DB Connection 객체를 가져온다.

// IDbConnection 으로 반환됨으로 캐스팅할 필요 없다.

IDbConnection oDbConn = oGaConn.DbConnection;


METHODS

·      openConnection

DB 연결정보를 바탕으로 DB를 개방한다. 이미 개방되어 있으면 열지 않는다.

void openConnection()

사용예제)

 

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

GauceConnection oConn = oGaPage.GauceDbHelper.addConnection( “Conn1”,

                 GauceVariable.DbProviderType.MSSQL,

                 null,

                 300);

// DB를 Open한다.

oConn.openConnection();

 

 

·      closeConnection

DB 연결정보를 바탕으로 DB를 Close한다. 이미 닫혀있으면 닫지 않는다.

void closeConnection ()

사용예제)

 

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

GauceConnection oConn = oGaPage.GauceDbHelper.addConnection( “Conn1”,

                      GauceVariable.DbProviderType.MSSQL,

                      null,

                      300);

// DB를 Open한다.

oConn.openConnection();

 

// DB를 close 한다.

oConn.closeConnection();

 

 

·      beginTransaction (+1개 오버로드)

DB Provider타입에 맞는 트랜젝션객체를 생성하고 반환한다.

IDbTransaction beginTransaction()

IDbTransaction beginTransaction(IsolationLevel isoLevel)

 

Parameter 명

설명

IsolationLevel isoLevel

연결에 대한 트랜젝션 잠금 동작을 지정한다.

 

사용예제)

GauceBasePage oGaPage = new GauceBasePage(Server, Request, Response);

GauceConnection oConn = oGaPage.GauceDbHelper.addConnection( “Conn1”,

                         GauceVariable.DbProviderType.MSSQL,

                         null,

                         300);

// DB를 Open한다.

oConn.openConnection();

 

// IDbConnection 인터페이스를 이용하여 DB Provider 타입에 상관없이

// Transaction 객체를 선언합니다.

IDbTransaction oTr = oConn.beginTransaction();

 

// 트랜젝션 작업을 한다.

………………………………

oTr.Commit();

 

// DB를 close 한다.

oConn.closeConnection();

 

 

ServiceLoader API

METHODS

·      ServiceLoader

Gauce의 서비스를 관장하는 서비스 개체를 생성하기위한 ServiceLoder의 생성자로, ASP.NET의 HttpServerUtility, HttpRequest와 HttpResponse 개체를 가지고 초기화 한다.

주의) GAUCE for .NET 3.0 버전에서는 첫번째 파라미터인 HttpServerUtility가 없다. 따라서 GAUCE for .NET 3.0버전의 서비스를 GAUCE for .NET 4.0버전으로 마이그레이션 할 때는 ServiceLoader 부분을 변경해 주어야만 한다.

ServiceLoader(HttpServerUtility server, HttpRequest req, HttpResponse res);

 

Parameter 명

설명

HttpServerUtility server

ASP.NET 이 웹요청을 처리하기 위한 도우미 객체이다.

HttpRequest req

ASP.NET 이 클라이언트에서 보낸 HttpRequest개체 이다.

HttpResponse res

ASP.NET 작업에서 받은 Http 응답정보를 캡술화하는 HttpResponse개체이다.

사용예제)

ServiceLoader Loader = new ServiceLoader(Server, Request, Response);

 

·      newService

새로운 서비스 개체를 생성하고 서비스 핸들러를 반환한다.(1개 오버로딩) 첫번째 메소드는 default 도메인으로 서비스를 개체를 생성한다.두번쨰 메소드는 사용자가 입력한 도메인명으로 서비스 개체를 생성한다.

IGauceService newService();

IGauceService newService(string stDomain);

 

Parameter 명

설명

string stDomain

도메인의 이름을 입력한다. 여기서 입력한 도메인 이름으로 해당 Configuration file을 참조하여 서비스 환경을 구축한다.

사용예제)

// “default”도메인으로 서비스 개체 생성

IGauceService GauceService = Loader.newService();

또는,

// “crm_service”도메인으로 서비스 개체 생성

IGauceService GauceService = Loader.newService(“crm_service”);

 

 

IGauceService

METHODS

·      getConfigCompress

환경설정값 중 압축설정 여부를 알아보기 위해 사용한다.

ConfigProperty에서 압축여부의 플래그 값인 format_compress_enable 값을 반환한다.

bool getConfigCompress();

사용예제)

IGauceService GauceService = Loader.newService();

bool bIsCompress = GauceService.getConfigCompress();

 

·      getConfigFirstRowSize

ConfigProperty에서 퍼스트로우 데이터 패킷의 로우 사이즈인 firstrow_size을 반환한다.

int getConfigFirstRowSize ();

사용예제)

IGauceService GauceService = Loader.newService();

int iFirstRowSz = GauceService.getConfigFirstRowSize();

 

·      getConfigProperty

Config 구조체인 GauceConfigProperty 를 반환한다.

GauceConfigProperty getConfigProperty();

GauceConfigProperty 구조체는 다음과 같이 구성된다.

string m_stDomain;              // 도메인명

DateTime m_dtPropertyCreateTime;//해당 도메인에 대한 Property가 생성된 시간

string m_stLicense_Check_Method;//라이센스 체크 방식(IP/DATE)

int m_iFormat_Default_Request;  //데이터 수신에 사용되는 Request의 기본 포맷

int m_iFormat_Default_Response; //데이터 송신에 사용되는 Response의 기본포맷

bool m_boFormat_Compress_Enable;//데이터 송신 시에 데이터 압축을 사용여부

int m_iFirstRow_Size;           //서비스에서 Component로 전송할 행의 단위

bool m_boFirstRow_Packet_Header;//firstrow로 전송시 매번 Header를 전송여부

int m_iColumntype_Decimal_Dec;  // Decimal type에서의 소수 길이

int m_iColumntype_Decimal_Round;// Decimal type에서의 올림1/반올림2/버림3

string m_stMessage_language;    // 시스템 메시지의 출력 언어(KOR/ENG)

int m_iMessage_Level;           // 시스템 메시지의 출력 레벨(0/1/2/3)

int m_iLog_Message_Level;     // 메시지로그의 기록 레벨(0/1/2/3)

string m_stLog_Message_File_Name;  // 메시지로그를 저장할 파일명

int m_iLog_Message_File_Size;      // 메시지로그 파일의 최대크기

int m_iLog_Event_Level;            // 에러로그의 기록 레벨(0/1/2/3)

string m_stLog_Event_File_Name;    // 에러로그를 저장할 파일명

int m_iLog_Event_File_Size;     // 에러로그 파일의 최대크기

int m_iLog_Debug_Level;       // 디버그로그의 기록 레벨(0/1/2/3)

string m_stLog_Debug_File_Name; // 디버그로그를 저장할 파일명

int m_iLog_Debug_File_Size;     // 디버그로그 파일의 최대크기

 

사용예제)

IGauceService GauceService = Loader.newService();

GauceConfigProperty GConfigProperty = GauceService.getConfigProperty();

GauceMessageSet GMS = GauceService.getMessageSet();

 

//사용자 로그를 쌓기 위해서 IGauceLoger가 필요함.

IGauceLoger GauceErrorLoger = GauceService.getEventLoger();

try {

    int row_cnt = 2;

    // Service Handler의 Gauce Configuration 정보를 읽기위함

    GauceConfigProperty oConfigProperty =

                                     GauceService.getConfigProperty();

    // DataSet을 생성한다.

    GauceDataSet GDS = GauceService.newDataSet("Config01");

    // DataSet의 컬럼속성을 지정한다.

    GDS.addDataColumn2("Property",

                          GauceVariable.ColumnDataType.STRING, 64);

    GDS.addDataColumn2("Value",

                          GauceVariable.ColumnDataType.STRING, 256);

    GDS.addDataColumn2("비고",

                          GauceVariable.ColumnDataType.STRING, 256);

    GDS.addDataColumnEnd();

    // 클라이언트로 보낼 데이터를 만든다.

    for (int i = 0; i < row_cnt; i++) {

        switch (i) {

          case 0:

            GDS.addDataRowValue("Property","license_check_method");

            GDS.addDataRowValue("Value",

                             oConfigProperty.license_check_method);

           GDS.addDataRowValue("비고",     " ");

           break;     

        case 1:

          GDS.addDataRowValue("Property",  "format_default_response");

          GDS.addDataRowValue("Value",

             Convert.ToString(oConfigProperty.format_default_response));

          GDS.addDataRowValue("비고",      " ");

          break;

      }

      GDS.addDataRow();

    }

    // DataSet 객체를 해제한다.

    GDS.end();            

    // setResult는 printMessage() 바로 이전의 값이 적용된다.

    GMS.addMessage("user1","74001","성공");

    GMS.setResult(true);  // 성공

}

catch(Exception execpt){

    GMS.addMessage("user1","74001",execpt.Message);

    GMS.setResult(false);  // 실패

}             

finally{

    GMS.printMessage();

    // Gauce Service객체를 해제한다.

    GauceService.end();

}

 

·      getConfigResponseFormat

ConfigProperty에서 디폴트 전송 데이터 패킷 타입값인 format_default_response을 반환한다.

int getConfigResponseFormat();

사용예제)

IGauceService GauceService = Loader.newService();

int iRespFormat = GauceService.getConfigResponseFormat();

GauceMessageSet GMS = GauceService.getMessageSet();

 

if(iRespFormat == GauceVariable.ResponsePacketType.CSV30)//CSV30인경우

    GMS.addMessage("user1","74001","CSV30");

// BIN 인경우

else if (iRespFormat == GauceVariable.ResponsePacketType.FORMAT)

    GMS.addMessage("user1","74001","BIN");

// CSV 인경우

else if (iRespFormat == GauceVariable.ResponsePacketType.CSV)   

    GMS.addMessage("user1","74001","CSV");

else // SVC 인경우

    GMS.addMessage("user1","74001","SVC");

GMS.printMessage(true);

 

·      getDataSet

DataSet List에서 해당하는 DataSet 을 반환한다. (1개 오버로딩) 첫번쨰 메소드는 해당 ServerName을 갖는 DataSet를 반환한다. 두번째 메소드는 해당 ServerName을 갖고 해당 IOMode 를 갖는 DataSet을 반환한다.

GauceDataSet getDataSet(string stServerName);

GauceDataSet getDataSet(string stServerName, string stIOMode);

 

Parameter 명

설명

string stServerName

클라이언트에서 지정한 서버쪽 DataSet의 이름이다.

string stIOMode

DataSet의 입출력 모드. (I:입력용, O:출력용)

이값은 해당 DataSet이 같은 이름으로 입출력 DataSet을 만들었을 경우 두 개의 DataSet을 구분하여 사용하기 위해 필요한 입력 값이다.

사용예제)

IGauceService GauceService = Loader.newService();

IGauceRequest GauceResquest = GauceService.getRequest();

// “input1” 이름의 DataSet을 얻는다.

GauceDataSet oDataSet = GauceService.getDataSet("input1");

// “input1” 이름의 input DataSet을 얻는다.

GauceDataSet oInDataSet = GauceService.getDataSet("input1", “I”);

// “input1” 이름의 output DataSet을 얻는다.

GauceDataSet oOutDataSet = GauceService.getDataSet("input1", “O”);

 

·      getDataSets

DataSet의 List를 반환한다.

GauceDataSet[] getDataSets();

사용예제)

IgauceService GauceService = Loader.newService();

IGauceRequest GauceResquest = GauceService.getRequest();

// DataSet객체배열을 얻어온다.

GauceDataSet[] oaDataSet = GauceService.getDataSets();

for(int i=0; i<oaDataSet.Length; i++){

// Client에서 날려준 DataTable과 같은 이름을 가진 DataTable을 찾는다.

    if(oaDataSet[i].getDataSetServerName().Equals("input1")){

        …………………………

    }

}

 

·      getDebugLoger

디버그 로거를 반환한다.

IGauceLoger getDebugLoger();

사용예제)

IgauceService GauceService = Loader.newService();

IGauceLoger GLoger = GauceService.getDebugLoger();

 

·      getEventLoger

이벤트 로거를 반환한다.

IGauceLoger getEventLoger();

사용예제)

IgauceService GauceService = Loader.newService();

IGauceLoger GLoger = GauceService.getEventLoger();

 

·      getMessageLoger

메시지 로거를 반환한다.

IGauceLoger getMessageLoger ();

사용예제)

IgauceService GauceService = Loader.newService();

IGauceLoger GLoger = GauceService.getMessageLoger();

 

·      getMessageSet

MessageSet 을 반환한다. 여기서 얻은 MessageSet 개체를 가지고 클라이언트로 보낼 사용자 메시지를 구성 할 수 있다.

GauceMessageSet getMessageSet();

사용예제)

IGauceService GauceService = Loader.newService();

GauceMessageSet GMessageSet = GauceService.getMessageSet();

……………………..

GMessageSet.addMessage("user1","74001","성공");

GMessageSet.printMessage(true);

 

·      getRequest

현재 수신핸들러를 반환한다.

IGauceRequest getRequest();

사용예제)

IgauceService GauceService = Loader.newService();

IGauceRequest GauceResquest = GauceService.getRequest();

 

·      getResponse

현재 송신핸들러를 반환한다.

두번쨰 메소드는 특정한 상황에서 송신 데이터 패킷의 형태를 변환 하고자 할 때 사용한다. 일반적인 경우에는 서비스개체 생성시에 설정한 환경설정값에 따라 송신 데이터 패킷의 형태가 결정된다.

IGauceResponse getResponse();

IGauceResponse getResponse(int iResponseFormat, bool boCompress,

                                                        int iFirstRowSize);

 

Parameter 명

설명

int iResponseFormat

송신할 패킷의 타입을 지정한다. (GauceDefine 값 이용)

[GAUCE DEFINE 값]

GauceDefine.CSV30_FORMAT 1

GauceDefine.BIN_FORMAT   2

GauceDefine.CSV_FORMAT   3

bool boCompress

송신할 패킷의 압축여부를 지정한다. (true or false)

int iFirstRowSize

송신할 패킷의 퍼스트로우 사이즈를 지정한다. 이 패킷 사이즈 단위 만큼씩 잘라서 클라이언트로 전송하게 된다.

0: 모든 데이터 패킷을 한거번에 전송하는 All Row 방식이 된다.

-1: Gauce System이 내부적으로 최적화된 퍼스트로우 사이즈를 제공한다.

사용예제)

IGauceService GauceService = Loader.newService(“crm_service”);

/*

Response data 패킷 type을 설정한다.

  CSV30 타입, 압축설정 안함, 퍼스트로우 패킷 단위 100

*/

IgauceResponse gsResponse =

         GauceService.getResponse(GauceDefine.CSV30_FORMAT,false,100);

 

·      newDataSet

DataSet을 생성한 후에 DataSet을 List에 추가한다. (1개 오버로딩)

첫번째 메소드는 해당 ServerName을 갖는 DataSet 개체를 생성하며, 두번째 메소드는 해당 IOMode와 ServerName을 갖고 클라이언트에서 바인딩될 DataSet이름이 ClientName 인 DataSet 을 생성한다.

GauceDataSet newDataSet(string strDataSetName);

GauceDataSet newDataSet(string stIOMode,string stServerName,

                                                     string stClientName)

 

Parameter 명

설명

string strDataSetName

새로 생성할 DataSet의 이름을 지정한다.

string stIOMode

새로 생성할 DataSet의 IO 모드를 지정한다.

string stServerName

새로 생성할 DataSet의 서버쪽 이름을 지정한다.

string stClientName

새로 생성할 DataSet의 클라이언트쪽 이름을 지정한다.

사용예제)

IGauceService GauceService = Loader.newService();

// Response data type을 설정한다.

IgauceResponse gsResponse =

          GauceService.getResponse(GauceDefine.CSV30_FORMAT,false,100);

// DataSet을 생성한다.

GauceDataSet oGDataSet = GauceService.newDataSet("output1");

 

·      end

Gauce Service 객체를 해제하고 서비스 종료를 처리한다.

void end();

사용예제)

IGauceService GauceService = Loader.newService();

……………….

// Gauce Service객체를 해제한다.

GauceService.end();

 

·      newDbHelper

GauceServiceHandler가 관리하는 GauceDbHelper 객체를 생성한다. 이미 존재하면 생성하지 않는다.

CGauceDbHelper newDbHelper();

사용예제)

IGauceService GauceService = Loader.newService();

……………….

// Gauce DbHelper 객체를 생성한다.

IGauceDbHelper oDbHelper = GauceService.newDbHelper();

 

·      getDbHelper

GauceServiceHandler가 관리하는 GauceDbHelper 객체를 반환한다.

IGauceDbHelper getDbHelper();

사용예제)

IGauceService GauceService = Loader.newService();

……………….

// Gauce DbHelper 객체를 생성한다.

GauceService.newDbHelper();

// 생성된 Gauce DbHelper 객체를 가져온다.

IGauceDbHelper oDbHelper = GauceService.getDbHelper();

 

 

 

IGauceRequest

METHODS

·      getParameter

Client에서 TR post방식으로 전송한 파리미터 값을 반환한다.

일반적인 GET방식의 파라미터값은 ASP.NET의 HTTPRequest개체의 기본메소드인 Request.QueryString() 을 사용하도록 한다. 이떄 주의할 점은 한글의 경우는 반드시 클라이언트에서 Encoding을 해서 보낸다음 서버쪽에서 Decoding을 해야 꺠지지 않고 안전하게 받을 수 있다는 점이다.

string getParameter(string stParameterKey);

 

Parameter 명

설명

string stParameterKey

찾고자 하는 파라미터의 키이름을 입력한다.

 

사용예제1)

IGauceService GauceService = Loader.newService();

IGauceRequest GRequest = GauceService.getRequest();

string stParam = GRequest.getParameter(“aaa”);

사용예제2)

// GET방식으로 날라온 아규먼트를 받는다.

// 한글이 깨지지 않게 하기위해 UrlDecode를 쓴다.

string stDtSetName =

                   Server.UrlDecode(Request.QueryString["Arg_empName"]);

 

·      getConfigProperty

Config 구조체인 GauceConfigProperty 를 반환한다. GauceConfigProperty는 ServiceHandler 개체에서도 참조 가능하다.

GauceConfigProperty getConfigProperty();

사용예제)

IGauceService GauceService = Loader.newService();

IGauceRequest GRequest = GauceService.getRequest();

GauceConfigProperty GConfigProperty = GRequest.getConfigProperty();

 

 

 

IGauceResponse

METHODS

·      getConfigProperty

Config 구조체인 GauceConfigProperty 를 반환한다. GauceConfigProperty는 ServiceHandler 개체에서도 참조 가능하다.

GauceConfigProperty getConfigProperty();

 

사용예제)

 

IGauceService GauceService = Loader.newService();

IGauceResponse GResponse = GauceService.getResponse();

GauceConfigProperty GConfigProperty = GResponse.getConfigProperty();

 

 

·      getTargetType

현재 지정된 송신대상을 반환한다.

int getTargetType();

송신 대상 GAUCE DEFINE 값

GauceDefine.GN_TARGET_COMMON  0   // 일반 클라이언트로 송신

GauceDefine.GN_TARGET_PLD     1   // PLD로 송신

GauceDefine.GN_TARGET_DWB     2   // Dynamic Web Builder로 송신

 

사용예제)

 

IGauceService GauceService = Loader.newService();

IgauceResponse GResponse =

                      GauceService.getResponse(CSV30_FORMAT,false,100);

// DataSet을 생성한다.

GauceDataSet oGDataSet = GauceService.newDataSet("output1");

// DataSet의 컬럼들을 정의 한다.

………………………………………………………

if(GResponse.getTargetType() == GauceDefine.GN_TARGET_COMMON){

     // PLD나 DWD 가 아닌 경우에만 실제 쿼리작업을 진행한다.

}

 

 

·      write

현재 DataSet List에 있는 데이터(DataSet들)를 클라이언트로 송신한다. 이 메소드는 내부적으로 DataSet개체의 addDataRow()나 addDataRows() 메소드에 의해 호출된다.

void write();

사용예제)

 

IGauceService GauceService = Loader.newService();

IGauceResponse GResponse = GauceService.getResponse();

…………………………………..

// 모든 DataSet들을 클라이언트로 한꺼번에 송신한다.

GResponse.write();

 

 

 

 

GauceDataSet

METHODS

·      addDataColumn (+4개 오버로드)

DataSet의 컬럼속성을 지정한다. 첫번쨰 메소드의 경우는 컬럼의 사이즈를 서버가 디폴트로 지정하도록 할 경우 사용. 나머지 메소드들은 사용자가 사이즈와 반올림 정도등을 지정할 경우 사용한다.

void addDataColumn(string stColName,int iDataType); // default

void addDataColumn(string stColName,int iDataType,int iSize);

void addDataColumn(string stColName,int iDataType,int iSize,int iKeyType);

void addDataColumn(string stColName,int iDataType,int iSize,int iKeyType,

                  int iDec);

void addDataColumn(string stColName,int iDataType,int iSize,int iKeyType,

                   int iDec,int iRoundMode)

 

Parameter 명

설명

string stColName

컬럼 이름을 입력한다.

int iDataType

컬럼 타입을 지정한다.

[GauceDefine]

GauceDefine.TB_BLOB    0x09 // BLOB Type

GauceDefine.TB_URL     0x0a    // URL Type

GauceDefine.TB_STRING  0x01    // String Type

GauceDefine.TB_INT     0x02    // Int32 Type

GauceDefine.TB_DECIMAL 0x04    // Decimal Type

GauceDefine.TB_BIGINT  0x0d    // Int64 Type (4.0.1버전부터 지원)

int iSize

컬럼의 전체 사이즈를 입력한다.

int iKeyType

컬럼의 Key 타입을 입력한다.

[GauceDefine]

GauceDefine.TB_NORMAL        0x00  // Nomal column

GauceDefine.TB_NOTNULL       0x01  // NotNUll column

GauceDefine.TB_KEY           0x03  // Key column

GauceDefine.TB_SEQUENCE      0x07  // Sequence column

GauceDefine.TB_CONSTANT      0x0F  // Constant column

int iDec

컬럼타입이 Decimal인 경우 컬럼의 소수점 이하 자리수를 입력한다.

int iRoundMode

컬럼타입이 Decimal인 경우 소숫점 처리 방식을 지정한다.

[GauceDefine]

GauceDefine.DECIMAL_CEIL       1     // 올림

GauceDefine.DECIMAL_ROUND      2     // 반올림

GauceDefine.DECIMAL_FLOOR      3     // 버림

사용예제)

 

// DataSet을 생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

 

// DataSet의 컬럼속성을 지정한다.

GDS.addDataColumn("id",GauceDefine.TB_INT);       //defult size=10

GDS.addDataColumn("name",GauceDefine.TB_STRING);  //default size=255

//default size=29,소수자리=0

GDS.addDataColumn("pno",GauceDefine.TB_DECIMAL);  

GDS.addDataColumn("id1",GauceDefine.TB_INT,4);        //size=4

GDS.addDataColumn("name1",GauceDefine.TB_STRING,64);  //size=64

//size=10, 소수자리=3

GDS.addDataColumn("pno1",GauceDefine.TB_DECIMAL,10,3);

//size=10, 소수자리=3, 반올림

GDS.addDataColumn("pno2",GauceDefine.TB_DECIMAL,10,3,

                   GauceDefine.DECIMAL_ROUND);

 

// 컬럼속성 지정이 끝났음을 알린다.

GDS.addDataColumnEnd();

 

 

·      addDataColumn2 (+4개 오버로드)

4.0에서 사용하던 addDataColumn 메소드와 기능은 동일하지만, GauceDefine 값 대신 4.0.1에서 추가된 GauceVariable에 정의된 값을 사용하여 정적 변수의 접근을 쉽게 하였다. (부록 2-2 GauceVariable 참조).

Void addDataColumn2(string stColName,

                    GauceVariable.ColumnDataType enmColumnDataType)

void addDataColumn2(string stColName,

                    GauceVariable.ColumnDataType enmColumnDataType,int iSize)

void addDataColumn2(string stColName,

                    GauceVariable.ColumnDataType enmColumnDataType,int iSize,

                    GauceVariable.ColumnKeyType enmKeyType)

void addDataColumn2(string stColName,

                    GauceVariable.ColumnDataType enmColumnDataType,int iSize,

                    GauceVariable.ColumnKeyType enmKeyType, int iDec)

void addDataColumn2(string stColName,

                    GauceVariable.ColumnDataType enmColumnDataType,int iSize,

                   GauceVariable.ColumnKeyType enmKeyType,int iDec,

                   GauceVariable.DecimalPointType enmDecimalPoint)

 

Parameter 명

설명

string stColName

컬럼 이름을 입력한다.

GauceVariable. ColumnDataType enmColumnDataType

컬럼 타입을 지정한다.

[GauceDefine]

GauceDefine.TB_BLOB    0x09 // BLOB Type

GauceDefine.TB_URL     0x0a    // URL Type

GauceDefine.TB_STRING  0x01    // String Type

GauceDefine.TB_INT     0x02    // Int32 Type

GauceDefine.TB_DECIMAL 0x04    // Decimal Type

GauceDefine.TB_BIGINT  0x0d    // Int64 Type (4.0.1버전부터 지원)

int iSize

컬럼의 전체 사이즈를 입력한다.

GauceVariable. ColumnKeyType enmKeyType

컬럼의 Key 타입을 입력한다.

[GauceDefine]

GauceDefine.TB_NORMAL        0x00  // Nomal column

GauceDefine.TB_NOTNULL       0x01  // NotNUll column

GauceDefine.TB_KEY           0x03  // Key column

GauceDefine.TB_SEQUENCE      0x07  // Sequence column

GauceDefine.TB_CONSTANT      0x0F  // Constant column

int iDec

컬럼타입이 Decimal인 경우 컬럼의 소수점 이하 자리수를 입력한다.

GauceVariable. DecimalPointType enmDecimalPoint

컬럼타입이 Decimal인 경우 소숫점 처리 방식을 지정한다.

[GauceDefine]

GauceDefine.DECIMAL_CEIL       1     // 올림

GauceDefine.DECIMAL_ROUND      2     // 반올림

GauceDefine.DECIMAL_FLOOR      3     // 버림

사용예제)

// DataSet을 생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

// DataSet의 컬럼속성을 지정한다.

// default size = 10

GDS.addDataColumn2("id",GauceVariable.ColumnDataType.INT);

// default size = 255

GDS.addDataColumn2("name",GauceVariable.ColumnDataType.STRING);

//default size=29, 소수자리=0

GDS.addDataColumn2("pno",GauceVariable.ColumnDataType.DECIMAL);

// default size = 4

GDS.addDataColumn2("id1", GauceVariable.ColumnDataType.INT,4);

// default size = 64

GDS.addDataColumn2("name1", GauceVariable.ColumnDataType.STRING,64);

//size=10, 소수자리=3

GDS.addDataColumn2("pno1", GauceVariable.ColumnDataType.DECIMAL,10,3);

//size=10, 소수자리=3, 반올림

GDS.addDataColumn2("pno2", GauceVariable.ColumnDataType.DECIMAL,10,3,

                                 GauceVariable.DecimalPointType.ROUND);

// 컬럼속성 지정이 끝났음을 알린다.

GDS.addDataColumnEnd();

 

·      addDataColumnEnd

Data Coulmn에 대한 추가가 종료되었음을 알려주고 Data Row에 대한 입력을 준비한다.

void addDataColumnEnd();

사용예제)

// DataSet을  생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

// DataSet의 컬럼속성을 지정한다.

GDS.addDataColumn2("id",  GauceVariable.ColumnDataType.INT);

GDS.addDataColumn2("name",GauceVariable.ColumnDataType.STRING);

GDS.addDataColumn2("pno", GauceVariable.ColumnDataType.DECIMAL);

// 컬럼속성 지정이 끝났음을 알린다.

GDS.addDataColumnEnd();

 

·      addChangingDataColumn (+9개 오버로딩)

GauceBasePage의 commonSelet, postSelect, multiSelect등의 DataSet의 컬럼헤더속성을 자동으로 지정하는 메소드를 호출하기 전에 자동화 하지 않을 DataSet의 컬럼헤더속성을 지정한다.

즉, DataReader나 .NET DataSet의 스키마 정보를 통해 Gauce DataSet의 컬럼헤더속성을 설정하지 않고 addChangingDataColumn으로 지정한 값으로 컬럼헤더 속성을 지정할 경우 사용한다.

첫번쨰 메소드의 경우는 컬럼의 사이즈를 서버가 디폴트로 지정하도록 할 경우 사용하고, 나머지 메소드들은 사용자가 사이즈와 반올림 정도등을 지정할 경우 사용한다.

이 메소드는 DataSet의 컬럼헤더속성설정 이전에 사용한다.

void addChangingDataColumn(string stColName, int iDataType);

void addChangingDataColumn(string stColName,int iDataType,int iSize);

void addChangingDataColumn(string stColName,int iDataType,int iSize,

                          int iKeyType);

void addChangingDataColumn(string stColName,int iDataType,int iSize,

                          int iKeyType, int iDec);

void addChangingDataColumn(string stColName,int iDataType,int iSize,

                          int iKeyType, int iDec,int iRoundMode)

void addChangingDataColumn(string stColName, string stMappingName,

                          int iDataType)

void addChangingDataColumn(string stColName, string stMappingName,

                          int iDataType,int iSize);

void addChangingDataColumn(string stColName, string stMappingName,

                          int iDataType,int iSize,int iKeyType);

void addChangingDataColumn(string stColName, string stMappingName,

                          int iDataType,int iSize,int iKeyType, int iDec);

void addChangingDataColumn(string stColName, string stMappingName,

                          int iDataType, int iSize, int iKeyType, int iDec,

                          int iRoundMode);

 

Parameter 명

설명

string stColName

컬럼 이름을 입력한다.

string stMappingName

실제 클라이언트에서 사용한 원본 컬럼과 매핑되는 컬럼 이름을 입력한다. GAUCE for .NET 5.0 버전부터 지원

int iDataType

컬럼 타입을 지정한다.

[GauceDefine]

GauceDefine.TB_BLOB    0x09 // BLOB Type

GauceDefine.TB_URL     0x0a    // URL Type

GauceDefine.TB_STRING  0x01    // String Type

GauceDefine.TB_INT     0x02    // Int32 Type

GauceDefine.TB_DECIMAL 0x04    // Decimal Type

GauceDefine.TB_BIGINT  0x0d    // Int64 Type (4.0.1버전부터 지원)

int iSize

컬럼의 전체 사이즈를 입력한다.

int iKeyType

컬럼의 Key 타입을 입력한다.

[GauceDefine]

GauceDefine.TB_NORMAL        0x00  // Nomal column

GauceDefine.TB_NOTNULL       0x01  // NotNUll column

GauceDefine.TB_KEY           0x03  // Key column

GauceDefine.TB_SEQUENCE      0x07  // Sequence column

GauceDefine.TB_CONSTANT      0x0F  // Constant column

int iDec

컬럼타입이 Decimal인 경우 컬럼의 소수점 이하 자리수를 입력한다.

int iRoundMode

컬럼타입이 Decimal인 경우 소숫점 처리 방식을 지정한다.

[GauceDefine]

GauceDefine.DECIMAL_CEIL       1     // 올림

GauceDefine.DECIMAL_ROUND      2     // 반올림

GauceDefine.DECIMAL_FLOOR      3     // 버림

 

사용예제)

string strSql = “select id, name, address, image_url, tel from emp”;

 

// DataSet을 생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

 

// id, name, address, image_url, tel 중 변경할 DataSet의 컬럼속성 만을

// 지정한다.

GDS.addChangingDataColumn("id",GauceDefine.TB_INT);

GDS.addChangingDataColumn("image_url",GauceDefine.TB_URL);

// 원본 데이터소스의 컬럼명은 ‘org_name’이지만,

// 클라이언트에서는 ‘map_name’을 사용한다.

GDS.addChangingDataColumn("org_name", “map_name”,

                                            GauceDefine.TB_STRING, 10);

 

oGaBasePage.commonSelect(oConn, GDS, strSql);

 

·      addChangingDataColumn2 (+9개 오버로딩)

4.0에서 사용하던 addChangingDataColumn 메소드와 기능은 동일하지만, GauceDefine 값 대신 4.0.1에서 추가된 GauceVariable의 enum 값을 사용하여 정적 변수의 접근을 쉽게 하였다.

(부록 2-2 GauceVariable 참조).

void addChangingDataColumn2(string stColName,

GauceVariable.ColumnDataType enmColumnDataType)

void addChangingDataColumn2(string stColName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize)

void addChangingDataColumn2(string stColName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize,GauceVariable.ColumnKeyType enmKeyType)

void addChangingDataColumn2(string stColName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize,GauceVariable.ColumnKeyType enmKeyType,

int iDec)

void addChangingDataColumn2(string stColumnName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize, GauceVariable.ColumnKeyType enmKeyType,

int iDec,

GauceVariable.DecimalPointType enmDecimalPoint)

void addChangingDataColumn2(string stColName, string stMappingName,

GauceVariable.ColumnDataType enmColumnDataType)

void addChangingDataColumn2(string stColName, string stMappingName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize)

void addChangingDataColumn2(string stColName, string stMappingName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize,

GauceVariable.ColumnKeyType enmKeyType)

void addChangingDataColumn2(string stColName, string stMappingName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize,

GauceVariable.ColumnKeyType enmKeyType,

int iDec)

void addChangingDataColumn2(string stColumnName, string stMappingName,

GauceVariable.ColumnDataType enmColumnDataType,

int iSize, GauceVariable.ColumnKeyType enmKeyType,

                          int iDec,

                          GauceVariable.DecimalPointType enmDecimalPoint)

 

Parameter 명

설명

string stColName

컬럼 이름을 입력한다.

string stMappingName

실제 클라이언트에서 사용한 원본 컬럼과 매핑되는 컬럼 이름을 입력한다. GAUCE for .NET 5.0 버전부터 지원

GauceVariable. ColumnDataType enmColumnDataType

컬럼 타입을 지정한다.

[GauceDefine]

GauceDefine.TB_BLOB    0x09 // BLOB Type

GauceDefine.TB_URL     0x0a    // URL Type

GauceDefine.TB_STRING  0x01    // String Type

GauceDefine.TB_INT     0x02    // Int32 Type

GauceDefine.TB_DECIMAL 0x04    // Decimal Type

GauceDefine.TB_BIGINT  0x0d    // Int64 Type (4.0.1버전부터 지원)

int iSize

컬럼의 전체 사이즈를 입력한다.

GauceVariable. ColumnKeyType enmKeyType

컬럼의 Key 타입을 입력한다.

[GauceDefine]

GauceDefine.TB_NORMAL        0x00  // Nomal column

GauceDefine.TB_NOTNULL       0x01  // NotNUll column

GauceDefine.TB_KEY           0x03  // Key column

GauceDefine.TB_SEQUENCE      0x07  // Sequence column

GauceDefine.TB_CONSTANT      0x0F  // Constant column

int iDec

컬럼타입이 Decimal인 경우 컬럼의 소수점 이하 자리수를 입력한다.

GauceVariable. DecimalPointType enmDecimalPoint

컬럼타입이 Decimal인 경우 소숫점 처리 방식을 지정한다.

[GauceDefine]

GauceDefine.DECIMAL_CEIL       1     // 올림

GauceDefine.DECIMAL_ROUND      2     // 반올림

GauceDefine.DECIMAL_FLOOR      3     // 버림

 

사용예제)

string strSql = “select id, name, address, image_url, tel from emp”;

 

// DataSet을 생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

 

// id, name, address, image_url, tel 중 변경할 DataSet의 컬럼속성만을 지정한다.

GDS.addChangingDataColumn2("id", GauceVariable.ColumnDataType.INT);

GDS.addChangingDataColumn2("image_url", GauceVariable.ColumnDataType.TB_URL);

// 원본 데이터소스의 컬럼명은 ‘org_name’이지만,

// 클라이언트에서는 ‘map_name’을 사용한다.

// 컬럼이름과 함께, 타입과 사이즈도 같이 변경하는 경우이다.

GDS.addChangingDataColumn2 ("org_name", “map_name”,

                            GauceVariable.ColumnDataType.TB_STRING, 10);

 

oGaBasePage.commonSelect(oConn, GDS, strSql);

 

·      addChangingDataColumnName

원본 데이터셋(또는 데이터 소스)에서 정의된 컬럼이름을 런타임 시에 다른이름으로 변경하여 사용하고자 할 경우 이용한다.

GAUCE for .NET 5.0 버전부터 지원한다.

void addChangingDataColumnName(string stColName, string stMappingName);

 

Parameter 명

설명

string stColName

컬럼 이름을 입력한다.

string stMappingName

실제 클라이언트에서 사용한 원본 컬럼과 매핑되는 컬럼 이름을 입력한다.

사용예제)

string strSql = “select id, name, address, image_url, tel from emp”;

// DataSet을 생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

 

// id, name, address, image_url, tel 중 변경할 DataSet의 컬럼속성만을 지정한다.

GDS.addChangingDataColumn2("id", GauceVariable.ColumnDataType.INT);

GDS.addChangingDataColumn2("image_url",

                              GauceVariable.ColumnDataType.TB_URL);

// 원본 데이터소스의 컬럼명은 ‘org_name’이지만,

// 클라이언트에서는 ‘map_name’을 사용한다.

GDS.addChangingDataColumnName ("org_name", “map_name”);

 

oGaBasePage.commonSelect(oConn, GDS, strSql);GDS.addDataColumnEnd();

 

·      addDataRowValue

DataSet에 입력할 현재로우의 컬럼데이터 값을 세팅한다. (1개 오버로딩)

첫번째 메소드는 해당 index를 갖는 컬럼에 결과 데이터를 세팅한다. 두번째 메소드는 해당 컬럼이름을 갖는 컬럼에 결과 데이터를 세팅한다.

void addDataRowValue(int iIndex, object oValue);

void addDataRowValue(string strName, object oValue);

 

Parameter 명

설명

int iIndex

컬럼의 index을 입력한다. (index는 0부터 시작한다.)

string strName

컬럼의 이름을 입력한다.

object oValue

컬럼의 실제 데이터값을 입력한다.

사용예제)

// DataSet을 생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

…………………………………………………

// 쿼리를 수행한 결과 셑을 받는다.

SqlDataReader dr = myCommand.ExecuteReader();

while(dr.Read()) {

   // 컬럼의 index를 이용하는 경우

    //GDS.addDataRowValue (0, dr["id"]);

    //GDS.addDataRowValue (1, dr["name"]);

    //GDS.addDataRowValue (2, dr["pno"]);

    // 컬럼의 이름을 이용하는 경우

    GDS.addDataRowValue ("id", dr["id"]);

    GDS.addDataRowValue ("name", dr["name"]);

    GDS.addDataRowValue ("pno", dr["pno"]);

   

// DataSet에 한 로우를 입력한다.

GDS.addDataRow();

}

 

·      addDataRow

DataSet에 한 Row 값을 입력한다.

퍼스트로우 방식인 경우는 내부적으로 firstrow_size 만큼 DataSet에 데이터가 쌓이게 되면 클라이언트로 데이터를 전송하게 된다.

void addDataRow();

 

사용예제)

// DataSet을  생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

…………………………………………………

// 쿼리를 수행한 결과 셑을 받는다.

SqlDataReader dr = myCommand.ExecuteReader();

while(dr.Read())

{

    GDS.addDataRowValue ("id", dr["id"]);

    GDS.addDataRowValue ("name", dr["name"]);

    GDS.addDataRowValue ("pno", dr["pno"]);

   

// DataSet에 한 로우를 입력한다.

GDS.addDataRow();

}

 

·      addDataRows

DataSet에 DB쿼리결과 데이터 전체 Row 값을 입력한다.

퍼스트로우 방식인 경우는 내부적으로 firstrow_size 만큼 DataSet에 데이터가 쌓이게 되면 클라이언트로 데이터를 전송하게 된다. 첫번쨰 메소드는 SqlDataReader를 사용하여 Row 값들을 입력한다. 두번째 메소드는 OleDbDataReader를 사용하여 Row 값들을 입력한다. 세번째 메소드는 OracleDataReader를 사용하여 Row 값들을 입력한다. 네번째 메소드는 OdbcDataReader를 사용하여 Row 값들을 입력한다.

void addDataRows(SqlDataReader dr);

void addDataRows(OleDbDataReader dr);

void addDataRows(OracleDataReader dr);

void addDataRows(OdbcDataReader dr);

 

Parameter 명

설명

SqlDataReader dr

SqlDataReader를 통한 결과 데이터셑을 입력한다.

OleDbDataReader dr

OleDbDataReader를 통한 결과 데이터셑을 입력한다.

OracleDataReader dr

OracleDataReader를 통한 결과 데이터셑을 입력한다.

OdbcDataReader dr

OdbcDataReader를 통한 결과 데이터셑을 입력한다.

 

사용예제1) SqlDataReader

// DataSet을  생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

…………………………………………………

// 쿼리를 수행한 결과 셑을 받는다.

SqlDataReader dr = myCommand.ExecuteReader();

// DataSet에 SqlDataReader를 통한 DB 결과셑을 입력한다.

GDS.addDataRows(dr);

 

사용예제2) OleDbDataReader

// DataSet을  생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

…………………………………………………

// 쿼리를 수행한 결과 셑을 받는다.

OleDbDataReader dr = myCommand.ExecuteReader();

// DataSet에 OleDbDataReader 를 통한 DB 결과셑을 입력한다.

GDS.addDataRows(dr);

 

·      getDataRowCommandType

DataSet의 해당 DataRow의 CommandType(select/insert/update/delete)을 반환한다.

이 메소드는 Transaction Type 서비스에서 사용한다.

int getDataRowCommandType(int iRow);

 

Parameter 명

설명

int iRow

동작되는 Row index가 넘어온다.

사용예제)

GauceBasePage oGBasePage =

           new GauceBasePage(Server, Request, Response);

GauceConnection oConn =

             oGBasePage.GauceDbHelper.addConnection("conn1",

                        GauceVariable.DbProviderType.MSSQL, null, 0);

 

string strSql = "";      // 쿼리문을 저장할 변수

…………………………………………………

DataTable dtTable = oaDataSet[i].Tables[0];

for(int j=0; j< dtTable.Rows.Count; j++) {

  DataRow drRow = dtTable.Rows[j];

  if(oaDataSet[i].getDataRowCommandType(j) == GauceDefine.TB_JOB_INSERT)

  {   //Insert Job

      // Insert 쿼리문을 작성합니다.

        strSql = " insert into getmethod_0800 (id, data1, data2) "+

" values (@id, @data1, @data2)";

           

        // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

        GauceParameter oGparam = new GauceParameter();

        oGparam.add ("id", drRow["id"]);

      oGparam.add ("data1", drRow["data1"]);

      oGparam.add ("data2", drRow["data2"]);

      oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

  }

  else if(oaDataSet[i].getDataRowCommandType(j) ==

                                            GauceDefine.TB_JOB_UPDATE)

  {   // Update Job

      // Update 쿼리문을 작성합니다.

      strSql = " update getmethod_0800 "+

" set data1=@ data1, data2=@ data2where id=@id ";

 

            // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

        GauceParameter oGparam = new GauceParameter();

      oGparam.add ("data1", drRow["data1"]);

      oGparam.add ("data2", drRow["data2"]);

      oGparam.add ("id", drRow["id"]);

      oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

  }

  else if(oaDataSet[i].getDataRowCommandType(j) ==

                                            GauceDefine.TB_JOB_DELETE)

  {   // Delete Job

        // Delete 쿼리문을 작성합니다.

      strSql = " delete from getmethod_0800 where id=@id ";

       

        // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

        GauceParameter oGparam = new GauceParameter();

        oGparam.add ("id", drRow["id"]);

        oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

  }

}

 

·      getDataRowCommandType2

DataSet의 해당 DataRow의 CommandType(select/insert/update/delete)을 반환한다.

이 메소드는 Transaction Type 서비스에서 사용한다.

GauceVariable.RowCommandType getDataRowCommandType2(int iRow);

 

Parameter 명

설명

int iRow

동작되는 Row index가 넘어온다.

GauceVariable.RowCommandType

RetrunValue : GauceVariable.RowCommandType

[GauceVariable의 RowCommandType 열거형 값]

    GauceVariable.RowCommandType.NORMAL    // 일반행

    GauceVariable.RowCommandType.INSERT    // 입력작업

    GauceVariable.RowCommandType.UPDATE    // 수정작업

    GauceVariable.RowCommandType.DELETE    // 삭제작업

사용예제)

GauceBasePage oGBasePage =

           new GauceBasePage(Server, Request, Response);

GauceConnection oConn =

           oGBasePage.GauceDbHelper.addConnection("conn1",      

           GauceVariable.DbProviderType.MSSQL, null, 0);

string strSql = "";      // 쿼리문을 저장할 변수

…………………………………………………

DataTable dtTable = oaDataSet[i].Tables[0];

for(int j=0; j< dtTable.Rows.Count; j++)

{

  DataRow drRow = dtTable.Rows[j];

  if(oaDataSet[i].getDataRowCommandType2(j) ==

                                  GauceVariable.RowCommandType.INSERT)

  {   //Insert Job

      // Insert 쿼리문을 작성합니다.

    strSql = " insert into getmethod_0800 (id, data1, data2) "+

             " values (@id, @data1, @data2)";

           

      // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

      GauceParameter oGparam = new GauceParameter();

      oGparam.add ("id", drRow["id"]);

      oGparam.add ("data1", drRow["data1"]);

      oGparam.add ("data2", drRow["data2"]);

      oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

  }

  else if(oaDataSet[i].getDataRowCommandType2(j) ==

                                 GauceVariable.RowCommandType.UPDATE)

  {   // Update Job

      // Update 쿼리문을 작성합니다.

      strSql = " update getmethod_0800 "+

               " set data1=@ data1, data2=@ data2where id=@id ";

      // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

      GauceParameter oGparam = new GauceParameter();

      oGparam.add ("data1", drRow["data1"]);

      oGparam.add ("data2", drRow["data2"]);

      oGparam.add ("id", drRow["id"]);

      oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

  }

  else if(oaDataSet[i].getDataRowCommandType2(j) ==

                                 GauceVariable.RowCommandType.DELETE)

  {   // Delete Job

        // Delete 쿼리문을 작성합니다.

      strSql = " delete from getmethod_0800 where id=@id ";

       

      // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

      GauceParameter oGparam = new GauceParameter();

      oGparam.add ("id", drRow["id"]);

      oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

  }

}

 

·      isInsertRow, isUpdateRow, isDeleteRow, isNormalRow

DataSet의 해당 DataRow의 CommandType(select/insert/update/delete)의 bool 형을 반환한다.

이 메소드들은 Transaction Type 서비스에서 사용한다.

bool isInsertRow(int iRow)

bool isUpdateRow(int iRow)

bool isDeleteRow(int iRow)

bool isNormalRow(int iRow)

 

Method 명

반환값 설명

isInsertRow

DataSet의 해당 DataRow의 CommandType이 Insert 일때 TRUE 를 반환한다.

isUpdateRow

DataSet의 해당 DataRow의 CommandType이 Update 일때 TRUE 를 반환한다.

isDeleteRow

DataSet의 해당 DataRow의 CommandType이 Delete 일때 TRUE 를 반환한다.

isNormalRow

DataSet의 해당 DataRow의 CommandType이 Select 일때 TRUE 를 반환한다.

사용예제)

GauceBasePage oGBasePage =

                     new GauceBasePage(Server, Request, Response);

GauceConnection oConn =

               oGBasePage.GauceDbHelper.addConnection("conn1",

               GauceVariable.DbProviderType.MSSQL, null, 0);

string strSql = "";    // 쿼리문을 저장할 변수

…………………………………………………

DataTable dtTable = oaDataSet[i].Tables[0];

for(int j=0; j< dtTable.Rows.Count; j++)

{

    DataRow drRow = dtTable.Rows[j];

       if(oaDataSet[i].isInsertRow(j))    //Insert Job

    {  

        // Insert 쿼리문을 작성합니다.

        strSql = " insert into getmethod_0800 (id, data1, data2) "+

" values (@id, @data1, @data2)";

           

        // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

            GauceParameter oGparam = new GauceParameter();

oGparam.add ("id", drRow["id"]);

        oGparam.add ("data1", drRow["data1"]);

        oGparam.add ("data2", drRow["data2"]);

       

oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

    }

        else if(oaDataSet[i].isUpdateRow(j))    // Update Job

    {  

        // Update 쿼리문을 작성합니다.

        strSql = " update getmethod_0800 "+

" set data1=@ data1, data2=@ data2where id=@id ";

 

            // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

            GauceParameter oGparam = new GauceParameter();

        oGparam.add ("data1", drRow["data1"]);

        oGparam.add ("data2", drRow["data2"]);

oGparam.add ("id", drRow["id"]);

       

oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

    }

        else if(oaDataSet[i].isDeleteRow(j))    // Delete Job

    {  

        // Delete 쿼리문을 작성합니다.

        strSql = " delete from getmethod_0800 where id=@id ";

       

        // 쿼리문에 포함된 호스트변수들의 파라미터값을 설정합니다.

            GauceParameter oGparam = new GauceParameter();

oGparam.add ("id", drRow["id"]);

 

oGBasePage.execNonQuery2(oConn, strSql, oGparam, null);

    }

}

 

·      copyDataTable

.NET framework에서 제공하는 타입인 .NET DataTable객체를 GAUCE DataSet의 DataTable 객체로 복사한다.

이 메소드는 DataTable Header 스키마와 Data전체를 복사하는 메소드로 GAUCE DataSet이 생성되어 있고 DataTable이 비어 있을 때만 정상동작한다.

첫 번째 파라미터는 GAUCE DataSet으로 복사할 .NET framework의 .NET DataTable 객체를 입력한다.

void copyDataTable(DataTable iDataTable);

 

Parameter 명

설명

DataTable iDataTable

GAUCE DataSet으로 복사할 .NET Framework에서 제공하는 타입인 .NET DataTable 객체를 입력한다.

사용예제)

// GAUCE DataSet을 생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

…………………………………………………

// 쿼리를 수행한 결과 셑을 pure .NET DataTable에 입력한다.

SqlDataReader dr = myCommand.ExecuteReader();

 

// pure .NET DataTable 생성

DataSet ds부서조회 = new DataSet("testDataSet");

ds부서조회.Tables.Add("testDataTable");

 

// 부서조회 컬럼 생성

DataColumn myColumn = new DataColumn();

myColumn.DataType = System.Type.GetType("System.String");

myColumn.AllowDBNull = false;

myColumn.Unique = false;

myColumn.Caption = "deptnm";

myColumn.ColumnName = "deptnm";

myColumn.DefaultValue = "";

myColumn.MaxLength = 100;

// Add the column to the table.

ds부서조회.Tables[0].Columns.Add(myColumn);

 

ds부서조회.Tables[0].Columns.Add("year",

                                     Type.GetType("System.Int32"));

ds부서조회.Tables[0].Columns.Add("amt1",

                                 Type.GetType("System.Int32"));

ds부서조회.Tables[0].Columns.Add("amt2",

                                 Type.GetType("System.Int32"));

ds부서조회.Tables[0].Columns.Add("dec1",

                                 Type.GetType("System.Decimal"));

 

while(myReader.Read())

{  

    int iColumn;

    DataRow row = ds부서조회.Tables[0].NewRow();

    for (iColumn=0; iColumn< myReader.FieldCount; iColumn++)

    {

        row[iColumn] = myReader.GetValue(iColumn);

    }

    row[iColumn] = 12345.123456789;

    ds부서조회.Tables[0].Rows.Add(row);

}

 

//기 구성된 .NET DataTable을 가우스 DataSet으로 카피한다. 스키마까지

// 헤더와 데이터복사

GDS.copyDataTable(ds부서조회.Tables["testDataTable"]);

//GDS.cloneDataTable(ds부서조회.Tables[0]); // 헤더만복사 (1)

//GDS.cloneDataTableHeader(ds부서조회.Tables[0]);//헤더만복사(1)==(2)

//GDS.appendDataTable(ds부서조회.Tables[0]); // 데이터만 복사

 

GDS.end();

 

·      addDataColumsHeader

cloneDataTableHeader  =  cloneDataTable (Ver 3.0) 과 동일한 메소드이다.

.NET Framework에서 제공하는 타입인 일반 .NET DataTable 객체의 Header 스키마 또는 DataReader의 스키마 만을 GAUCE DataSet의 DataTable 객체로 복사한다.

이 메소드는 DataTable Header 스키마를 복사하는 메소드로 GAUCE DataSet이 생성되어 있고 DataTable 객체가 비어 있을 때만 정상동작한다.

첫번쨰 파라미터는 GAUCE DataSet으로 복사할 .NET Framework DataTable 객체를 입력한다.

예제는 copyDataTable의 예제를 참조하기 바란다.

void addDataColumnsHeader (DataTable iDataTable);

void addDataColumnsHeader (lDataReader myDataReader);

 

Parameter 명

설명

DataTable iDataTable

GAUCE DataSet으로 복사할 .NET Framework의 일반 .NET DataTable 객체를 입력한다.

lDataReader myDataReader

GAUCE DataSet으로 복사할 lDataReader 객체를 입력한다.

사용예제)

 

// SQLSERVER와의 커넥션 객체를 생성한다.              .

GauceDB DbObj = new GauceDB();

SqlConnection myConnection = DbObj.GetSqlDBConnection();

string stSQL = "SELECT * FROM titles";

 

// 쿼리문을 실행하고 그 결과셑을 받는다.              .

SqlCommand myCommand = new SqlCommand(stSQL, myConnection);

myConnection.Open();

       

// lDataReader로부터 GauceDataTable의 해더정보를 만든다.

lDataReader dr = myCommand.ExecuteReader();

 

// IDataReader로부터 GauceDataTable의 해더정보를 만든다.

oDataSet. addDataColumnsHeader(dr);

// lDataReader로부터 GauceDataTable에 데이터를 채워 넣는다.

oDataSet.addDataRows(dr);

 

// 결과셋 객체를 해제한다.

dr.Close();

myConnection.Close();

 

 

·      appendDataTable

.NET Framework의 일반  DataTable의 Header 스키마를 제외한 Data부분만을 GAUCE DataSet의 DataTable로 복사한다.

이 메소드는 DataTable의 Data를 복사하는 메소드로 GAUCE DataSet이 생성되어 있을 때만 정상동작한다. 첫번째 파라미터는 GAUCE DataSet으로 복사할  .NET Framework의 일반  DataTable 객체를 입력한다.

예제는 copyDataTable의 예제를 참조하기 바란다.

void appendDataTable(DataTable iDataTable);

 

Parameter 명

설명

DataTable iDataTable

GAUCE DataSet으로 복사할 .NET Framework에서 제공하는 일반 .NET DataTable 객체를 입력한다.

 

·      fillData

GauceDataSet 에 결과셑의 데이터를 채워넣는다.

void fillData(DataTable iDataTable)

void fillData(lDataReader myDataReader)

사용예제)

// DataSet을 생성한다.

GauceDataSet GauceDS = GauceService.newDataSet("output1");

IDataReader myReader = GauceDbHelper.buildDataReader(oGaConn, strSql);

GauceDS.fillData(myReader);

 

·      convertToNetDataSet

GAUCE DataSet을 pure .NET DataSet으로 캐스팅한다. 특히, GAUCE DataSet 만이 가지고 있는 각 로우의 작업스타일(command type) 필드까지 복사한다.

DataSet convertToDataSet();

사용예제)

DataSet oNetDataSet;

int iRowCommandType = 0;

 

// __gauce_command_type 필드가 추가되어 복사됩니다.

// oNetDataSet = (DataSet) GauceService.getDataSet("input1"); 과 같이

// 곧바로 캐스팅 하면 GAUCE DataSet의 command type 은 복사되지 않습니다.

oNetDataSet = GauceService.getDataSet("input1").convertToNetDataSet();

 

DataTable dtTable = oNetDataSet.Tables[0];

 

for(int i=0; i < dtTable.Rows.Count; i++)

{

DataRow drRow = dtTable.Rows[i];

 

iRowCommandType =

          Convert.ToInt32(dtTable.Rows[i][GauceDefine.COMMAND_TYPE_STRING]);

if(iRowCommandType == GauceDefine.TB_JOB_INSERT)

{

//insert 작업을 합니다.

}

else if(iRowCommandType == GauceDefine.TB_JOB_UPDATE)

{

//update 작업을 합니다.

}

else if(iRowCommandType == GauceDefine.TB_JOB_DELETE)

{

//delete 작업을 합니다.

}

}

 

 

·      end

GauceDataSet 객체를 해제한다.

이떄 내부적으로는 DataSet에 남은 로우데이터들을 클라이언트로 한거번에 전송한다.

void end();

사용예제)

 

// DataSet을  생성한다.

GauceDataSet GDS = GauceService.newDataSet("output1");

……………….

// GauceDataSet객체를 해제한다.

GDS.end();

 

 

 

 

GauceMessageSet

METHODS

·      addMessage

클라이언트로 송신 및 로그에 기록할 Message를 추가한다.

void addMessage(string stType, string stCode, string stMessage);

 

Parameter 명

설명

string stType

클라이언트에서 구분할 메시지타입을 입력한다. (예: “System”, “User”, “Etc”, …)

string stCode

메시지코드값을 입력한다.

string stMessage

메시지를 입력한다.

사용예제)

 

IGauceService GauceService = Loader.newService(Arg_domain_name);

GauceMessageSet GMS = GauceService.getMessageSet();

…………………………………………

GMS.addMessage("user", "70001", "성공");

GMS.printMessage(true);

 

 

·      setResult

Message를 전송하기전에 성공메시지인지 실패메시지인지를 지정한다.

void setResult(bool boSuccess);

 

Parameter 명

설명

bool boSuccess

성공/실패 여부를 입력한다.

사용예제)

 

GauceService GauceService  = Loader.newService(Arg_domain_name);

GauceMessageSet GMS = GauceService.getMessageSet();

…………………………………………

GMS.addMessage("user", "70001", "성공");

GMS.setResult(true);

GMS.printMessage();

 

 

·      getResult

Transaction 작업에서 작업이 성공인지 실패인지 결과를 얻어온다.

GAUCE for .NET 4.0.1 버전부터 지원한다.

bool getResult();

 

반환값

설명

bool

작업의 성공/실패 여부를 얻어온다.

사용예제)

 

printMessage 예제를 참조 하시오.

 

·      printMessage

메시지(서비스 수행결과)를 클라이언트로 송신한다. (1개 오버로딩)

이 메소드 호출은 Aspx서비스 내에서 단 한번만 이루어져야 한다. 두번째 메소드는 setResult() 와 printMessage() 를 통합한 형태의 메소드 이다.

void printMessage();

void printMessage(bool boSuccess);

 

반환값

설명

bool boSuccess

작업의 성공/실패 여부를 입력한다.

사용예제)

IGauceService GauceService = Loader.newService(Arg_domain_name);

GauceMessageSet GMS = GauceService.getMessageSet();

…………………………………………

GMS.addMessage("user", "70001", "성공");

/*

GMS.setResult(true);

GMS.printMessage();

*/

GMS.printMessage(true);  // 이것은 코맨트부분의 두행의 수행결과와 같다

 

 

GauceDebugLoger

METHODS

·      writeLog

Config에서 DebugLog의 log_debug_file_name로 설정한 파일에 사용자 로그를 남기기 위해 사용한다. 보통 개발시에 서비스 디버깅을 위해 사용한다. (+1개 오버로딩)

void writeLog(string stLogContent);

void writeLog(byte[] btaData);

 

Parameter 명

설명

string stLogContent

로그로 기록할 스트링형태의 메시지를 입력한다.

byte[] btaData

로그로 기록할 바이너리형태의 메시지를 입력한다.

사용예제)

 

IGauceService GauceService = Loader.newService(“crm_service”);

IGauceLoger GDebugLoger = GauceService.getDebugLoger();

GDebugLoger.writeLog(“태스트 메시지 입니다.”);

 

// Binary Data를 직접 넘길려면 byte array를 선언해서 값을 넘겨야 한다.

byte[] baData = new byte[1];

while(dr.Read())

{

    baData = (byte[]) dr["data_url"];

}

Response.BinaryWrite(baData);

GDebugLoger.writeLog(baData);

 

 

 

 

GauceParameterProperty

Parameter의 Property를 정의한 구조체입니다.

PROPERTIES

·      ParameterName [ get, set ]

GAUCE Parameter 이름을 가져오거나 설정합니다.

 

·      Size [ get, set ]

열 내부에 있는 데이터의 최대 크기를 바이트단위로 가져오거나 설정합니다.

 

·      Direction [ get, set ]

매개변수가 입력전용, 출력전용, 양방향 또는 저장프로시저의 반환값 매개변수 인지 여부를 나타내는 값을 가져오거나 설정합니다.

 

·      Value [ get, set ]

매개변수값을 가져오거나 설정합니다.

 

·      DbType [ get, set ]

매개변수 개체의 데이터 형식을 가져오거나 설정합니다.

 

·      Precision [ get, set ]

Value 속성을 나타내는데 사용된 숫자의 최대 자릿수를 가져오거나 설정합니다.

 

·      Scale [ get, set ]

Value 을 확인하는 소수 자릿수의 수를 가져오거나 설정합니다.

 

 

GauceParameter

GauceParameter는 키/값을 갖는 ArrayList 로 DB 파라미터를 관리하는 객체입니다.

오버로드된 add 메소드를 사용해서 키, 값뿐 아니라 DB Type, Size, Precision, Scale, Direction 등을 명시적으로 지정하여 좀 더 세밀하게 DB 파라미터를 관리할 수 있습니다.

PROPERTIES

·      ParameterCollection [ get, set ]

GAUCE Parameter 개체들을 담고있는 ArrayList를 반환합니다.

 

METHODS

·      add (+7개 오버로드)

GAUCE Parameter 객체에 DB 파라미터 하나를 추가합니다.

void add(string strName, object oValue)

void add(string strName, object oValue, ParameterDirection enmDirection)

void add(string strName, object oValue, GauceVariable.DbType enmDbType)

void add(string strName, object oValue, GauceVariable.DbType enmDbType,

         int nSize)

void add(string strName, object oValue, GauceVariable.DbType enmDbType,

         ParameterDirection enmDirection)

void add(string strName, object oValue, GauceVariable.DbType enmDbType,

         int nSize, ParameterDirection enmDirection)

void add(string strName, object oValue, GauceVariable.DbType enmDbType,

         int nSize, byte btPrecision, byte btScale)

void add(string strName, object oValue, GauceVariable.DbType enmDbType,

        int nSize, byte btPrecision, byte btScale,

        ParameterDirection enmDirection)

 

Parameter 명

설명

string strName

DB 파라미터의 이름을 지정합니다.

object oValue

DB 파라미터의 값을 지정합니다.

GauceVariable.DbType enmDbType

DB 파라미터의 DB Type 값을 지정합니다. (GauceVariable 값 사용)

    [GauceVariable의 DbType 열거형 값]

    String: 가변길이 문자열입니다.

    Char: 고정길이 문자열입니다.

    Text: 긴 문자열입니다. 6143 바이트까지 지원됩니다.

    Int: 32비트 부호있는 정수형입니다.

    BigInt: 64비트 부호 있는 정수형식입니다.

    Double: 부동 소숫점 수자입니다.

    Decimal: 고정전체 자릿수 및 소수 자릿수 값입니다.

    DateTime: 날짜 및 시간데이터입니다.

    Binary: 이진데이터의 고정길이 스트림값입니다.

            BLOB 타입에 사용합니다.

    Cursor: 커서타입을 지정할 경우 사용합니다. Oracle

            클라이언트 공급자에서만 지원되는 타입입니다.

int nSize

DB 파라미터의 크기를 지정합니다.

byte btPrecision

DB 파라미터의 전체 자리수를 지정합니다.

byte btScale

DB 파라미터의 소수 자리수를 지정합니다.

ParameterDirection enmDirection

DB 파라미터의 매개 변수 방향 속성을 지정합니다. (ParameterDirection 열거형 사용)

    [ParameterDirection 열거형 값]

    Input      : 입력 매개 변수입니다.

    InputOutput: 입력과 출력 모두 사용할 수 있습니다.

    Output     : 출력 매개 변수 입니다.

    ReturnValue: 저장 프로시저, 기본 제공 함수, 사용자

                 정의 함수 등과 같은 연산으로부터 반환값을

                 나타냅니다

 

사용예제)

 

// GauceParameter 객체 생성

GauceParameter oGparam = new GauceParameter();

// oGparam 객체에 Dbtype = Int(int32) 값을 갖는 DB 파라미터 추가.

oGparam.add("empid", oGBasePage.getStringParam("empid"), GauceVariable.DbType.Int);

// oGparam 객체에 size = 20(byte), Dbtype = String 값을 갖는 DB 파라미터 추가.

oGparam.add("empname", oGBasePage.getStringParam("empname"), 20,

GauceVariable.DbType.String);

// oGparam 객체에 size = 8(byte), precision = 15, scale = 3 , Dbtype = BigInt(int64)

// 값을 갖는 DB 파라미터 추가.

oGparam.add("totaccount", oGBasePage.getStringParam("totaccount "), 8,

            15, 3, GauceVariable.DbType. BigInt);

…

 

 

 

ActivexRollupFilter

ActiveX 관련 IE 부분패치에 대응하기 위한 RollupFilter 모듈입니다.

CONSTRUCT

·      ActivexRollupFilter (+1개 오버로드)

 

public ActivexRollupFilter(HttpApplication global,

      string strProjectMapPath);

public ActivexRollupFilter(HttpApplication global,

     string strProjectMapPath, GauceVariable.PacketEncodingType enumType)

 

Parameter 명

설명

HttpApplication global

HttpApplication 클래스의 개체를 사용합니다.

ASP.NET 응용 프로그램의 모든 응용 프로그램 개체에 공통된 메서드, 속성 및 이벤트를 정의합니다. 이 클래스는 사용자가 global.asax 파일에 정의한 응용 프로그램의 기본 클래스입니다.

string strProjectMapPath

ActivexRollupFilter를 적용할 웹프로젝트(웹사이트)의 전체 경로를 지정합니다.

GauceVariable. PacketEncodingType enumType

클라이언트 DataSet 콤포넌트와 상호 교환되는 컬럼데이터의 인코드타입을 지정합니다.

[GauceVariable의 PacketEncodingType 열거형 값]

GauceVariable.PacketEncodingType.NOMAL// 일반 ANSI 형식

GauceVariable.PacketEncodingType.UTF8 // UTF8 형식

GauceVariable.PacketEncodingType.UNICODE// UTF-16 형식

// UTF-16 BigEndian 형식

GauceVariable.PacketEncodingType.UNICODEBIG  

 

PROPERTIES

·      FilterKeyName [ get, set ]

ActivexRollFilter 기능을 제어할 키이름을 담고있는 속성값입니다.

키이름을 설정하지 않을 경우 default 값은 “ActivexRollupFilter” 입니다.

사용예제)

//Global.asax 파일에서 Application_BeginRequest 부분에 다음코드를

//추가한다.

 

protected void Application_BeginRequest(Object sender, EventArgs e) {

    // GauceLib를 사용하는 ASPX서비스에 대하여

// IE 6.0 부분패치에 대한 필터링을 수행하도록 객체를 등록한다.

// Response.Filter = new GauceLib.ActivexRollupFilter(this,

// Request.ApplicationPath);

 

    GauceLib.ActivexRollupFilter oGFilter =

new GauceLib.ActivexRollupFilter(this,

Request.ApplicationPath);

oGFilter.FilterKeyName = "MyFilter";

Response.Filter = oGFilter;

}

 

//web.config 파일에서 <appSettings> 영역에 위에서 설정한 FileKeyName 값을 설정한다.

<appSettings>

         <!-- IE patch에 대응하기 위한 키값 설정

              Key : FileKeyName ( default : “ActivexRollupFilter”)

              Value : “TRUE”  – ActiveRollupFileter 활성화

                      “FALSE” – ActiveRollupFileter 비활성화

-->

<!-- 키값을 지정하지않은경우 -->

<add key="ActivexRollupFilter" value="FALSE"/>

<!-- 키값을 지정한 경우 -->

<add key="MyFilter" value="TRUE"/>

</appSettings>

 

 

IGauceServiceCall

GAUCE for .NET 5.0 버전부터 지원하는 API입니다.

가우스 서비스 간의 통신을 할 수 있도록 API를 제공하는 인터페이스입니다.

[전제조건]

1. 조회서비스만 지원됩니다.

2. 호출되는 서비의 전송패킷이 가우스 New Packet (BINARY, CSV30) 일 때만 정상적으로 데이터를 수신할 수 있습니다.

METHODS

·      getData (+1개 오버로드)

기 작성된 가우스 서비스에 Get방식으로 요청을 보내어 결과셑으로 GauceDataSet을 생성하는 메소드입니다.

[주의 사항]

 이 메소드를 사용하여 얻어진 데이터셑을 재 가공하여 클라이언트로 보내는 경우는 반드시 호출하는 쪽의 서비스에서는 AllRow 방식을 사용해야 합니다.

 

bool getData(string Uri, string OutputDataSetName);

 bool getData(CommunicationInfo oComInfo);

 

Parameter 명

설명

string Uri

호출되는 가우스 서비스의 인터넷상의 위치값인 Uri입니다.

‘http://127.0.0.1/Test/Test.aspx?RequestData=GAUCE_NET_DATA‘와 같이 http 전체 경로와 필요한 파라미터로 구성된 Uri를 지정합니다.

string OutputDataSetName

호출되는 가우스 서비스가 결과셑으로 생성할 GauceDataSet의 이름입니다.

CommunicationInfo oComInfo

가우스 서비스를 호출하기 위해 필요한 정보를 담고 있는 객체로 다음과 같은 구조를 가지고 있습니다.

[CommunicationInfo 객체의 구조]

CommunicationInfo.ServiceUri

: 호출되는 가우스 서비스의 인터넷상의 위치값

CommunicationInfo.Params

: 호출 가우스 서비스에 필요한 파라미터 값들을 정의하며SortedList 자료구조를 사용합니다.

CommunicationInfo.Socd

: 호출 가우스 서비스가 생성하거나 참조할 GauceDataSet들 간의 매핑 관계(SOCD)를 정의하는 객체입니다. Socd는 GSocdInfo객체의 컬렉션으로 구성되어 있다.

[GSocdInfo 객체 구조]

GSocdInfo.DataSetType

: DataSet의 Input / Ouput 타입

GSocdInfo.ServerDataSetName

: 호출되는 가우스 서비스쪽에서 사용되는 데이터셋 이름                                    GSocdInfo.ClientDataSetName

: 호출하는 가우스 서비스쪽에서 사용하는 데이터셋 이름                               과 같은 구조를 가지고 있습니다.

 

사용예제1)

private void Page_Load(object sender, System.EventArgs e){

// 가우스페이지를 생성합니다.

GauceBasePage oGBasePage = new GauceBasePage(this.Page);

 

try

{               

// 가우스페이지를 초기화 합니다.

oGBasePage.initGaucePage("default");

 

// 다음 코드는 반드시 initGaucePage후에 와야 합니다.

if(oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA"){

   //getData 메소드 호출시 직접 호출할 서비스의 Uri를 기술하는 예입니다.

if(oGBasePage.GauceServiceCall.getData(

“http://localhost/GauceNetSample50_VS2003/Grid/GridSelect.aspx?"

+ "RequestData= GAUCE_NET_DATA”, “output1”) {

           GauceDataSet oGDS

                 = oGBasePage.GauceService.getDataSet("output1");

          if(oGDS != null)

               oGDS.end();

        }

        else   

// Error 처리는 안해도 GauceBasePage 릴리즈시에 자동으로 처리된다.

        {

          oGBasePage.addMessage2(GauceVariable.MessageType.Application,

"90001", "서비스 호출에 실패");

          oGBasePage.setResult(false);

        }

   }// end of if(oGBasePage.getStringParam(("RequestData") …

}// end of try

catch(Exception exp)

{

  oGBasePage.addMessage2(GauceVariable.MessageType.System,

"90000", exp.Message);

    oGBasePage.setResult(false);

}

finally

{

    oGBasePage.Release(); 

  }

 

사용예제2)

private void Page_Load(object sender, System.EventArgs e)

{

// 가우스페이지를 생성합니다.

GauceBasePage oGBasePage = new GauceBasePage(this.Page);

 

try

{               

// 가우스페이지를 초기화 합니다.

oGBasePage.initGaucePage("default");

 

// 다음 코드는 반드시 initGaucePage후에 와야 합니다.

if(oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA")

{

    // getData 메소드 호출시 직접 호출할 서비스의 Uri를 기술하지 않고

    // CommunicationInfo 객체를 이용하여 호출하는 예입니다.

        CommunicationInfo oComInfo = new CommunicationInfo();

        oComInfo.ServiceUri =  

        "http://localhost/GauceNetSample50_VS2003/Grid/GridSelect.aspx";

// SOCD를 생성하지 않으면 디폴트 SOCD인 'O:output=output' 이 생성된다.

// oComInfo.Socd.Add(new GSocdInfo(GauceVariable.DataSetType.OUTPUT,

//"output1", "output2"));

        oComInfo.Params.Add("RequestData", "GAUCE_NET_DATA");

        if(oGBasePage.GauceServiceCall.getData(oComInfo))

        {

            GauceDataSet oGDS

               = oGBasePage.GauceService.getDataSet("output");

           if(oGDS != null) oGDS.end();

        }

        else   

// Error 처리는 안해도 GauceBasePage 릴리즈시에 자동으로 처리된다.

        {

           oGBasePage.addMessage2(GauceVariable.MessageType.Application,

"90001", "서비스 호출에 실패");

           oGBasePage.setResult(false);

         }

}

}

catch(Exception exp)

{

oGBasePage.addMessage2(GauceVariable.MessageType.System,

"90000", exp.Message);

        oGBasePage.setResult(false);

}

finally

{

         oGBasePage.Release();

}

}

 

·      getOutputDataSet (+1개 오버로드)

기 작성된 가우스 서비스에 Get방식으로 요청을 보내어 결과셑으로 GauceDataSet을 바로 리턴받는 메소드입니다. 이 메소드는 GauceServiceCall.getData 메소드와 GauceService.getDataSet 메소드를 한꺼번에 처리하는 메소드로 생각할 수 있습니다.

GauceDataSet getOutPutDataSet(string Uri, string OutputDataSetName);

GauceDataSet getOutPutDataSet(CommunicationInfo oComInfo);

 

Parameter 명

설명

string Uri

호출되는 가우스 서비스의 인터넷상의 위치값인 Uri입니다.

‘http://127.0.0.1/Test/Test.aspx?RequestData=GAUCE_NET_DATA‘와 같이 http 전체 경로와 필요한 파라미터로 구성된 Uri를 지정합니다.

string OutputDataSetName

호출되는 가우스 서비스가 결과셑으로 생성할 GauceDataSet의 이름입니다.

CommunicationInfo oComInfo

가우스 서비스를 호출하기 위해 필요한 정보를 담고 있는 객체로 다음과 같은 구조를 가지고 있습니다.

[CommunicationInfo 객체의 구조]

CommunicationInfo.ServiceUri

: 호출되는 가우스 서비스의 인터넷상의 위치값

CommunicationInfo.Params

: 호출 가우스 서비스에 필요한 파라미터 값들을 정의하며SortedList 자료구조를 사용합니다.

CommunicationInfo.Socd

: 호출 가우스 서비스가 생성하거나 참조할 GauceDataSet들 간의 매핑 관계(SOCD)를 정의하는 객체입니다. Socd는 GSocdInfo객체의 컬렉션으로 구성되어 있다.

[GSocdInfo 객체 구조]

GSocdInfo.DataSetType

: DataSet의 Input / Ouput 타입

GSocdInfo.ServerDataSetName

: 호출되는 가우스 서비스쪽에서 사용되는 데이터셋 이름                                    GSocdInfo.ClientDataSetName

: 호출하는 가우스 서비스쪽에서 사용하는 데이터셋 이름                               과 같은 구조를 가지고 있습니다.

 

사용예제1)

 

private void Page_Load(object sender, System.EventArgs e)

{

// 가우스페이지를 생성합니다.

GauceBasePage oGBasePage = new GauceBasePage(this.Page);

                  

try

{               

// 가우스페이지를 초기화 합니다.

oGBasePage.initGaucePage("default");

 

// 다음 코드는 반드시 initGaucePage후에 와야 합니다.

if(oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA")

{

       CommunicationInfo oComInfo = new CommunicationInfo();

       oComInfo.ServiceUri =

        "http://localhost/GauceNetSample50_VS2003/Grid/GridSelect.aspx";

    // SOCD를 생성하지 않으면 디폴트 SOCD인 'O:output=output' 이

// 생성된다.

    //oComInfo.Socd.Add(new GSocdInfo(GauceVariable.DataSetType.OUTPUT,

// "output1", "output2"));

       oComInfo.Params.Add("RequestData", "GAUCE_NET_DATA");

 

       GauceDataSet oGDS =

          oGBasePage.GauceServiceCall.getOutputDataSet(oComInfo);

      

       if(oGDS != null) oGDS.end();

}

}

catch(Exception exp)

{

oGBasePage.addMessage2(GauceVariable.MessageType.System, "90000",

                  exp.Message);

oGBasePage.setResult(false);

}

finally

{

oGBasePage.Release();

}

}

 

 

 

IGauceQueryStorage

GAUCE for .NET 5.0 버전부터 지원하는 API입니다.

서비스 내부에서 사용할 쿼리문을 XML file로 관리하기 위한 메소드를 제공하는 인터페이스입니다.

METHODS

·      setFilePath

GAUCE for .NET에서는 쿼리문을 담은 XML 파일의 경로를 Configuration으로 관리합니다. 별도로 XML 파일의 경로를 설정하지 않으면 항상 해당도메인의 Config 파일에서 정의한 QueryStorage / xml_query_file_name 속성값을 참조합니다.

setFilePath는 Config파일에서 정의한 속성값을 무시하고 별도의 경로에서 쿼리문을 가진 Xml File을 사용하고자 할 때 유용한 메소드입니다.

void setFilePath (string strXmlFilePath);

 

Parameter 명

설명

string strXmlFilePath

호출되는 가우스 서비스의 인터넷상의 위치값인 Uri입니다.

‘http://127.0.0.1/Test/Test.aspx?RequestData=GAUCE_NET_DATA‘와 같이 http 전체 경로와 필요한 파라미터로 구성된 Uri를 지정합니다.

 

사용예제1)

private void Page_Load(object sender, System.EventArgs e)

{

  XmlQueryInfo oQueryInfo = null;    // 쿼리문을 저장할 변수

 

// 가우스 기본페이지를 생성합니다.

GauceBasePage oGBasePage

      = new GauceBasePage(Server, Request, Response);

 

try

{

       // 가우스페이지를 초기화 합니다.

       oGBasePage.initGaucePage("default");

 

       // Xml 파일로부터 쿼리문을 읽어오기위한 작업을 수행합니다.

       // initGaucePage 이후에 호출해야 합니다.

       string strXmlFilePath =

            Server.MapPath("/GauceNetSample50_VS2003") +

                                    "/QueryManage/QueryData.xml";

       // Config 파일에서 적용한 경로를 임의로 수정할때 사용합니다.

       oGBasePage.GauceQueryStorage.setFilePath(strXmlFilePath);

 

// Web Server Alias를 통하여 Mdb file의 위치를 얻기위한 객체를 생성한다.

       DBAccess oMdb = new DBAccess(Server);

       GauceConnection oConn =

             oGBasePage.GauceDbHelper.addConnection("conn1",                      

                                     GauceVariable.DbProviderType.OLEDB,

                                    oMdb.MdbConnectionString, 0);

      

       if (oGBasePage.getStringParam("RequestData")==

                                                             "GAUCE_NET_DATA_GET")

       {

         oQueryInfo = oGBasePage.GauceQueryStorage.getQueryInfo(

"GauceNetSample50_VS2003.QueryManage.TransactionQuery.Select");

         if(oQueryInfo.IsSuccess)

         {

           oGBasePage.commonSelect2(oConn, oQueryInfo.QueryString, null);

         }

         else

         {

           oGBasePage.addMessage2(GauceVariable.MessageType.System,

                             "90000", oQueryInfo.ErrorMsg);

           oGBasePage.setResult(false);

         }

       }

}

catch (Exception except)

{

    oGBasePage.addMessage2(GauceVariable.MessageType.Application,

           "90001", except.Message);

    oGBasePage.setResult(false);

}

finally

{

        oGBasePage.Release();

}

}// end of function

 

 

·      getQueryInfo

GAUCE for .NET에서 미리 정한 구조를 가진 XML 파일로부터 지정된 쿼리문을 읽어 옵니다.   

XmlQueryInfo getQueryInfo (string strEntityName);

 

Parameter 명

설명

string strEntityName

XML 파일에서 찾을 쿼리문을 담고있는 앤티티명입니다.

 

XmlQueryInfo (반환값)

쿼리문을 얻는데 성공/실패 여부 정보 얻어온다.

특히 실패인 경우에는 실패의 원인을 알 수 있는 에러메세지 정보를 함께 담아서 리턴한다.

이때 리턴되는 XmlQueryInfo 클래스의 구조는 다음과 같다.

XmlQueryInfo.IsSuccess  :쿼리를 얻는데 성공했으면 true

XmlQueryInfo.QueryString:얻어온 쿼리문

XmlQueryInfo.ErrorMsg

:XmlQueryInfo.IsSuccess == false 인 경우에 에러메세지

여기에서 사용되는 XML 파일의 구조는 다음과 같아야 합니다.

<?xml version="1.0" encoding="utf-8"?>

<Query>

        <앤티티명_1>

        <![CDATA[

            쿼리문1…

        ]]>

    </앤티티명_1>

        ……………….

<앤티티명_n>

        <![CDATA[

            쿼리문2…

        ]]>

    </앤티티명_n>

</Query>

 

 

사용예제1) Query1.xml

<?xml version="1.0" encoding="utf-8"?>

<Query>

   <GauceNetSample50_VS2003.QueryManage.TransactionQuery.Select>

    <![CDATA[

        select * from Grid2

    ]]>

</GauceNetSample50_VS2003.QueryManage.TransactionQuery.Select>

    <GauceNetSample50_VS2003.QueryManage.TransactionQuery.Insert>

    <![CDATA[

        insert into Grid2(sabun ,name , amt1 , amt2, chk, gubun )

        values (@sabun ,@name , @amt1 , @amt2, @chk, @gubun)

    ]]>

</GauceNetSample50_VS2003.QueryManage.TransactionQuery.Insert>

    <GauceNetSample50_VS2003.QueryManage.TransactionQuery.Update>

    <![CDATA[

        update Grid2

        set name=@name, amt1=@amt1, amt2=@amt2, chk=@chk, gubun=@gubun

        where sabun=@sabun

    ]]>

</GauceNetSample50_VS2003.QueryManage.TransactionQuery.Update>

    <GauceNetSample50_VS2003.QueryManage.TransactionQuery.Delete>

    <![CDATA[

        delete from Grid2

        where sabun=@sabun

    ]]>

</GauceNetSample50_VS2003.QueryManage.TransactionQuery.Delete>

</Query>

 

사용예제2) cs

private void Page_Load(object sender, System.EventArgs e)

{

// 가우스 기본페이지를 생성합니다.

GauceBasePage oGBasePage

     = new GauceBasePage(Server, Request, Response);

try

{

    // 가우스페이지를 초기화 합니다.

    oGBasePage.initGaucePage("default");

 

// Xml 파일로부터 쿼리문을 읽어오기위한 작업을 수행합니다.

// initGaucePage 이후에 호출해야 합니다.

// Web Server Alias를 통하여 Mdb file의 위치를 얻기위한 객체를

// 생성한다.

    DBAccess oMdb = new DBAccess(Server);

    GauceConnection oConn =

       oGBasePage.GauceDbHelper.addConnection("conn1",

       GauceVariable.DbProviderType.OLEDB, oMdb.MdbConnectionString, 0);

   

    if (oGBasePage.getStringParam("RequestData") ==

                                                 "GAUCE_NET_DATA_GET")

    {

      XmlQueryInfo oQueryInfo = 

        oGBasePage.GauceQueryStorage.getQueryInfo(

        "GauceNetSample50_VS2003.QueryManage.TransactionQuery.Select");

      if(oQueryInfo.IsSuccess)

      {

        oGBasePage.commonSelect2(oConn, oQueryInfo.QueryString, null);

      }

      else // 에러처리

      {

        oGBasePage.addMessage2(GauceVariable.MessageType.System,

              "90000", oQueryInfo.ErrorMsg);

        oGBasePage.setResult(false);

      }

    }

}

catch (Exception except)

{

    oGBasePage.addMessage2(GauceVariable.MessageType.Application,

"90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

        oGBasePage.Release();

}

}

 

 

 

·      getQueryInfoByXPath

미리 정해지지 않은 임의의 구조를 가진 XML 파일로부터 XPath 를 통하여 쿼리문을 얻어 옵니다.   

XmlQueryInfo getQueryStringByXPath (string strStatementPath);

 

Parameter 명

설명

string strStatementPath

XML 파일에서 찾을 쿼리문을 담고있는 XPath 경로입니다.

XmlQueryInfo (반환값)

쿼리문을 얻는데 성공/실패 여부 정보 얻어온다.

특히 실패인 경우에는 실패의 원인을 알 수 있는 에러메세지 정보를 함께 담아서 리턴한다.

이때 리턴되는 XmlQueryInfo 클래스의 구조는 다음과 같다.

XmlQueryInfo.IsSuccess  :쿼리를 얻는데 성공했으면 true

XmlQueryInfo.QueryString:얻어온 쿼리문

XmlQueryInfo.ErrorMsg

:XmlQueryInfo.IsSuccess == false 인 경우에 에러메세지

 

사용예제1) Query2.xml

<?xml version="1.0" encoding="utf-8"?>

<Query>

<Select>

<Statement id="GauceNetSample50_VS2003.QueryManage.SelectQuery.01">

    <![CDATA[

        select deptnm, year, amt1, amt2 from Grid1

    ]]>

</Statement>

</Select>

<Transaction>

   <Statement id="GauceNetSample50_VS2003.QueryManage.TransactionQuery.01">

    <![CDATA[

        INSERT INTO BigintTest(Name, SI_Amt, I_Amt, BI_Amt)

        VALUES (@Name, @SI_Amt , @I_Amt, @BI_Amt )

    ]]>

</Statement>

</Transaction>

</Query>

 

사용예제2) cs

private void Page_Load(object sender, System.EventArgs e)

{

XmlQueryInfo oQueryInfo = null;      // 쿼리문을 저장할 변수

 

GauceBasePage oGBasePage = new GauceBasePage(this.Page);

 

try

{               

// 가우스페이지를 초기화 합니다.

oGBasePage.initGaucePage("default", GauceVariable.PacketEncodingType.NORMAL,

               GauceVariable.ResponsePacketType.BINARY, true, -1);

 

// 다음 코드는 반드시 initGaucePage후에 와야 합니다.

if(oGBasePage.getStringParam("RequestData") == "GAUCE_NET_DATA")

{

    // DB Connection을 추가합니다.

    DBAccess oMdb = new DBAccess(Server);

    GauceConnection oConn = oGBasePage.GauceDbHelper.addConnection(

"conn1", GauceVariable.DbProviderType.OLEDB,

oMdb.MdbConnectionString, 0);

   

    oQueryInfo = oGBasePage.GauceQueryStorage.getQueryInfoByXPath(

               "//Statement[@id='GauceNetSample50_VS2003."

             + "QueryManage.SelectQuery.01']");

    if(oQueryInfo.IsSuccess)

    {

      // 쿼리를 실행하여 결과를 클라이언트로 전송합니다.

      oGBasePage.commonSelect(oConn, oQueryInfo.QueryString);

    }

    else

    {

      oGBasePage.addMessage2(GauceVariable.MessageType.Application,

                             "90000", oQueryInfo.ErrorMsg);

      oGBasePage.setResult(false);

    }

}

}

catch (Exception except)

{

// 예외 메세지를 저장하고, 결과 플래그를 false로 설정합니다. 

oGBasePage.addMessage("user", "90001", except.Message);

oGBasePage.setResult(false);

}

finally

{

// GauceBasePage객체를 해제합니다.

oGBasePage.Release();

}  

}

 

 

 

부록

 

GauceDefine

가우스에서 사용되는 상수를 정의한 객체입니다.

주요 내용을 살펴보면 아래와 같습니다.

 

칼럼의 Data Type

 

TB_STRING

Column의 string 유형을 나타낸다.

TB_INT

Column의 int32 유형을 나타낸다.

TB_BIGINT

Column의 int64 유형을 나타낸다

TB_DECIMAL

Column의 decimal 유형을 나타낸다.

TB_BLOB

Column의 blob 유형을 나타낸다.

TB_URL

Column의 url 유형을 나타낸다.

TB_SEC_STRING

Column의 암호화된 string 유형을 나타낸다.

TB_SEC_INT

Column의 암호화된 int 유형을 나타낸다.

TB_SEC_DECIMAL

Column의 암호화된 decimal 유형을 나타낸다.

TB_SEC_BLOB

Column의 암호화된 blob 유형을 나타낸다.

TB_SEC_URL

Column의 암호화된 url 유형을 나타낸다.

 

칼럼의 Key Permision

 

TB_NORMAL

Normal Column

TB_NOTNULL

Not Null Column

TB_KEY

Key Column

TB_SEQUENCE

Sequence Column

TB_CONSTANT

Constant Column

 

Row Command Type

 

TB_JOB_NORMAL

SELECT

TB_JOB_INSERT

INSERT

TB_JOB_UPDATE

UPDATE

TB_JOB_DELETE

DELETE

 

송수신 Format

 

CSV30_FORMAT

CSV 형의 포맷

BIN_FORMAT

Binary 형의 포맷

CSV_FORMAT

CSV 형의 포맷 (Data Export 시)

 

 

 

Message의 언어

 

GN_MESSAGE_LANGUAGE_KOR

한국어를 뜻함

GN_MESSAGE_LANGUAGE_ENG

영어를 뜻함

 

Response Target Type

 

GN_TARGET_COMMON

일반적인 경우 (Component)

GN_TARGET_PLD

Presentation Layout Designer인 경우

GN_TARGET_DWB

Dynamic Web Builder인 경우

 

Decimal 소스점 처리방식

 

DECIMAL_CEIL

올림

DECIMAL_ROUND

반올림

DECIMAL_FLOOR

버림

 

DB Provider Type

 

PROVIDERTYPE_MSSQL

DB Cleint 공급자가 MSSQL인 경우

PROVIDERTYPE_OLEDB

DB Client공급자가 OLEDB인 경우

PROVIDERTYPE_ORACLE

DB Client공급자가 ORACLE인 경우

PROVIDERTYPE_ODBC

DB Client공급자가 ODBC인 경우

PROVIDERTYPE_ODP

DB Client공급자가 ODP .NET인 경우

 

Response String Column Data Code Type

 

RESPONSE_CODE_ANSI

Default Code 사용

RESPONSE_CODE_UTF8

UTF8 Code 사용

RESPONSE_CODE_UNICODE

UTF16 Little Endian Code 사용

RESPONSE_CODE_UNICODEBIG

UTF16 Big Endian Code 사용

 


 

 

GauceVariable

                    가우스에서 사용되는 상수를 정의한 객체입니다.

주요 내용을 살펴보면 아래와 같습니다.

 

시스템 이벤트로그 앤트리의 이벤트 형식

 

EventLogEntryType.Error

오류 이벤트

EventLogEntryType.FailureAudit

오류 감시 이벤트

EventLogEntryType.Information

정보 이벤트

EventLogEntryType.SuccessAudit

성공적인 감시 이벤트

EventLogEntryType.Warning

경고 이벤트

 

칼럼의 Data Type

 

ColumnDataType.STRING

Column의 string 유형을 나타낸다.

ColumnDataType.INT

Column의 int32 유형을 나타낸다.

ColumnDataType.BIGINT

Column의 int64 유형을 나타낸다.

ColumnDataType.DECIMAL

Column의 decimal 유형을 나타낸다.

ColumnDataType.BLOB

Column의 blob 유형을 나타낸다.

ColumnDataType.URL

Column의 url 유형을 나타낸다.

 

칼럼의 Key Permision

 

ColumnKeyType.NORMAL

Normal Column

ColumnKeyType.NOTNULL

Not Null Column

ColumnKeyType.KEY

Key Column

ColumnKeyType.SEQUENCE

Sequence Column

ColumnKeyType.CONSTANT

Constant Column

 

Row Command Type

 

RowCommandType.NORMAL

SELECT

RowCommandType.INSERT

INSERT

RowCommandType.UPDATE

UPDATE

RowCommandType.DELETE

DELETE

 

송수신 Format

 

ResponsePacketType.CSV30

CSV 형의 포맷

ResponsePacketType.BIN

Binary 형의 포맷

ResponsePacketType.CSV

CSV 형의 포맷 (Data Export 시)

 

 

 

Message의 언어

 

MessageLanguage.KOR

한국어를 뜻함

MessageLanguage.ENG

영어를 뜻함

      

Decimal 소스점 처리방식

 

DecimalPointType.CEIL

올림

DecimalPointType.ROUND

반올림

DecimalPointType.FLOOR

버림

 

DB Provider Type

 

DbProviderType.MSSQL

DB Cleint 공급자가 MSSQL인 경우

DbProviderType.OLEDB

DB Client공급자가 OLEDB인 경우

DbProviderType.ORACLE

DB Client공급자가 ORACLE인 경우

DbProviderType.ODBC

DB Client공급자가 ODBC인 경우

DbProviderType.ODP

DB Client공급자가 ODP .NET인 경우

 

Response String Column Data Code Type

 

PacketEncodingType.NOMAL

Default Code 사용

PacketEncodingType.UTF8

UTF8 Code 사용

PacketEncodingType.UNICODE

UTF16 Little Endian Code 사용

PacketEncodingType.UNICODEBIG

UTF16 Big Endian Code 사용

        

DB쿼리 파라미터에 사용되는 DbType.

 

DbType.String

가변길이 문자열

DbType.Char

고정길이 문자열.

DbType.Text

긴 문자열(6143 바이트까지 지원)

DbType.int

32비트 부호있는 정수형

DbType.Bigint

64비트 부호있는 정수형

DbType.Double

부동 소수점

DbType.Decimal

고정전체 자릿수 및 소수 자릿수

DbType.DateTime

날짜 및 시간데이터

DbType.Binary

이진데이터의 고정길이 스트림값

(BLOB 타입 사용시)

DbType.Cursor

커서타입을 지정할 경우

(Oracle 클라이언트 공급자에서만 지원)