2015-01-23 1 views
0

이 코드는 데이터 불일치 오류를 나타내며 Google 검색 시간이 지나면 해결할 수 없습니다. 도움을 많이 주시면 감사하겠습니다.구문 ORDER BY 절의 오류 및 조건 식의 데이터 불일치

코드는 "항해 번호"(문자열 값) 버튼 캡션과 같은 곳 발견하고 어디 것은 최신 레이스 내지 (따라서 순서 DESC 제한 2)

ADOQuery.Close; 
ADOQuery.SQL.Clear; 
ADOQuery.SQL.Add('SELECT * FROM MemberRace WHERE SailNumber='+ TButton(sender).Caption + ' ORDER BY Race_ID DESC LIMIT 2;'); 
ADOQuery.Open; 

답변

1

Ms-AccessLimit을 지원하지 않습니다. Top 대신

SELECT Top 2 * 
FROM MemberRace 
WHERE SailNumber='+ TButton(sender).Caption + ' 
ORDER BY Race_ID DESC 
+0

감사합니다. ORDER BY 오류는 제거되지만 여전히 조건 표현식에서 데이터 불일치가 발생합니다. 이것이 실제로 무엇을 의미하는지 설명해 주시겠습니까? –

+0

@DanMassey'TButton (발신자) .Caption'도 sttring을 반환 할 것입니다. –

+0

거기에 쉬운 방법이 있습니다. 나는 구글에서 무엇이든 찾을 수 없다 –

0

Limit의 사용 지금 당신은 얻을 : SailNumber 문자열이고 5 INT 때문에

SELECT * FROM MemberRace WHERE SailNumber=5 ORDER BY Race_ID DESC LIMIT 2 

, 당신이 오류가 발생합니다. 다음과 같은 성명을 얻어야한다 :

SELECT * FROM MemberRace WHERE SailNumber='5' ORDER BY Race_ID DESC LIMIT 2 

은 또한 당신이 LIMIT TOP로 변경 (NoDisplayName의 답변을 @ 참조)해야합니다. 그래서 끝까지

'SELECT top 2 * FROM MemberRace WHERE SailNumber='+ '''' + TButton(sender).Caption + '''' + ' ORDER BY Race_ID DESC;' 
관련 문제