date형 필드값을 maskedit에서 읽어들여(yyyy-mm-dd) 저장을 하려 하는데 type miss error 메세지가 뜹니다. 그래서 여러 test 끝에 maskedit값을 copy 해서 'mm-dd-yyyy' 의 형식을 입력을 하니까 들어갑니다. 그런데 이 값을 copy문을 ...
이재식
•
1999.11.20 02:13
김남훈 wrote:
> date형 필드값을 maskedit에서 읽어들여(yyyy-mm-dd) 저장을 하려 하는데
> type miss e...
> date형 필드값을 maskedit에서 읽어들여(yyyy-mm-dd) 저장을 하려 하는데
> type miss error 메세지가 뜹니다. 그래서 여러 test 끝에 maskedit값을 copy
> 해서 'mm-dd-yyyy' 의 형식을 입력을 하니까 들어갑니다.
> 그런데 이 값을 copy문을 쓰지 않고 maskedit에서 읽어 들인 값을 바로 'yyyy-mm-dd'
> 형식으로 넣을수 있는 방법 없을까요
> 아주 급합니다. 고수님들이 좀 도와주십시요.
>
이재식 Wrote :
안녕하십니까?
날짜타입을 디비에 저장할때는 조심스러워 합니다.
우선, 제어판에 가시면 국가별설정이 있습니다.
거기에 들어가보면 "형식"과 "날짜구분기호"가 있습니다.
형식에서는 yyyy-mm-dd로 하시고 날짜구분기호는 '-'로 되어있는지
확인해 보세요.
물론 국가별 설정을 건드리지않고 sysutils의 DateSeparator등
이런날짜제어 명령을 써서 일시적으로 변경할 수도 있습니다.
우선 쉽게 합시다.
국가별 설정을 그렇게 세팅하시고요,
폼위에 마스크에디터박스가 있겠죠.
EditMask속성에서 Input Mask속성에서 옆에있는 Date형을 선택하세요.
그러면 !99/99/00;1;_형식이 나올것입니다.
여기에서 이것을 !뒤에 99을 더 붙입니다. !9999/99/00;1;_ -> 요렇게
그리고 save Literal character를 체크합니다.
select쿼리를 던져서 open한다음에는
MaskEdit1.Text := fieldbyname('nalja').AsString ;
이라고하면 yyyy-mm-dd형식으로 출력이 될 것입니다.
여기서 nalja는 테이블에서 date형으로 되어 있는 것이죠.
일단 출력이되죠.
저장하기 위해서는
parambyname('nal').asDate := strTodate(MaskEdit1.Text) ;
이런형식으로 하시면 됩니다.
그러면 실제 테이블에 yyyy-mm-dd형식으로 저장이 될 것입니다.
자세히 쿼리문을 쓰지 않았습니다.
참고로 패러독스 테이블용으로 했습니다.
그럼...