델파이에서 데이타베이스 프로그램을 짜다가 막히는 부분이 있습니다.
오라클을 사용했는데 날짜를 저장하는 데이터형으로 DATE형을 지정하였습니다.
입력 폼 상에서 에디트로 날짜를 입력받아 데이타베이스의 날짜와 같은 레코드를
찾을려고 하는데 어떻게 해야 할지....
sql를 어떤식으로 작성해야 할지 잘모르겠습니다.
예를 들어
close;
sql.Clear;
sql.Add('select * from tablename ');
sql.Add('where id is not null ');
if edit1.Text <> '' then
sql.Add(' and date = ' + (요기를 어떻게 해야하는지...));
open;
StrTodate를 사용해 봤는데 소용이 없고
또 어떤식으로 에디트 박스에 입력을 해야하는지 잘모르겠군요....
가령 99-01-11, 990111 인지 여러가지 입력 방법이 있겠지요.
많은 조언 부탁드립니다....
먼저 꼭 Edit Component를 사용해야할 이유가 있나요?
Edit Component는 사용자가 다양하게 입력할 수 있으므로 Date Type자료를
입력하는데 좋지 않다고 생각됩니다.
예) 19990101, 99-01-01, 990101, 1999-01-01 등
MaskEdit Component를 사용하는 것이 어떨런지요.
MaskEdit의 EditMask란 Propertie에 날짜형식을 줄 수 있으므로 작업자에게
일정한 형태의 자료를 입력할 수 있어 안정적이라 생각됩니다.
예를들어 EditMask에 !0000-!90-90;0;_란 형식으로 입력하면 사용자는
1999-01-01 이란 형태로 자료를 입력하겠지요. 하지만 실제 EditMask의 Text값은
19990101 형식으로 들어 있기 때문에 Date Type으로 전환시 형식을 1999-01-01로
맞춰 주어야 합니다.
그래서 아래와 같이 하면
close;
sql.Clear;
sql.Add('select * from tablename ');
sql.Add('where id is not null ');
if editmask1.Text <> '' then begin
sql.Add(' and date = :p_date');
sql.ParamByName('p_date').AsDate
:= StrToDate(copy(editmask1.text,1,4)+'-'
copy(editmask1.text,5,2)+'-'
copy(editmask1.text,7,2));
end;
open;
되지 않을까 합니다......
그럼 좋은하루 되십시요 ....
급한이 wrote:
> 델파이에서 데이타베이스 프로그램을 짜다가 막히는 부분이 있습니다.
> 오라클을 사용했는데 날짜를 저장하는 데이터형으로 DATE형을 지정하였습니다.
> 입력 폼 상에서 에디트로 날짜를 입력받아 데이타베이스의 날짜와 같은 레코드를
> 찾을려고 하는데 어떻게 해야 할지....
>
> sql를 어떤식으로 작성해야 할지 잘모르겠습니다.
> 예를 들어
> close;
> sql.Clear;
> sql.Add('select * from tablename ');
> sql.Add('where id is not null ');
> if edit1.Text <> '' then
> sql.Add(' and date = ' + (요기를 어떻게 해야하는지...));
> open;
> StrTodate를 사용해 봤는데 소용이 없고
> 또 어떤식으로 에디트 박스에 입력을 해야하는지 잘모르겠군요....
> 가령 99-01-11, 990111 인지 여러가지 입력 방법이 있겠지요.
> 많은 조언 부탁드립니다....