2013-12-16 3 views
2

나는 Delphi 2007 + AnyDac에서 Delphi XE4 + FireDac으로 코드를 이동합니다. AnyDac의 경우 모든 빈 문자열은 NULL처럼 저장되고 FireDac에는 모든 빈 문자열이 빈 문자열 ''처럼 저장됩니다.Anydac에서 Firedac으로 이동하는 동안 NULL이 누락되었습니다.

다시 NULL로 가야합니다. 그 일을하는 가장 좋은 방법은 무엇입니까? 나는 PARAMS를 사용하여 dB로 저장 :

ADQuery.Params.ParamByName('Code').Value :=Code; 
+0

"저장"이라고 말하면 데이터베이스에 의해 제어됩니다. 데이터베이스가 뭐니? –

+0

@Marcus, 주로 데이터 세트 컨트롤 자체 (아래의 게시물 참조) ... 그 다음에는 데이터베이스에 저장 방법이 있습니다. – TLama

+0

@TLama, 데이터베이스에 대한 유일한 액세스 지점이 데이터 집합 컨트롤이라고 가정합니다. OP가 내 질문에 대답하는 경우 더 완전한 답변을위한 여지가 있습니다. –

답변

4

는 데이터 집합 개체의 FormatOptionsStrsEmpty2Null 옵션 (이것은 오브젝트 인스펙터에서 True로 설정) 등이 있습니다. 참조는 (나 강조) 말한다 :

이 NULL 값에 길이가 0 인 문자열 값의 변환을 제어합니다. StrsEmpty2Null 속성을 사용하여 FireDAC 이 길이가 0 인 문자열 값을 NULL 값 (True) 또는 (False)으로 변환해야하는지 여부를 제어합니다. 기본값은 False입니다.