|
: 1. 파라독스 DB에서 Query를 이용하여 날짜를 기준으로 select하려고 합니다. 다시 말해서 DB에
: 내용중 (예를 들어)12월 20일 이전에 저장된 레코드만 선택하여 불러 오려고 합니다.
: (물론 DB Field에는 Date정보가 있구요..)
: 그런데 질문하고 싶은 것은 SQL Explore로 1999년 12월 20일을 쓰려고 하면 자꾸
: 'mismatched type'과 같은 에러가 나요..99-12-20,12/20/99..........여러가지로 써보았는데....
: 어떤 형식으로 입력해야 이와같은 에러가 안날까요?
:
: 또 한가지 질문은...
:
: 2. 역시 Query를 이용하여 Form들을 형성한 경우, TDBComboBox를 이용하여 OnChange를 발생시켜
: 프로그램을 짜려고 하는데 OnChange 이벤트가 발생이 안되요. 헤더 파일에도 함수 등록이 되고
: 했는데 SQL문의 문제가 있어서 그런 것일까요? 여러개의 TDBComboBox들 중에 일부만 발생이
: 안되고 나머지들은 정상적으로 발생을 하는데.....OnChange 이벤트가 발생하는데에도 헤더 파일에
: 등록하는 것을 제외하고 다른 조건들이 필요한가요?
:
: 제 문제에 대한 설명이 정확히 되었는지 모르겠네요.
:
: 벌써 내일이 크리스마스 이브군요! 즐거운 크리스마스 되시고, 다소 이르지만 새해 복 많이
: 받으세요.
////////////////////////////////////////////////////////////////////////////////////////
안녕하세요...
날짜형 필드에 데이타를 입력하거나, 쿼리할때는 일.월.년 의 형식으로 값을 넣어주면 됩니다.
예를 들어...(Destdate필드가 Date형일때는)
AnsiString Querystr;
Querystr = Format("select * from test.db where Destdate='%s'", OPENARRAY(TVarRec,("01.11.1999")));
이런식으로 하면 됩니다.또는 아래와 같이 변수에 날짜가 들어가 있다면..
AnsiString Todaydate = "1999-11-01";
Todaydate = Todaydate.SubString(9,2)+"."+Todaydate.SubString(6,2)+"."+Todaydate.SubString(1,4);
이렇게 하고
Querystr = Format("select * from test.db where Destdate='%s'", OPENARRAY(TVarRec,(Todaydate)));
이렇게 하면 됩니다. 함수로 만들어서 사용해도 되고요...
그리고 날짜사이를 쿼리할때는 부등호(<,>)를 이용해도 되는데 간단한 between...and SQL문을이용해도 됩니다.
AnsiString Startdate = "01.11.1999",Enddate = "31.12.1999";
Querystr = Format("select * from test.db where Destdate between '%s' and '%s'", OPENARRAY(TVarRec,(Startdate,Enddate)));
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add(Querystr);
Query1->Open();
그럼...
|