string query="SELECT COUNT(*) FROM '"+table+"' WHERE low<"+lowLevel+" AND high>"+highLevel+" AND date>'"+TimeToString(time)+"'";
if(sql3.Query(tbl,query)!=SQLITE_DONE)
{
Print(sql3.ErrorMsg());
return0.0;
}
sql3.Disconnect();
CSQLite3Cell cell;
tbl.Cell(0,0,cell);
int gg=cell.GetInt64();
gg는 항상 0을 출력합니다. 쿼리를 데이터베이스에 직접 입력하면 올바른 값을 출력합니다.
그리고 카운트 대신 어떤 열을 넣은 다음 배열 크기 ArraySize(tbl.m_data)를 보면 모든 것이 정상입니다. 즉, 카운트가 작동하지 않습니다. 모르겠어요, 제가 뭔가 잘못하고 있을지도 모르겠네요.....
string query="SELECT COUNT(*) FROM '"+table+"' WHERE low<"+lowLevel+" AND high>"+highLevel+" AND date>'"+TimeToString(time)+"'";
if(sql3.Query(tbl,query)!=SQLITE_DONE)
{
Print(sql3.ErrorMsg());
return0.0;
}
sql3.Disconnect();
CSQLite3Cell cell;
tbl.Cell(0,0,cell);
int gg=cell.GetInt64();
gg는 항상 0을 출력합니다. 쿼리를 데이터베이스에 직접 입력하면 올바른 값을 출력합니다.
그리고 카운트 대신 어떤 열을 넣은 다음 배열 크기 ArraySize(tbl.m_data)를 보면 모든 것이 정상입니다. 즉, 카운트가 작동하지 않습니다. 모르겠어, 내가 뭔가 잘못하고 있을지도 몰라.....
COUNT는 0을 출력하지만 SQLiteStuido에서 스크립트를 실행하면 모든 것이 계산됩니다.
실제로 이것은 ~10000> number ofStrokes가 있는 테이블에서 발생하는 것으로 나타났습니다. 또한 위의 예에서와 같이 얻은 테이블 tbl이(코드에 내장 된 함수에 의해) 인쇄되는 경우 INTEGER 유형의 열은 물론 0이 아니지만 0으로 인쇄됩니다. 그리고 동일한 인쇄물에서 두 배로 올바르게 출력됩니다.
같은 것 - COUNT는 0을 출력하지만 SQLiteStuido에서 스크립트를 실행할 때 모든 것이 계산됩니다.
실제로 ~10000> number ofStrokes가 있는 테이블에서 이런 일이 발생한다는 것을 발견했습니다. 또한 위의 예에서와 같이 얻은 테이블 tbl이(코드에 내장 된 함수에 의해) 인쇄되는 경우 INTEGER 유형의 열은 물론 0이 아니지만 0으로 인쇄됩니다. 그리고 동일한 인쇄물에서 두 배로 올바르게 출력됩니다.
정수에 문제가있는 것 같습니다 (아직 테스트 할 시간이 없었습니다).
"Include\MQH\Ctrl\ByteImg.mqh" 파일에서 찾았습니다:
대신
int ViewInt() { __int d; d.v=0; ViewArray(d.b,0,4); return(d.v); }
분명히 의미했습니다:
int ViewInt() { __int d={0}; ViewArray(d.b,0,4); return(d.v); }
구조체 복사 변경으로 인해 - 유니온을 사용하도록 ByteImg.mqh 파일 수정
https://www.mql5.com/ru/forum/6291#comment_4967832 에서 새로운 FastFile을 다운로드하세요.gg는 항상 0을 출력합니다. 쿼리를 데이터베이스에 직접 입력하면 올바른 값을 출력합니다.
그리고 카운트 대신 어떤 열을 넣은 다음 배열 크기 ArraySize(tbl.m_data)를 보면 모든 것이 정상입니다. 즉, 카운트가 작동하지 않습니다. 모르겠어요, 제가 뭔가 잘못하고 있을지도 모르겠네요.....
현재 이 오류가 발생하고 있는데 도와주실 수 있나요?
현재 이 오류가 발생하고 있는데 도와주실 수 있나요?
게시해 주셔서 감사합니다
아카이브에서 수정
트레이딩, 자동매매 시스템, 트레이딩 전략 테스트에 관한 포럼
"SQL과 MQL5: SQLite 데이터베이스 작업" 문서에 대한 토론
데니스 카나피스, 2017.06.11 15:28
gg는 항상 0을 출력합니다. 쿼리를 데이터베이스에 직접 입력하면 올바른 값을 출력합니다.
그리고 카운트 대신 어떤 열을 넣은 다음 배열 크기 ArraySize(tbl.m_data)를 보면 모든 것이 정상입니다. 즉, 카운트가 작동하지 않습니다. 모르겠어, 내가 뭔가 잘못하고 있을지도 몰라.....
COUNT는 0을 출력하지만 SQLiteStuido에서 스크립트를 실행하면 모든 것이 계산됩니다.
실제로 이것은 ~10000> number ofStrokes가 있는 테이블에서 발생하는 것으로 나타났습니다. 또한 위의 예에서와 같이 얻은 테이블 tbl이(코드에 내장 된 함수에 의해) 인쇄되는 경우 INTEGER 유형의 열은 물론 0이 아니지만 0으로 인쇄됩니다. 그리고 동일한 인쇄물에서 두 배로 올바르게 출력됩니다.
정수에 뭔가 문제가 있는 것 같습니다(아직 테스트할 시간이 없었습니다).
트레이딩, 자동매매 시스템, 트레이딩 전략 테스트에 관한 포럼
"SQL과 MQL5: SQLite 데이터베이스 작업" 문서에 대한 토론
BeforeFlight, 2017.08.31 07:55 AM
같은 것 - COUNT는 0을 출력하지만 SQLiteStuido에서 스크립트를 실행할 때 모든 것이 계산됩니다.
실제로 ~10000> number ofStrokes가 있는 테이블에서 이런 일이 발생한다는 것을 발견했습니다. 또한 위의 예에서와 같이 얻은 테이블 tbl이(코드에 내장 된 함수에 의해) 인쇄되는 경우 INTEGER 유형의 열은 물론 0이 아니지만 0으로 인쇄됩니다. 그리고 동일한 인쇄물에서 두 배로 올바르게 출력됩니다.
정수에 문제가있는 것 같습니다 (아직 테스트 할 시간이 없었습니다).
"Include\MQH\Ctrl\ByteImg.mqh" 파일에서 찾았습니다:
대신
분명히 의미했습니다:
그 후 모든 것이 카운트 및 테이블 출력에 정확합니다. 적어도 내 테스트는 통과했습니다.
@o_o @데니스 카나피스
"Include\MQH\Ctrl\ByteImg.mqh" 파일에서 찾았습니다:
대신
를 의미합니다:
그 후 COUNT와 테이블 출력에 모든 것이 정확합니다. 적어도 내 테스트는 통과했습니다.
@o_o @데니스 카나피스
이 오류에 대해 말씀 드리고 싶었습니다, 당신은 저보다 앞서있었습니다 :). INT 값의 경우 항상 0 값이 주어졌습니다.
__int가 유니온이기 때문에 SD에 대한 버그를 설명했습니다.
union __int { int v; uchar b[4]; };
와
__int d; d.v=0;и
__int d={0};와 차이가 없어야 합니다.
표시된 코드 조각은 COUNT에 어떤 영향을 미치는지 전혀 이해하지 못합니다.
ViewInt 함수는 쓰지 않고 정반대로 숫자를 읽기 때문입니다 . 그리고 d.v의 현재 값은 신경 쓰지 않습니다.
-----
더 편안하게 느끼실 수 있도록 제안하신 수정 사항을 ByteImg에 추가했습니다.
하지만 이 버그를 현지화하여 다시 제공해 주세요. 지금까지는 모든 것이 버그처럼 보이지만 확실히 라이브러리의 버그는 아니기 때문입니다.