Q&A

  • SQL Error..
다음과 같이 SQL을 사용했는데 잘 안되네요.. 제가 코드오류를 범한건지
알려주세요..

function TfrmMode.SaveMode(TableName, PK, Key : String) : TSaveMode;
begin
  Result := zNormal;
  
  with Query do begin
    SQL.Clear;
    SQL.Add('SELECT COUNT(*) FROM :TableName');
    SQL.Add('WHERE :PK = :Key');
    ParamByName('TableName').AsString;
    ParamByName('PK').AsString;
    ParambyName('Key').AsString;
    Open;
  end;

위의 SQL에서 Table명을 변수값을 입력하기위해 처리를 했는데 이부분에서
Error 가 발생하는것 같은데,,  이런식으로 사용이 불가능한가요..?
  
3  COMMENTS
  • Profile
    갈매기 2002.04.18 22:36
    with Query do begin
        SQL.Clear;
        SQL.Add('SELECT COUNT(*) FROM :TableName');
        SQL.Add('WHERE :PK = :Key');
        ParamByName('TableName').AsString := edit1.text;
        ParamByName('PK').AsString             := edit2.text;
        ParambyName('Key').AsString            := edit3.text;
        Open;
      end;

    이런식으로 파라멘트에 값을 넣어줘야 되지 않을까요  ^^
  • Profile
    공성환 2002.04.18 22:29
    SQL.Text :=
       'select count(*) from ' + tablename +
       ' where ' + pk + '=' + key ;

    이렇게 해보세요...


  • Profile
    김현정 2002.04.18 22:34
        SQL.Add('SELECT COUNT(*) FROM :TableName');
        SQL.Add('WHERE :PK = :Key');
    =>
        ParamByName('TableName').AsString := '테이블명';
        ParamByName('PK').AsString := '프라이머리 키';
        ParambyName('Key').AsString := '자료값';
    => 한글로 된 곳에 임의의 자료를 넣어주어야 할것 같습니다.
    테스트 해보세요.