Q&A

  • 제가 보는책에서 이런 sql구문에 대한 설명을 찾을수가...
if Pan_ProjectCode1.Caption = ''  then
    begin

        SQL := '        SELECT  ProjectCode,KorProjectName ';
        SQL := SQL + '  FROM    ' + gsProjectCodeTable ;
        SQL := SQL + '  WHERE   KorProjectName LIKE ''' + '%' + Edt_KorProjectName1.Text + '%'+ '''' ;


이제 기본적으로 델파이 인터페이스를 익히고 있는 초보입니다.
기본적인 sql구문은 asp를 하면서 어느정도 알겠는데요...
뭐랄까...기호들에 대한 설명은 없고,  콤포넌트를 사용하고
어떻게 데이터를 불러오는지만 간단하게 설명되어있어서
구문을 이해하기도 애매하고 막말로 저보고 저 구문을 안보고
써보라면 기호빼고는 다 쓸수 있겠네요 ^^;;

첫번째줄보면 select 앞에서 ' 로 시작해서 ; 앞에서 ' 으로 막았는데
두번째 줄은 from 앞에서 ' 로 시작해서 ; 앞에서 막은게 아니라
from 바로다음에서 ' 로 막았네요...(둘에서 공통점을 찾을수가 없네요)

세번째 줄은 한줄문장인데 글쓰는 란이 좁아서 내려와버렸네요...^^
셋째줄은 ' 이게 많이 사용되었고 둘째줄에도 있는 + 가 있네요

저 문장에 쓰인 ' 와 + 를 설명좀 해주시면 감사하겠습니다.

제가 써놓고도 깝깝하단 생각이 드네요...

4  COMMENTS
  • Profile
    이정관 2004.11.15 21:22
    if Pan_ProjectCode1.Caption = ''  then -> String문자가 아무것도 없을때

            SQL := '        SELECT  ProjectCode,KorProjectName ';
    -> SQL이라는 String변수에 String문자열 '        SELECT  ProjectCode,KorProjectName ' 지정. 델파이에서는 single quotation이 문자열입니다(열고 닫고)
    -> KorProjectName LIKE '''에서 '''은 "'같군요. double quotation+single quotation, + '''';에서는 single quotation+double quotation+single quotation이구요
    문자열 결합은 +기호를 씁니다.
  • Profile
    김정현 2004.11.15 21:52
    제가 올려놓은 원문을 보면
    SELECT  ProjectCode,KorProjectName  이문장을 SQL 에 담고
    그 SQL문과  FROM  ' + gsProjectCodeTable 을 합한걸 다시 SQL에담고
    다시 두번째 문장을 담은 SQL과 마지막 문장을 합쳐서 또 SQL에 담고...

    이렇게 하는게 어떤 원칙에 의한것일까요?..
    그냥

    SQL := SELECT  ProjectCode,KorProjectName FROM gsProjectCodeTable  WHERE   KorProjectName LIKE % Edt_KorProjectName1.Text % ;

    이런식으로 하나의 문장을 SQL이라는 변수에 한번만 담으면 안되나요?

    그리구요...
    더블쿼테이션(쌍따옴표)이 마지막 문장에 들어갔다고 그러셨자나요...
    왜 모두 single qutation을 쓰다가 마지막에 double qutation을 썼을까요?

    허접하지만 창피함무릅쓰고 한번더 물어봅니다...





  • Profile
    이정관 2004.11.15 22:18
    gsProjectCodeTable은 String변수입니다. 즉 변수라서 지정하가 나름이죠.
    그리고 LIKE ''' + '%' + Edt_KorProjectName1.Text + '%'+ '''' ;
    이부분은 query의 like문장에서 생각해보면 특정문장이 들어있는
    ~like '%특정문장%'  이렇게 쓰죠... 이걸 그대로 델파이로 옮기면
    '~like '''+'%'+'특정문장'+'%'+'''';입니다.
    그리고 델파이에서 문자열 single quotation를 쓰기 위해서는 single qutation를 앞에 한번 더 붙입니다. 즉 single quotation를 4번 연속해서 씁니다.
    첫번째는 문자열의 시작, 두번째는 single quotation를 쓰기위해 한번 더 쓰는것, 세번째는 원하는 single quotation, 네번째는 문자열의 끝.

    '~like ''%'+'특정문장'+'%''' 이렇게해도 됩니다.

    ->변수로 지정된 값을 사용하기 위해서죠
       Edt_KorProjectName1.Text ,gsProjectCodeTable은 String형 변수입니다.
       Edt_KorProjectName1.Text은 EditBox의 Text값이구요...

    -> 마지막에 single quotation으로 닫으면 문법 상으로는 문제가 없습니다.
    그러나 쿼리를 날리면 쿼리가 잘못 되었다고 나오겠죠...


  • Profile
    김정현 2004.11.15 23:02
    • 석주현
      2004.11.16 18:08
      그냥 Edit 와 updown VCL 을 이용해서 코딩을 해줘야 할거 같네요. Edit에서 커서 위치에 따라서 시간 분 ...
    • 김종균
      2004.11.17 06:14
      SpinEdit에서 커서위치를 어떻게 아는지요... 예제 있으면 올려
    • 양기태
    • 2004.11.16 06:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이두형
      2004.11.16 08:11
      제 생각엔 배열에 랜덤하게 직접 이미지를 넣는 방법보다, (근데 위 방법으로 랜덥하게 이미지를 선택해야...
    • 하얀까마귀
      2004.11.16 23:24
      안녕하세요 하얀까마귀 입니다. 아주 오래전 도스에서 png포맷으로 프로그램을 만든 기억이 ㅎㅎㅎ ...
    • 최성욱
    • 2004.11.16 01:47
    • 4 COMMENTS
    • /
    • 0 LIKES
    • id0313
      2005.05.20 18:25
      늦게나마 답변.. 한동안 아무 생각없이 String에 255개 이상의 문자를 대입하면 에러가 난다고 알고서 코...
    • 신동호
      2004.11.17 07:07
      sql문 자체가 TStringList 객체로 되어 있습니다. 그러므로 sql문은 한개의 Text 화일이라고 볼 수 있습니...
    • 한원희
      2004.11.16 05:12
      안녕하세요. 한원희입니다. 쿼리의 길이는 상관이 없는 것으로 알고 있습니다. 제가 여태까지 ADO를 사...
    • 모영철
      2004.11.16 03:45
      전에 1000줄 정도 되는 쿼리를 ADO가 아닌 BDE를 이용해서 날리는데요.. 정확히 몇글자 인지 모르겠지만...
    • 이정관
      2004.11.16 01:08
      uses절에 ComCtrls넣어주세요.
    • 최수림
      2004.11.16 01:09
    • 우용우
    • 2004.11.15 23:44
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.11.17 22:08
      안녕하세요. 최용일입니다. 아는 방법은 없을거 같은데요... 소켓을 오픈한다고 해도 공유기로 데이...
    • 정정봉
      2004.11.16 17:31
      처음 에러는 쿼리문장이 잘못 코딩이 된것 같구요. 두번째 에러는 Key값 중복 발생 에러 인것 같네요.
    • 델피언
    • 2004.11.15 21:33
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2004.11.16 05:15
      안녕하세요. 한원희입니다. 아마도 IF 문 다음에 BEGIN ... END를 하지 않아서 그런것이 아닐까요??? ...
    • 김종균
    • 2004.11.15 20:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 이정관
      2004.11.15 21:30
      showhint를 true로 하셨나요? 툴바에 버튼 등을 추가했다면 툴바의 힌트와 툴버튼의 힌트를 따로 지정해...
    • 김종균
      2004.11.15 21:40
      showhint는 ture입니다. 델파이7을 다시 설치했는데 그러네요
    • 이정관
      2004.11.16 18:39
      델파이를 새로 설치해도 그런다면 대체로 난감ㅡㅡ;;
    • 김정현
    • 2004.11.15 20:01
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이정관
      2004.11.15 21:22
      if Pan_ProjectCode1.Caption = ''  then -> String문자가 아무것도 없을때   &...
    • 김정현
      2004.11.15 21:52
      제가 올려놓은 원문을 보면 SELECT  ProjectCode,KorProjectName  이문장을 SQL 에 ...
    • 이정관
      2004.11.15 22:18
      gsProjectCodeTable은 String변수입니다. 즉 변수라서 지정하가 나름이죠. 그리고 LIKE ''' + '%' + Edt_K...
    • 김정현
      2004.11.15 23:02
    • nilriri™
      2004.11.16 22:05
      무슨 작업을 하시려고 그러시는지 모르겠네요..^^; 디비 그리드에 서로 다른 테이블의 내용을 사용자 선...
    • 이두형
    • 2004.11.15 11:23
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 한원희
      2004.11.15 19:34
    • 이정관
      2004.11.15 18:55
    • 이두형
      2004.11.16 08:34
    • 이정관
      2004.11.16 18:33
    • 이두형
      2004.11.16 22:09
    • 이정관
      2004.11.16 22:32
    • 이두형
      2004.11.17 01:35
    • 노명환
    • 2004.11.15 10:31
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이정관
      2004.11.15 19:33
      예전에 퀵레포트 했던 경험으로는 이런 경우에 대해서 두가지 방법이 있었던것 같네요. 첫번째는 Query에 ...
    • 이정관
      2004.11.15 20:38
      두번째방법의 소스입니다.
    • 노명환
      2004.11.15 22:59
      답변 고맙습니다. 그런데 첨부하신 예제 프로그램에서 페이지 수가 무한정 늘어나 버리는데요. 뭐가 잘 ...
    • 이정관
      2004.11.16 01:00
      MsSQL2000서버의 Northwind의 Orders테이블을 연결해서 사용한 겁니다. TDataBase와 TQuery를 수정해서 ...
    • 김정현
      2004.11.15 18:33
      딱히 답변은 아니구요...^^ 예를 들어 환경설정 파일같은거나 게임환경정보를 저장해놓은....그런거... ...
    • nilriri™
      2004.11.15 21:57
      Self가 QReport라면.. 여기에서 구한 m이 필드명이 나온다면.. m:= tqrdbtext(components[i]).Caption;...
    • 가딘
      2004.11.16 20:14
      답변 감사하구요 문제는 디테일 밴드의 출력된 모든 값을 가지고와서 엑셀로 저장을 할려고 합니다. 쿼...
    • 구자균
      2005.02.03 19:22
      프린터를 일단 공유를 시켜요.영수증프린터는 삼보 570으로 잡고 공유시켜요. 다른 피시에서 네트웍공유...
    • 하얀까마귀
      2004.11.19 19:39
      안녕하세요 하얀까마귀 입니다. 먼저 LTP1이란 이름은 포트명이므로 이 이름은 쓸수 없습니다. 당...