안녕하십니까. 희망선입니다.
한가지 질문 사항이 있는데요.
with DM.UserQuery do begin
Close;
SQL.Clear;
SQL.Add(' SELECT * FROM users WHERE ID = :P_ID');
ParamByName('P_ID').AsString := Edit1.Text;
Open;
if not EOF then
if FieldByName('PASSWD').AsString = Edit2.Text then begin
SubFormDisplay;
ComponentClear;
end
else begin
ShowMessage('패스워드가 잘못되었습니다.');
Edit2.SetFocus;
end
else begin
ShowMessage('ID가 잘못되었습니다.');
Edit1.SetFocus;
end;
end;
코딩 내용은 위와 같습니다. 그런데 제가 쿼리문을
SQL.Add(' SELECT count(*) FROM users WHERE ID = :P_ID');
이런식으로 count(*) 함수를 쓸려고 하는데 정작 count(*) 함수를 써서 나올 값을
어떻게 프로그램상(변수)에 담을것인지 알수가 없네요.
예전에 어떻게 했는것 같기도 한데 알수 가 없습니다.
도사님들의 조언 부탁드려요.
> 안녕하십니까. 희망선입니다.
> 한가지 질문 사항이 있는데요.
>
> with DM.UserQuery do begin
> Close;
> SQL.Clear;
> SQL.Add(' SELECT * FROM users WHERE ID = :P_ID');
> ParamByName('P_ID').AsString := Edit1.Text;
> Open;
> if not EOF then
> if FieldByName('PASSWD').AsString = Edit2.Text then begin
> SubFormDisplay;
> ComponentClear;
> end
> else begin
> ShowMessage('패스워드가 잘못되었습니다.');
> Edit2.SetFocus;
> end
> else begin
> ShowMessage('ID가 잘못되었습니다.');
> Edit1.SetFocus;
> end;
> end;
> 코딩 내용은 위와 같습니다. 그런데 제가 쿼리문을
>
> SQL.Add(' SELECT count(*) FROM users WHERE ID = :P_ID');
> 이런식으로 count(*) 함수를 쓸려고 하는데 정작 count(*) 함수를 써서 나올 값을
> 어떻게 프로그램상(변수)에 담을것인지 알수가 없네요.
> 예전에 어떻게 했는것 같기도 한데 알수 가 없습니다.
> 도사님들의 조언 부탁드려요.
>
>
'AS'문을 사용하시면 됩니다. 아래와 같이 하면
카운트된 값이 num이라는 가상의 필드에 넣어지게 됩니다.
Select count(*) AS num FROM users WHERE ID = :P_ID
실행을 시키시고(Open)
정수변수 := FieldByName('num')->AsInteger;
를 사용하면 count된 값을 알수가 있습니다.