2012-07-15 7 views
0

Delphi 7 및 Titan BTrieve를 사용하여 Pervasive Table을 엽니 다.Delphi 7, Titan BTrieve Components

TtbTable 구성 요소입니다.

Date:=InputDate; 
    DateString:=FormatDateTime('DD/MM/YYYY HH:NN:SS', InputDate); 
    Table1.Filter:='UPDATEDON > '+chr(39)+DAteString+chr(39); 
    Table1.Filtered:=True; 

문제는 필터 결과가 잘못된 것입니다 다음과 같이

나는 내 코드와 타임 스탬프 필드에 필터를 적용하려합니다. 필터 조건과 일치하지 않는 레코드를 반환합니다.

+1

아직 공급 업체에 연락 했습니까? –

+1

더 이상 존재하지 않거나 제품을 지원하지 않습니다. 나는 Regatta 소프트웨어에서 부품을 구입했고 그들은 관심이 없다. –

+0

은 YEAR.MONTHDAY HOUR : MINUTE : SECOND.MILISECOND 일 수 없습니다. – ComputerSaysNo

답변

0

모양에서 보면 날짜가 아닌 문자열을 비교하고 있습니다.

+0

나는 날짜를 비교하고 있지만, 날짜 매개 변수를 변환하여 문자열로 전달해야하는 필터를 작성합니다. 이것은 TTable 필터를 사용하는 방법입니다. 이 구성 요소는 ttable에서 상속됩니다. –

0

어떤 PSQL 버전을 사용하고 있습니까? UPDATEDON 필드가 Btrieve 데이터베이스의 타임 스탬프로 정의되어 있습니까? 타임 스탬프의 경우, 그레고리력 (UTC)의 1 월 1 일부터 0001까지의 7 자리 (10^-7 초)를 나타내는 8 바이트의 부호 없음 값에 값이 저장됩니다. 문자열로 저장되지 않습니다.

Btrieve/PSQL은 'YYYY-MM-DD'형식으로 날짜를 저장합니다.

업데이트 된 필드의 값은 무엇입니까? 필터로 사용하려면 필터 값이 동일하게 보이는지 확인해야합니다.

+0

감사합니다.이 모든 것을 확인했는데 아무 것도 작동하지 않는 것 같습니다. Pervasive에는 서식 검사가 있고 필터 매개 변수는 이러한 검사를 통과합니다. 구성 요소에 버그가 있어야합니다. 내 서식은 DBISAM 및 DBASE 및 PARADOX에서 지금 테스트했으며 그 결과 완벽하게 작동했습니다. 지금은 보편적으로 문제가 있으며 버그가있는 구성 요소 여야합니다. 고맙습니다. –

+0

더 복잡한 datetime 문자열을 제공하여 오류 상황을 찾아서 해결할 수 있습니다. '1-1-1'과 '1/1/1'로 시작한 다음 '15/5/1 '과'5/15/01 '등을 시도하십시오. –

+0

@Nico PCC (또는 ODBC Test) 그리고 UPDATEDON 필드를 읽으면 값은 어떻게 생겼을까요? 표준 TTable 구성 요소가 작동합니까? PDAC (Pervasive의 VCL 제어)는 어떻습니까? – mirtheil

1

Table1.Filter는 btrieve/pervasive가 아닌 TDataSet의 데이터를 필터링합니다.

문제는 문자열 형식의 날짜입니다. 문자열 비교가되므로 형식이 YYYY-MM-DD가 아닌 DD-MM-YYYY를 사용해야합니다.

문자열에서 17-06-2012는 16-07-2012보다 큼 (17> 16)