Q&A

  • ADOQuey 에서 파라미터 사용법... 길라잡이를 청합니다.
procedure TfmMEM001.Rrest_Search;    
var
    Row     :  Integer     ;

begin

    Row     :=  0           ;

    ADOQuery1.Close         ;
    ADOQuery1.SQL.Clear     ;

    ADOQuery1.SQL.Text      :=
                              '   SELECT                           '
          +   #13 +   '   R01_APPLNO  ,            '
          +   #13 +   '   R01_HNNAME  ,           '
          +   #13 +   '   C05_LOWXNA  ,          '
          +   #13 +   '   substring(R01_APDATE , 1 , 4) +  ''-''  +   substring(R01_APDATE , 5 , 2) +  ''-''  +     substring(R01_APDATE , 7 , 2) ,                                                      '
          +   #13 +   '   substring(R01_ENTRDT , 1 , 4) +  ''-''  +   substring(R01_ENTRDT , 5 , 2) +  ''-''  +     substring(R01_ENTRDT , 7 , 2) ,                                                       '
          +   #13 +   '   substring(R01_RECVDT , 1 , 4) +  ''-''  +   substring(R01_RECVDT , 5 , 2) +  ''-''  +     substring(R01_RECVDT , 7 , 2) ,                                                       '

//{01}        +   #13 +   '   DATEDIFF ( YEAR  ,   R01_APDATE        ,   GETDATE ()),   '
//                현재년도에서 R01_APDATE(날자)에서 년도를 뺀 년차를 보여주고 싶은 이부분도 에러가 납니다.
//  문자열을 datetime 으로 변환하는 중 구문 오류가 발생했습니다.  라고 나와서 주석으로 뺌

          +   #13 +   '     (  SELECT  COUNT (R16_APPLNO)                                 '
          +   #13 +   '        FROM    R16_REST                                                      '
          +   #13 +   '        WHERE   R16_APPLNO    =    A.R01_APPLNO              '
          +   #13 +   '        AND     R16_RESTCO    =    ''0010''                              '
          +   #13 +   '     )                                                                                     '
          +   #13 +   '   FROM                                                                               '
          +   #13 +   '       R01_APPL    A   ,   '
          +   #13 +   '       C05_COMD            '
          +   #13 +   '   WHERE                   '
          +   #13 +   '       R01_STATGU  =   C05_LOWXCO     '
          +   #13 +   '   AND                     '
          +   #13 +   '       C05_HIGHCO  =   ''R020''                '
          +   #13 +   '   AND                     '
          +   #13 +   '       R01_STATGU  IN  (''0020'' , ''0040'' , ''0090'')    '
          +   #13 +   '   AND                 '
          +   #13 +   '       R01_APDATE   =  :p_Date1              '    
//                                 날자데이타 R01_APDATE(Varchar ,    8자리)        
          +   #13 +   '   ORDER BY            '
          +   #13 +   '       R01_APPLNO      '  

          +   #13 +   '   ADOQuery1.Parameters.ParamByName(''p_Date1'').asString  :=  pMsApdate1.text ' ;

//    이렇게 하고 실행하면 실행은 되나 pMsApdate1.maskedit에 날자를 넣고(2008-08-30) 검색을 하면 에러나옴 -> 매개변수 개체를 잘못 정의했습니다. 제공된 정보가 일치하지 않거나 완전하지 않습니다. 라고...

         ADOQuery1.Open          ;

         if ADOQuery1.IsEmpty then
         begin
                  Exit    ;
         end;

        StrGrid1.RowHeights[01]     :=      StrGrid1.RowHeights[00]     ;
        while not   ADOQuery1.Eof  do
            begin
                StrGrid1.Cells[00    ,   Row + 1]    :=  ''      ;
                StrGrid1.Cells[01    ,   Row + 1]    :=  ADOQuery1.Fields[00].AsString     ;
                StrGrid1.Cells[02    ,   Row + 1]    :=  ADOQuery1.Fields[01].AsString     ;
                StrGrid1.Cells[03    ,   Row + 1]    :=  ADOQuery1.Fields[02].AsString     ;
                StrGrid1.Cells[04    ,   Row + 1]    :=  ADOQuery1.Fields[03].AsString     ;
                StrGrid1.Cells[05    ,   Row + 1]    :=  ADOQuery1.Fields[04].AsString     ;
                StrGrid1.Cells[06    ,   Row + 1]    :=  ADOQuery1.Fields[05].AsString     ;
