if Length(EDTPrizecd1.Text) > 0 then begin
S_.SQL.ADD(' AND PRIZECD >= :SQLPrizecd1 ');
S_.Params[i].AsString := EDTPrizecd1.Text ;
// S_.ParamByName('sqlprizecd1')asString := EDTPrizecd1.Text;
inc(i);
end;
if Length(EDTPrizecd2.Text) > 0 then begin
S_.SQL.ADD(' AND PRIZECD <= :SQLPrizecd2 ');
S_.Params[i].AsString := EDTPrizecd2.Text ;
// S_.ParamByName('sqlprizecd2')asString := EDTPrizecd2.Text ;
end;
S_.Open;
위 주석문 (Parambyname 사용)대로 하면 에러가 나는데 왜 그럴까요
고수님들의 가벼운 답변 부탁드립니다
> if Length(EDTPrizecd1.Text) > 0 then begin
> S_.SQL.ADD(' AND PRIZECD >= :SQLPrizecd1 ');
> S_.Params[i].AsString := EDTPrizecd1.Text ;
> // S_.ParamByName('sqlprizecd1')asString := EDTPrizecd1.Text;
> inc(i);
> end;
>
> if Length(EDTPrizecd2.Text) > 0 then begin
> S_.SQL.ADD(' AND PRIZECD <= :SQLPrizecd2 ');
> S_.Params[i].AsString := EDTPrizecd2.Text ;
> // S_.ParamByName('sqlprizecd2')asString := EDTPrizecd2.Text ;
> end;
>
> S_.Open;
>
> 위 주석문 (Parambyname 사용)대로 하면 에러가 나는데 왜 그럴까요
> 고수님들의 가벼운 답변 부탁드립니다
>
두개의 차이는 없다고 생각합니다만
단지 용도의 차이겠죠. 상황에 따라 편한게 있을테니깐요.
ParmaByName은 컬럼명을 쓰니깐 혼동의 여지가 없구요.
Params[i] 은 구지 컬럼을 몰라두 Loop 돌 때 유용하게 쓸수 있잖아요.
제가 아는정도는 여기가지 ^^
위에서 .AsString 인데 . 이 없네요 --;; 타입을 모르때는 Value를 쓰면 되겠죠.