Q&A

  • sql문에서 인용부호('또는 ''')의 의미...?
sql문에서 인용부호의 의미좀 알려주세요.. 예를 들어 아래와 같은 문장.



tempQry.SQL.Clear;

tempQry.SQL.Add('Select code1,name from Basiccode where code0=3 and code2= '''+fac+''' ');

tempQry.SQL.Add('and (Remark='''+inttostr(pkind)+''' or remark=3) order by Code1');

tempQry.Open;

Qry1:='Select Code1,Name from BasicCode ';

Qry2:='Where code0=3 and code2='''+fac+''' and name >= :0 and name <= :1 ';

Qry3:='and remark='''+inttostr(pkind)+''' Order By name';

위의 문장을 보시면 인용부호가 나오는데.. '또는 '''은 어떻게 해석을 하나요?



한가지 질문 더 드리겠습니다.



SQL.Add('Select name from basicCode');

SQL.Add('where code0=3 and code1=:code1');

params[0].Asstring:=fac2;

위의 문장에서 할당부호가 := 와 =:이 있는데.. 어떻게 다른가요..

다른 것은 없는데.. 위치만 바뀐건가요?



도사님들 꼭 좀 알려주세요...

2  COMMENTS
  • Profile
    철이 1999.07.23 00:45
    최선기 께서 말씀하시기를...

    > sql문에서 인용부호의 의미좀 알려주세요.. 예를 들어 아래와 같은 문장.

    >

    > tempQry.SQL.Clear;

    > tempQry.SQL.Add('Select code1,name from Basiccode where code0=3 and code2= '''+fac+''' ');

    > tempQry.SQL.Add('and (Remark='''+inttostr(pkind)+''' or remark=3) order by Code1');

    > tempQry.Open;

    > Qry1:='Select Code1,Name from BasicCode ';

    > Qry2:='Where code0=3 and code2='''+fac+''' and name >= :0 and name <= :1 ';

    > Qry3:='and remark='''+inttostr(pkind)+''' Order By name';

    > 위의 문장을 보시면 인용부호가 나오는데.. '또는 '''은 어떻게 해석을 하나요?

    >

    > 한가지 질문 더 드리겠습니다.

    >

    > SQL.Add('Select name from basicCode');

    > SQL.Add('where code0=3 and code1=:code1');

    > params[0].Asstring:=fac2;

    > 위의 문장에서 할당부호가 := 와 =:이 있는데.. 어떻게 다른가요..

    > 다른 것은 없는데.. 위치만 바뀐건가요?

    >

    > 도사님들 꼭 좀 알려주세요...

    오브젝트 파스칼(파스칼에서도아마)에서 '를 스트링내에서 표현하는 방식이

    그렇습니다.



    스트링타입의 데이타를 구성할 때 str:='내용'과 같이 표현하는 것은

    잘아시는 내용일 테고, '내용'에서 내용 내부에 스트링의 일부로서 '를

    표현하고자 한다면 str:='내'용'처럼 표현하게 되어 곤란한 일이죠.

    그래서 스트링 데이타의 일부로 '를 표시할 때는 두개를 찍어줍니다.즉

    str:='내''A''용'

    이와 같이 하면 str의 값으로 내'A'용 이란 값이 들어가는 것이지요.



    > tempQry.SQL.Add('Select code1,name from Basiccode where code0=3

    > and code2= '''+fac+''' ');



    에서는 code2 칼럼이 character 류의 데이타 타입이므로 sql문을 작성할 때는

    'fac'과 같은 형태로 구성되어야 하기 때문에 좀 너저분해 보이지만 위와

    같은 형태로 써 주게 됩니다.보기쉽게 고치면

    > tempQry.SQL.Add('Select code1,name from Basiccode where code0=3

    > and code2= '' '+fac+ ' '' ');

    ^^ ^^

    처럼 되겠죠.



    그리고 두번째 =: 로 표시되는 부분에 관해서는 =:와 같은 연산자는 없다는 것이죠.콜론은 이퀄에 붙는게 아니라 뒤에나오는 파라미터변수 명에 붙는 것으로

    sql문내에서 외부 입력값을 받아 처리하기 위해 사용됩니다.

    sql 문을 구성한 다음에는 paramXXXX어쩌고 하는 것과(이런류를 모라는지모르겠군요.) 같이 사용해서 변수 값을 입력받아 sql을 재구성해서 날리게되는 것입죠.



    횡설수설..놀다가 몇마디 끌적인 철이였습니다.



  • Profile
    데빠이 1999.07.08 19:52
    최선기 께서 말씀하시기를...

    > sql문에서 인용부호의 의미좀 알려주세요.. 예를 들어 아래와 같은 문장.

    >

    > tempQry.SQL.Clear;

    > tempQry.SQL.Add('Select code1,name from Basiccode where code0=3 and code2= '''+fac+''' ');

    > tempQry.SQL.Add('and (Remark='''+inttostr(pkind)+''' or remark=3) order by Code1');

    > tempQry.Open;

    > Qry1:='Select Code1,Name from BasicCode ';

    > Qry2:='Where code0=3 and code2='''+fac+''' and name >= :0 and name <= :1 ';

    > Qry3:='and remark='''+inttostr(pkind)+''' Order By name';

    > 위의 문장을 보시면 인용부호가 나오는데.. '또는 '''은 어떻게 해석을 하나요?

    >

    > 한가지 질문 더 드리겠습니다.

    >

    > SQL.Add('Select name from basicCode');

    > SQL.Add('where code0=3 and code1=:code1');

    > params[0].Asstring:=fac2;

    > 위의 문장에서 할당부호가 := 와 =:이 있는데.. 어떻게 다른가요..

    > 다른 것은 없는데.. 위치만 바뀐건가요?

    >

    > 도사님들 꼭 좀 알려주세요...



    인용부호 한개로 양쪽을 막으면 즉,'Select * from ...'즉 문장을 String으로 저장한다는 의미이구요

    like문을 예로들어 where ??? like '%' 이문장을 sql.Add하려면

    Add('where ??? like' + '''' + '%' + ''''); 즉 ' 을 표현하고자 할 경우 임니다.

    그리고

    := 는 변수에 값을 대입한다는 의미구요

    =:code1'); 의 경우는 = :code1입니다. code1의 콜론은 파라메터로 사용될

    변수라는 의미입니다.

    도움이 되시길 빌며 이만....