//                StrGrid1.Cells[07    ,   Row + 1]    :=  ADOQuery1.Fields[06].AsString     ;

                Row                          :=  Row   +   1 ;
                StrGrid1.RowCount   :=  Row   +   1 ;
                AdoQuery1.Next                              ;

                Application.ProcessMessages          ;

            end;


end;

분명 잘못된 부분이 있습니다만...
고수님들이 보시기엔 단순해 보일지라도 제겐 너무나 큰 어려움으로 와 닿습니다.  길라잡이가 되어주십시오.

제가 처리하려고 하는것은...
ADOQuery를 이용해서 날자(마스크에디터)를 받아서 조건에 맞는 결과를 스트링그리드에 뿌려주고 싶습니다.
위에서 처리하려고 하는 방법이 아니더라도 처리할 수 있는 방법을 알려주시면 공부해서 제것으로 만들어보겠습니다.  

질문이 두서도없고, 정리도 안된듯 하여 지송해요.  다음번에 질문을 남길때는 오늘보다는 조금 간단명료하게 작성하도록 델파이공부 많이하겠습니다.

1  COMMENTS
  • Profile
    이정욱 2008.09.04 18:33
    R01_APDATE 필드의 데이터 타잎이 String 인거 같은데, DateTime 형으로 사용하려고 하는 것 같습니다. 즉 DATEDIFF 를 직접 사용하실 수 없습니다. String으로 담겨진 날짜를 DateTime 타잎으로 변환 후 그것을 가지고 DATEDIFF 안에서 사용하셔야 합니다.
    • 이은주
      2008.09.03 22:15
      아이 이건 좀 우습게 끝났네요. 해당 팩키지를 넣어주는 것으로 해결이 나는군요. require 에 명시적으...
    • 임형호
      2008.09.03 20:15
      데이타를 파란색으로 뿌려지게 한 조건이 있을거라고 생각이됩니다. 즉.. 그리드1, 그리드2 의 데이타...
    • 델만세
      2008.09.03 22:50
      색깔은 그리드1에 데이터들이 빠진게 있나 확인하려고 넣는건데요.. 그리드1에 OnDrawCell 함수에 ...
    • 임형호
      2008.09.04 01:36
      제가 이해가 안되는건지.. ㅡㅡ;; 1. 색깔은 그리드1에 데이터들이 빠진게 있나 확인하려고 넣는건데...
    • 델만세
      2008.09.04 08:04
      제가 말을 잘 못한거 같네여;;; 그리드1,2에서 뿌려질때 3뿌려지는데.. 예를 들어) 그리드1 에 ...
    • 임형호
      2008.09.04 18:28
      그리드 3에 값을 꼭 그리드1, 2에 넣을때 같이 생성해야되는게 아니라면.. 그리드 1,2 값을 일단 다 넣...
    • 델만세
      2008.09.05 22:00
      이거..프로시저를 하나 만들어서.. 뿌려진 값들을 비교를 해야 할거 같은데요.. 코딩면에서 좀 난간 하...
    • 임형호
      2008.09.06 02:19
      limhyungho@nate.com 요거 제 네이트온 아이디입니다. 5일근무라 내일은 쉬구요. 해결안되시면 다음주...
    • • • •
    • 어설픈
    • 2008.09.02 23:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.09.04 18:33
      R01_APDATE 필드의 데이터 타잎이 String 인거 같은데, DateTime 형으로 사용하려고 하는 것 같습니다. ...
    • 박교범
    • 2008.09.02 12:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.09.02 17:17
      좀 전에 하나 적었다가 지우고 다시 적네요. 구글에 많이 나와 있습니다. http://support.microsof...
    • 박교범
    • 2008.09.02 12:06
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2008.09.02 06:35
      품에 패널을 하나 두고 그 위에 내부 컨트롤들을 배치하고 OnResize에서 Panel1.ScaleBy 를 이용하...
    • 김명일
    • 2008.09.02 00:53
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.09.02 01:15
      전역 변수의 경우 기본값은 False 입니다. 정확히 말하자면 0으로 클리어 시키기 때문에 0 = False 이...
    • 석주현
      2008.09.02 01:22
      선언시 초기값 이 부분 같은 경우는 명확하게 초기화 해주는 습관이 좋을 거라 봅니다. 타 언어를 배...
    • 델만세
    • 2008.09.01 22:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 소울해커
      2008.09.02 01:05
      begin for idx := 0 to RealGrid.RowCount -1 do begin RealGrid.Cells[const_checkbox, i...
    • 인레인
    • 2008.09.01 20:30
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2008.09.02 18:04
      dxdbgrid는 어디제품인가요? ㅡㅡ;;
    • 델코이
    • 2008.08.30 05:30
    • 2 COMMENTS
    • /
    • 0 LIKES
    • steps
      2008.08.30 06:07
      ''' + FormatDateTime('yyyy-mm-dd', DateTimePicker2.Datetime) + ''''; SQLText := SQLText + 'or...
    • 임형호
      2008.09.01 18:17
      SaveToFile 메쏘드를 그냥 실행해보면 DataSet 즉 adoQuery가 close 상태에서는 안되는것 같은데요. 에러...
    • 민영창
    • 2008.08.29 23:46
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 민영창
      2008.08.30 03:28
      자체해결했습니다. SpeedVB라는 프로그램이 있네요,, VB를 위해서 나온건데 .5 버젼부터는 스크롤이 안되...
    • 델코이
    • 2008.08.29 21:19
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2008.08.29 22:13
      '요기'에 아래와 같은식으로 코딩해서 넣으세요. FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date)...
    • 델코이
      2008.08.29 22:35
      답변 감사합니다^^ 하지만...결과물이..나오지 않습니다.. adoquery에 sql문 넣는 곳도 다 해봤는데......
    • 최용일
      2008.08.29 23:27
      글쎄요... 결과물이 나오지 않는것까지는 제가 모르죠... 날자를 QuotedStr으로 묶어보세요. QuotedStr...
    • 임형호
      2008.08.30 01:26
      파라메타로 넣는게 없으니.. 일단 memo 값은곳에다가 Query.Sql.text 문장을 찍어보시고 그걸 직접 db...
    • 정경철
    • 2008.08.29 18:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정경철
      2008.08.29 19:38
      QuotedStr 함수를 써서 해결 했습니다. 이런 함수가 있었는지 처음 알았습니다. ^^ QuotedStr(Strin...
    • 이상인
    • 2008.08.28 19:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.08.28 19:58
      MainForm에서 사용된 컴포넌트가 무엇인지 알아야 할것 같네요. 가장 큰 가능성은... 백신이나 기타 ...
    • 박성준
      2008.08.28 19:39
      BLOB Data의 최대크기는 2GB라고 합니다.
    • 이정욱
      2008.08.28 20:01
      그런데, 큰 Blob필드가 많을 수록 퍼포먼스가 급격히 떨어지는 것으로 알고 있습니다. 그래서 퍼포먼...
    • 소울해커
      2008.08.28 22:43
      이 테이블은 그다지 사용 빈도수가 높지 않습니다. 1년에 한두건 생기면 많이 생기는 정도... 한...
    • 이정욱
      2008.08.30 01:31
      ParamByName('ATTACHFILE').BlobType := ftOraBlob; 을 size 넣는 부분 위에 넣으면 어떻게 되나요...? ...
    • 소울해커
      2008.08.30 03:59
      에러가 발생합니다. ...; 반은 농담입니다. ㅎㅎ; 해당 프로퍼티는 없습니다. Blob 란게 ...
    • 이정욱
      2008.08.30 07:14
      아... 포럼을 뒤져 봤더니... We have fixed several problems with BLOBs in recent ODAC builds. Yo...
    • 소울해커
      2008.08.30 18:27
      4.10.0.9 버전입니다. 이 버전에 문제가 있어서 안올라가는 걸까요? 단순히 버전의 문제면 새 버전...
    • 델코이
    • 2008.08.27 21:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 임형호
      2008.08.28 01:52
      데모 프로그램이 없나요? 처음에 공부할때는 그만한게 없어보입니다.
    • 이정욱
      2008.08.27 10:46
      양병규님께서 만드신 비주얼멘더 라는것이 있습니다. 그것의 소스를 참고 하시면 도움이 되실 것 같네요 ^^
    • 바람의아빠
      2008.08.27 23:30
      정욱님 답변 감사합니다.. 나중에 소스 분석 해봐야겠네요..^^
    • 남기섭
    • 2008.08.27 03:06
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      2008.08.27 10:49
      음.. 한글 정렬 문제 없었던것 같은데요... 어떻게 어떤식으로 구현하셨는지 조금 더 자세한 정보가 있어...
    • 남기섭
      2008.08.31 08:38
      테이블-프로바이더-클라이언트데이타셋-데이타소스 이렇게 연결되어있는데 필드값이 한글일때 클라이언...
    • 초보임당
      2008.09.02 02:33
      자답... 서버 문제 였네요.. db 서버에서 한글 메세지 리턴이 안되네요...사용자 함수 만들어서 사용했...