Q&A

  • sql 검색 문제..
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT * from TestTable');
IBQuery1.SQL.Add('WHERE (Name LIKE :vName) AND (Number LIKE :vNumber) AND (EnterDate LIKE :vEnterDate) AND (Summary LIKE :vSummary)');
IBQuery1.SQL.Add('ORDER BY PubDate desc, AccountNo asc');
IBQuery1.Parambyname('vName').asstring := sqlName;
IBQuery1.Parambyname('vNumber').asstring := sqlNumber;
IBQuery1.Parambyname('vEnterDate').asstring := sqlEnterDate;
IBQuery1.Parambyname('vSummary').asstring := sqlSummary;
IBQuery1.Open;

위에서 sqlName, sqlNumber, sqlEnterDate, sqlSummary는 TEdit로 입력받아서
입력값이 없으면 '%'로, 있으면 그 값을 저장하도록 했습니다.
메시지창으로 확인한 결과 입력받는 쪽은 정상처리가 되고 있었습니다.

만약 아무 입력값없이 실행하게되면 실제로 실행되는 쿼리문은 다음과 같습니다.
그냥 SELECT * 한것과 같은 결과겠죠.

SELECT *
FROM TestTable
WHERE (Name LIKE '%') AND (Number LIKE '%') AND (EnterDate LIKE '%%-%-%%') AND (Summary LIKE '%')

근데 문제는 IBConsole에서 직접 위와같이 입력해서 실행해보면
정상적으로 검색이 되는데 프로그램상에서 검색을 실행하게되면
아무 에러없이 아무것도 뿌려주지를 않습니다.
프로그램상에서 제가 잘못 처리한 부분이 있는지 조언 부탁드립니다.
12  COMMENTS