Fox Data Service Response¶
Fox Data Service 는 Fox Query 수행에 필요한 정보를 담는 FoxDataRequest 혹은 FoxDataRequestCollection 객체를 입력으로 받아 쿼리를 수행하고 그 결과를 담는 FoxDataResponse 혹은 FoxDataResponseCollection 객체를 반환합니다. 이러한 응답 객체를 통해 호출자는 쿼리 수행 결과, 오류 정보, 트랜잭션 상태 등 다양한 정보를 확인할 수 있습니다.
개발자가 직접 FoxDataResponse 와 FoxDataResponseCollection 객체를 생성하여 속성을 설정하는 등의 조작을 수행할 일은 거의 발생하지 않습니다. 대부분의 상황에서 개발자는 Fox Data Service 가 반환하는 응답 객체를 그대로 사용하게 됩니다.
FoxDataResponse 객체¶
FoxDataResponse 객체는 Fox Data Service 가 성공적으로 쿼리를 수행하고 그 수행 결과를 반환하거나, 예외 전파 제어 기능을 통해 FoxDataRequest 객체의 ThrowException 속성이 false 로 지정된 경우, 오류 정보만을 포함하여 호출자에게 반환되는 객체 입니다.
기본 속성들¶
-
Success속성쿼리 수행 결과 성공 여부를 나타내는 불리언 값입니다. 쿼리가 정상적으로 수행되면
true값을 가집니다.FoxDataRequest.ThrowException속성이false로 설정되었고 쿼리 수행 중 오류가 발생하면false값을 가집니다.JSON 형태에서
Success속성은success속성으로 표현됩니다.Note
FoxDataRequest.ThrowException속성이true인 경우(디폴트 설정)FoxDataResponse객체는 호출자에게 반환되지 않고 예외가 발생하여 전파됩니다. -
Parameters속성쿼리가 출력 매개변수(output parameters)를 포함하는 경우, 그 결과를 담는
FoxServiceParameterCollection타입의 컬렉션입니다. 기본적으로 키-값형태의 딕셔너리(IDictionary<string, object>)와 동일하게 접근할 수 있습니다.Note
SQLite 와 같은 일부 데이터베이스들은 출력 매개변수를 지원하지 않습니다.
JSON 형태에서
Parameters속성은parameters속성으로 표현됩니다. -
DataSet속성ExecuteDataSet과 같은 메서드의 호출 결과를 담는DataSet객체입니다. 또한,SaveDataTable호출 시QueryId속성에 조회 쿼리를 포함한 경우, 테이블 저장 후 조회 결과를 반환하기도 합니다. 이들 이외의 메서드 호출에 대해서 이 속성은null을 반환합니다.JSON 형태에서
DataSet속성은dataSet속성으로 표현됩니다. -
AffectedRows속성ExecuteNonQuery메서드 호출 시 영향을 받은 행(row)의 수를 나타내는 정수 값입니다. 이 이외의 메서드 호출에 대해 이 속성은null을 반환합니다.JSON 형태에서
AffectedRows속성은affectedRows속성으로 표현됩니다. -
ScalarValue속성ExecuteScalar메서드 호출 시 반환되는 단일 값입니다. 이 이외의 메서드 호출에 대해 이 속성은null을 반환합니다.JSON 형태에서
ScalarValue속성은scalarValue속성으로 표현됩니다.Note
동일한 쿼리를 사용하더라도 데이터베이스에 따라
ScalarValue속성의 반환 값이 달라질 수 있습니다. 예를 들어SELECT COUNT(*) FROM Table1쿼리 결과를ScalarValue속성으로 받을 때, 데이터베이스에 따라서Int32,Int64,Decimal타입의 값을 반환합니다. -
ErrorInfo속성FoxDataRequest객체의ThrowException속성이false로 설정된 경우, 쿼리 수행 중 오류가 발생하면 예외를 발생시키지 않고FoxDataResponse객체Success속성 값이false로 설정되고ErrorInfo속성에 오류 정보가 담깁니다. 오류 정보는FoxServiceErrorInfo객체로서 예외 메시지, 예외 타입, 호출 스택 정보 등의 정보를 포함합니다.JSON 형태에서
ErrorInfo속성은errorInfo속성으로 표현됩니다.
진단 관련 속성들¶
-
ServerInfo속성Fox Data Service 서비스가 수행되는 서버에 대한 정보를 담고 있는
FoxServerInfo타입의 속성입니다. 서버 호스트 이름, IP 주소 등의 정보를 포함합니다. 여러 서버에서 하나의 서비스를 수행하는 경우 구체적으로 어떤 서버가 서비스를 수행하고 결과를 반환했는지 확인할 수 있습니다.JSON 형태에서
ServerInfo속성은serverInfo속성으로 표현됩니다. -
Diagnostics속성FoxDataResponse객체에 포함된 진단정보를 나타내는FoxDataResponseDiagnostics열거 타입의 플래그 입니다. 예를 들어, 요청 시 로그 항목이 포함된 경우 이 속성은HasServiceLog플래그를 포함합니다. 이 속성에 포함될 수 있는 값들은 다음과 같습니다.HasLogId: 유효한 로그 ID 가LogId속성에 포함되었습니다.HasServiceLog: 서비스 로그가ServiceLog속성에 포함되었습니다.HasPerformanceInfo: 성능 정보가PerformanceInfo속성에 포함되었습니다.HasDbProfileInfo: DB 프로파일 정보가DbProfileInfo속성에 포함되었습니다.ForceRollbacked: 트랜잭션이 강제로 롤백되었습니다.
Note
진단 목적으로 트랜잭션을 강제로 롤백시키기 위해
FoxDataRequest.Diagnostics속성에ForcedRollback플래그를 설정한 경우, Fox Data Service 는 쿼리(들)을 성공적으로 완료하더라도 트랜잭션을 강제로 롤백하고FoxDataResponse객체 정상적으로 반환합니다.FoxDataResponse객체의Success속성값도true이지만Diagnostics속성에ForceRollbacked플래그가 포함됩니다.JSON 형태에서
Diagnostics속성은diagnostics속성으로 표현됩니다. -
LogId속성FoxDataRequest.Diagnostcis속성에LogId플래그가 설정된 경우, Fox Data Service 는 로그 ID 를FoxDataResponse.LogId속성에 기록하여 반환합니다.LogId속성에 유효한 값이 포함된 경우Diagnostics속성에HasLogId플래그가 포함됩니다.JSON 형태에서
LogId속성은logId속성으로 표현됩니다. -
ServiceLog속성FoxDataRequest.Diagnostcis속성에ServiceLog플래그가 설정된 경우, Fox Data Service 는 서비스 로그를FoxDataResponse.ServiceLog속성에 기록하여 반환합니다.ServiceLog속성에 유효한 값이 포함된 경우Diagnostics속성에HasServiceLog플래그가 포함됩니다.JSON 형태에서
ServiceLog속성은serviceLog속성으로 표현됩니다. -
PerformanceInfo속성FoxDataRequest.Diagnostcis속성에PerformanceInfo플래그가 설정된 경우, Fox Data Service 는 성능 정보를FoxDataResponse.PerformanceInfo속성에 기록하여 반환합니다.PerformanceInfo속성에 유효한 값이 포함된 경우Diagnostics속성에HasPerformanceInfo플래그가 포함됩니다.JSON 형태에서
PerformanceInfo속성은performanceInfo속성으로 표현됩니다. -
DbProfileInfo속성FoxDataRequest.Diagnostcis속성에DbProfileInfo플래그가 설정된 경우, Fox Data Service 는 데이터베이스 프로파일 정보를FoxDataResponse.DbProfileInfo속성에 기록하여 반환합니다.DbProfileInfo속성에 유효한 값이 포함된 경우Diagnostics속성에HasDbProfileInfo플래그가 포함됩니다.JSON 형태에서
DbProfileInfo속성은dbProfileInfo속성으로 표현됩니다.
FoxDataResponseCollection 객체¶
FoxDataResponseCollection 객체는 Fox Data Service 가 ExecuteMultiple 메서드를 호출한 결과로 반환하는 응답 컬렉션 객체입니다.
컬렉션 기본 속성들¶
-
인덱서 속성
FoxDataResponseCollection객체는IList<FoxDataResponse>인터페이스를 구현하므로 인덱서를 통해 개별FoxDataResponse객체에 접근할 수 있습니다.FoxDataResponseCollection객체에 포함되는FoxDataResponse객체들의 개수는ExecuteMultiple메서드에 전달된FoxDataRequestCollection객체에 포함된FoxDataRequest객체들의 개수와 동일합니다. 다만,ExecuteMultiple메서드 수행 중 모든 쿼리 요청을 처리하기 전에 오류가 발생한 경우 성공한 일부 쿼리에 대한FoxDataResponse객체만 포함될 수 있습니다.FoxDataResponseCollection객체는 다른IList<T>컬렉션과 같이 JSON 형태에서items속성의 배열로 표현됩니다. -
Success속성Success속성은ExecuteMultiple메서드 호출의 성공 여부를 나타냅니다.JSON 형태에서
Success속성은FoxDataResponse와 마찬가지로success속성으로 표현됩니다. -
ErrorInfo속성ErrorInfo속성은ExecuteMultiple메서드 수행 중 발생한 예외 정보를 담고 있는FoxServiceErrorInfo객체를 반환합니다.ErrorInfo속성이 오류(예외) 정보를 담는 상황은FoxDataResponseCollection객체의ThrowException속성이false이고ExecuteMultiple메서드 수행 중 오류가 발생하는 상황입니다.JSON 형태에서
ErrorInfo속성은FoxDataResponse객체와 동일하게errorInfo속성으로 표현됩니다.
컬렉션 진단 관련 속성들¶
-
ServerInfo속성Fox Data Service 서비스가 수행되는 서버에 대한 정보를 담고 있는
FoxServerInfo타입의 속성입니다.FoxDataResponseCollection객체에 포함된 각FoxDataResponse객체의ServerInfo속성은null로 설정됩니다.FoxDataResponse객체와 마찬가지로 JSON 형태에서ServerInfo속성은serverInfo속성으로 표현됩니다. -
Diagnostics속성FoxDataResponseCollection객체에 포함된 진단정보를 나타내는FoxDataResponseDiagnostics열거 타입의 플래그 입니다.FoxDataResponse객체와 마찬가지로 JSON 형태에서Diagnostics속성은diagnostics속성으로 표현됩니다. -
LogId속성FoxDataRequestCollection.Diagnostcis속성에LogId플래그가 설정된 경우, Fox Data Service 는 로그 ID 를FoxDataResponseCollection.LogId속성에 기록하여 반환합니다.FoxDataResponse객체와 마찬가지로JSON 형태에서LogId속성은logId속성으로 표현됩니다. -
ServiceLog속성FoxDataRequestCollection.Diagnostcis속성에ServiceLog플래그가 설정된 경우, Fox Data Service 는 서비스 로그를FoxDataResponseCollection.ServiceLog속성에 기록하여 반환합니다.FoxDataResponse객체와 마찬가지로 JSON 형태에서ServiceLog속성은serviceLog속성으로 표현됩니다. -
PerformanceInfo속성FoxDataRequestCollection.Diagnostcis속성에PerformanceInfo플래그가 설정된 경우, Fox Data Service 는 성능 정보를FoxDataResponseCollection.PerformanceInfo속성에 기록하여 반환합니다.FoxDataResponse객체와 마찬가지로 JSON 형태에서PerformanceInfo속성은performanceInfo속성으로 표현됩니다.
Note
DB 프로파일 정보는 개별 쿼리 수행에 대한 수행 정보이기 때문에 ExecuteMultiple 메서드는 컬렉션 내의 FoxDataResponse 객체의 DbProfileInfo 속성에 DB 프로파일 정보를 기록하여 반환합니다.
Summary¶
FoxDataResponse 객체와 FoxDataResponseCollection 객체는 Fox Data Service 가 요청된 쿼리를 수행하고 그 결과를 담고 있는 객체입니다. 이들 객체는 성공 여부, 데이터셋, 영향 받은 행 수, 오류 정보, 진단 정보 등 다양한 정보를 포함하기 때문에 호출자는 이를 통해 쿼리 수행 결과를 종합적으로 확인할 수 있습니다.