Q&A

  • 쿼리 where에서요 변수 비교는....
var

name : string;

begin

name := 'kikiki';

with Query1 do

begin

close;

sql.clear;

sql.add('select A.book_title , B.user_name from book_info.DB A left join rent_info B');

sql.add('on A.code = B.code');

sql.add('where A.book_rent_name=B.user_name');

//sql.add('and A.book_rent_name="'+name+'"');

label1.caption := Query1.text;

open;

end;

end;

주석 처리 된 부분에요 A.book_rent_name= 이분분뒤에요 name이란 변수를

쓰고 싶은데 db에서 에러가 나는군요.. 어떻게 해야 하나요.

조언 부탁 드립니다. db는 access를 썼거든요.....



2  COMMENTS
  • Profile
    하얀까마귀 2000.03.30 07:07
    안녕하세요 하얀까마귀 입니다.



    잘보니까 더블퀘스쳔 마크 를 쓰셧네요...



    Access는 안써봐서 잘 모르겠는데.. 이건 기본적으로 필드명을 구분할때 쓰죠??



    그러니까.. 이게 문자열이라는 걸 알리려면 작은따옴표를 쓰셔야죠...



    그런데... 작은따옴표 안에 작은따옴표를 쓰고 싶으시면 두개를 써야 합니다...



    잉??? 말이좀 어렵다....



    그러니까 작은따옴표를 단지 문자로 인식하게 해서 보낼려면 '''' <-- 요렇게 해야



    합니다...



    그러니까 코딩이 이렇게 바뀌어야 합니다.



    'A.book_rent_name= ''' + name + '''' );



    아시겠죠??? 이렇게 하면 name 앞에 다옴표가 하나 붙게 되고 뒤에도 하나 붙게 되죠...



    그러면 실제 이게 SQL문으로 변역 될때는



    name 의 내용이 aaa라고 하면



    and A.book_rent_name= 'aaa'



    가 되는 거죠... 이게 원하시는거 맞죠???



    -----------------------------------------------

    그런데 디버깅 할것도 아니면서 왜 이렇게 하죠???



    그냥 파라메터로 넘겨요... 이렇게



    SQL.Add( ' and A.book_rent_name = :brent_name ');

    ParamByName('brent_name').AsString := name;

    <-- 요렇게요... SQL문 내에서 ':'이게 붙은 문자열은 파라메터를 넘겨 받아서

    그값을 사용하죠... 이게 더 쉽죠???/



    위에 것은 그냥 참고 하세요... 혹시 쓸데가 있을지 압니까??? 그럼..



    즐거운 시간 되시구요... SQL공부좀 더하셔야 겠네요..



    그럼... 하얀까마귀 -







    bhkmm wrote:

    > var

    > name : string;

    > begin

    > name := 'kikiki';

    > with Query1 do

    > begin

    > close;

    > sql.clear;

    > sql.add('select A.book_title , B.user_name from book_info.DB A left join rent_info B');

    > sql.add('on A.code = B.code');

    > sql.add('where A.book_rent_name=B.user_name');

    > //sql.add('and A.book_rent_name="'+name+'"');



    > label1.caption := Query1.text;

    > open;

    > end;

    > end;

    > 주석 처리 된 부분에요 A.book_rent_name= 이분분뒤에요 name이란 변수를

    > 쓰고 싶은데 db에서 에러가 나는군요.. 어떻게 해야 하나요.

    > 조언 부탁 드립니다. db는 access를 썼거든요.....

    >

  • Profile
    bhkmm 2000.03.30 08:07
    하얀 까마귀님 감사합니다.

    첫번째 방법은 알고 있었으나 안돼더군요..

    델파이에서는 안걸리는데.

    db에서 걸리더라구요... 히히

    두번째 방법은 한번 해보지요...

    답변 고맙습니다...

    • 꼭! 꼭!
    • 2000.03.30 19:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.03.30 23:06
      WM_NCHITTEST 메세지에 반응하는 메소드를 서브클래싱해서 사용하시면 됩니다. 즉, 마우스포인터의 위치...
    • 이상학
    • 2000.03.30 17:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박성훈
      2000.03.30 19:30
      이상학 wrote: > ini 파일을 읽어서 트링 넣고 트리를 클릭하면 리스트 박스에 내용이 표시 되도록하는 >...
    • 박동기
    • 2000.03.30 16:28
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 신기종
      2000.03.30 19:43
      박동기 wrote: > NT나 Win2000에 델파이4나 5를 설치하려면은 어떻게 하나요? > 그냥 설치하면 되나요? ...
    • 어린왕자
      2000.03.31 00:41
      신기종 wrote: > 박동기 wrote: > > NT나 Win2000에 델파이4나 5를 설치하려면은 어떻게 하나요? > > 그...
    • 차카게살자
      2000.04.04 02:22
      어린왕자 wrote: > 신기종 wrote: > > 박동기 wrote: > > > NT나 Win2000에 델파이4나 5를 설치하려면은...
    • 어린왕자
      2000.03.31 01:27
      어린왕자 wrote: > 신기종 wrote: > > 박동기 wrote: > > > NT나 Win2000에 델파이4나 5를 설치하려면은...
    • 어린왕자
      2000.03.31 00:44
      어린왕자 wrote: > 델초보 어린왕자인데요.. > mdb파일은 엑세스에서 저장된 파일 아닌가요? 맞줘? > 근...
    • 최용일
      2000.03.30 18:33
      TRichEdit.SelAttributes속성을 이용하세요. 현재 커서의 위치나 선택된 문장의 여러가지 속성을 알수 ...
    • 니케
    • 2000.03.30 10:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 류종택
      2000.03.30 17:12
      Select * From TableName Where FiledName Like '%sql%' 과 같이 하시면 됩니다.. Like문에 대해서 SQL ...
    • 이영수
      2000.03.30 10:16
      여전히 초보 wrote: > 회원을 검색한 후에 그 회원들의 우편수령지에 따라 봉투를 프린트 할건데요 > 도...
    • 델파이
    • 2000.03.30 09:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안경옥
      2000.03.30 17:33
      델파이 wrote: > try... family 질문입니다 > > 설명좀 해주세요 > > 이게 이해가 안가거든요? >...
    • 이용현
    • 2000.03.30 08:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 화랑
      2000.03.30 18:54
      리턴값을 설정할때 어디서 하셨나요? Type Library에서 설정을 하신건가요? COM 제작은 형식을 많이 ...
    • 남경진
      2000.03.31 01:52
      이수정 wrote: > 안녕하세요.. 입력하는데 에러가 자꾸 나서요.. > 원인을 잘 모르겠어서... 한번 봐주세...
    • 이기현
      2000.04.24 10:26
      남경진 wrote: > 이수정 wrote: > > 안녕하세요.. 입력하는데 에러가 자꾸 나서요.. > > 원인을 잘 모르...
    • 이기현
      2000.04.24 10:25
      남경진 wrote: > 이수정 wrote: > > 안녕하세요.. 입력하는데 에러가 자꾸 나서요.. > > 원인을 잘 모르...
    • 사노테
    • 2000.03.30 06:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.03.30 06:58
      안녕하세요 하얀까마귀 입니다. 델파이에 보시면 function IncMonth(const Date: TDateTime; Number...
    • bhkmm
    • 2000.03.30 05:56
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2000.03.30 07:07
      안녕하세요 하얀까마귀 입니다. 잘보니까 더블퀘스쳔 마크 를 쓰셧네요... Access는 안써봐서 잘 모...
    • bhkmm
      2000.03.30 08:07
      하얀 까마귀님 감사합니다. 첫번째 방법은 알고 있었으나 안돼더군요.. 델파이에서는 안걸리는데. db에...
    • 초보자
    • 2000.03.30 05:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      2000.03.30 19:49
      초보자 wrote: > MessageDlg에서 Default버튼을 설정하고 싶습니다. > 기본적으로 > MessageDlg('messa...
    • 백록화
    • 2000.03.30 05:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 화랑
      2000.03.31 04:15
      글쎄요.. 일단 에러 메세지가 나왔으니깐.. 그쪽으로 한번 찾아 보세요.. > 그런데, 정작 cgi를 서버...
    • 갱수
      2000.03.31 11:00
      김봉준 wrote: > 하하.. 안녕하세요 또 이상한 질문을 하게 되는것 같군요 > > 리눅스에 설치된 MySQL...
    • 조규춘
      2000.03.30 05:33
      얀 wrote: > 한글입력시 만약 > exe) '한메일'이라고 입력시 'ㅎ'을 가져오고 싶습니다 그리고 'ㅎ'을 가...
    • 공성환
    • 2000.03.30 03:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      2000.03.30 03:57
      공성환 wrote: > 먼저 질문에 답하여 주신것에 감사합니다(하얀까마귀님,홍세비님)... > 아직 내공의 힘...