Q&A

  • help me! 쿼리문이 에러가 납니다
델파이4.0, 오라클7.3입니다.

쿼리문을 델파이소스에 아래와 같이 썼는데요.



Close;

Unprepare;

Sql.Clear;

Sql.Add('SELECT A.daeslhilj, A.gyebho, ');

Sql.Add(' E.codirm, A.wgmjan, A.gjbjan, A.misjan, ');

Sql.Add(' A.cjgisuilj, A.pnihuuhsuaek, A.pogaek, A.mnjaek, A.sgaaek,');

Sql.Add(' A.sgaaek, B.sum_wgm, B.sum_gjb, B.sum_jun, B.sum_hu');

Sql.Add(' FROM T_GYEJBO A, ');

Sql.Add(' (SELECT C.gyebho, sum(wgmhsu) sum_wgm, sum(gjbhsu) sum_gjb, ');

Sql.Add(' sum(pnijunmishsu) sum_jun, sum(pnihumishsu) sum_hu ');

Sql.Add(' FROM T_HSUJBO C, T_GYEJBO D');

Sql.Add(' WHERE C.gyebho = (SELECT gyebho ');

Sql.Add(' FROM T_GYEJBO ');

Sql.Add(' WHERE gnrbho = ''' + edGnrbho.Text + ''' )');

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

Sql.Add(' ORDER BY C.gyebho ) B, C_GWA E');

Sql.Add(' WHERE A.gnrbho = ''' + edGnrbho.Text + ''' ');

Sql.Add(' AND A.gyebho = B.gyebho(+)');

Sql.Add(' AND A.gwa = E.gwacod(+)');

Prepare;

Open;





밑줄그은 부분이 좀 의심스럽지만 debugging하면서 Watch 창으로 보면 제가 원하는 쿼리문이 맞는데, 실행시에는 에러가 납니다. 오라클에서는 다르게 사용해야 하는지 저는

진~~짜 왕초보라서 잘 모르겠거든요.

아시는 분들의 조언을 부탁드립니다.

4  COMMENTS
  • Profile
    오승섭 1999.11.04 05:01
    안녕하세요 ...



    Group By 가 빠진 것 같기도 하고 .... 쩝 ....



    에러 메세지를 좀 보여주세요 ....



    안녕히 계세요 ...





    byungjoon wrote:

    > 델파이4.0, 오라클7.3입니다.

    > 쿼리문을 델파이소스에 아래와 같이 썼는데요.

    >

    > Close;

    > Unprepare;

    > Sql.Clear;

    > Sql.Add('SELECT A.daeslhilj, A.gyebho, ');

    > Sql.Add(' E.codirm, A.wgmjan, A.gjbjan, A.misjan, ');

    > Sql.Add(' A.cjgisuilj, A.pnihuuhsuaek, A.pogaek, A.mnjaek, A.sgaaek,');

    > Sql.Add(' A.sgaaek, B.sum_wgm, B.sum_gjb, B.sum_jun, B.sum_hu');

    > Sql.Add(' FROM T_GYEJBO A, ');

    > Sql.Add(' (SELECT C.gyebho, sum(wgmhsu) sum_wgm, sum(gjbhsu) sum_gjb, ');

    > Sql.Add(' sum(pnijunmishsu) sum_jun, sum(pnihumishsu) sum_hu ');

    > Sql.Add(' FROM T_HSUJBO C, T_GYEJBO D');

    > Sql.Add(' WHERE C.gyebho = (SELECT gyebho ');

    > Sql.Add(' FROM T_GYEJBO ');

    > Sql.Add(' WHERE gnrbho = ''' + edGnrbho.Text + ''' )');

    > ----------------------------------------------------------------------------------

    > Sql.Add(' ORDER BY C.gyebho ) B, C_GWA E');

    > Sql.Add(' WHERE A.gnrbho = ''' + edGnrbho.Text + ''' ');

    > Sql.Add(' AND A.gyebho = B.gyebho(+)');

    > Sql.Add(' AND A.gwa = E.gwacod(+)');

    > Prepare;

    > Open;

    >

    >

    > 밑줄그은 부분이 좀 의심스럽지만 debugging하면서 Watch 창으로 보면 제가 원하는 쿼리문이 맞는데, 실행시에는 에러가 납니다. 오라클에서는 다르게 사용해야 하는지 저는

    > 진~~짜 왕초보라서 잘 모르겠거든요.

    > 아시는 분들의 조언을 부탁드립니다.

  • Profile
    byungjoon 1999.11.04 05:34
    에러 메시지는 아래와 같아요.



    project1.exe raised exception class EDBEngineError with message

    'General SQL error ORA-00907: miising right parenthesis'

    process stoped



    조언 부탁드립니다.



    오승섭 wrote:

    > 안녕하세요 ...

    >

    > Group By 가 빠진 것 같기도 하고 .... 쩝 ....

    >

    > 에러 메세지를 좀 보여주세요 ....

    >

    > 안녕히 계세요 ...

    >

    >

    > byungjoon wrote:

    > > 델파이4.0, 오라클7.3입니다.

    > > 쿼리문을 델파이소스에 아래와 같이 썼는데요.

    > >

    > > Close;

    > > Unprepare;

    > > Sql.Clear;

    > > Sql.Add('SELECT A.daeslhilj, A.gyebho, ');

    > > Sql.Add(' E.codirm, A.wgmjan, A.gjbjan, A.misjan, ');

    > > Sql.Add(' A.cjgisuilj, A.pnihuuhsuaek, A.pogaek, A.mnjaek, A.sgaaek,');

    > > Sql.Add(' A.sgaaek, B.sum_wgm, B.sum_gjb, B.sum_jun, B.sum_hu');

    > > Sql.Add(' FROM T_GYEJBO A, ');

    > > Sql.Add(' (SELECT C.gyebho, sum(wgmhsu) sum_wgm, sum(gjbhsu) sum_gjb, ');

    > > Sql.Add(' sum(pnijunmishsu) sum_jun, sum(pnihumishsu) sum_hu ');

    > > Sql.Add(' FROM T_HSUJBO C, T_GYEJBO D');

    > > Sql.Add(' WHERE C.gyebho = (SELECT gyebho ');

    > > Sql.Add(' FROM T_GYEJBO ');

    > > Sql.Add(' WHERE gnrbho = ''' + edGnrbho.Text + ''' )');

    > > ----------------------------------------------------------------------------------

    > > Sql.Add(' ORDER BY C.gyebho ) B, C_GWA E');

    > > Sql.Add(' WHERE A.gnrbho = ''' + edGnrbho.Text + ''' ');

    > > Sql.Add(' AND A.gyebho = B.gyebho(+)');

    > > Sql.Add(' AND A.gwa = E.gwacod(+)');

    > > Prepare;

    > > Open;

    > >

    > >

    > > 밑줄그은 부분이 좀 의심스럽지만 debugging하면서 Watch 창으로 보면 제가 원하는 쿼리문이 맞는데, 실행시에는 에러가 납니다. 오라클에서는 다르게 사용해야 하는지 저는

    > > 진~~짜 왕초보라서 잘 모르겠거든요.

    > > 아시는 분들의 조언을 부탁드립니다.

  • Profile
    오승섭 1999.11.04 18:21
    안녕하세요 ...



    문장을 이렇게 바꿔보시죠 ....



    String변수를 하나 선언하고,



    str_Value : String;



    그 String변수에다 Query문장을 넣는거죠.



    Close;

    Unprepare;

    Sql.Clear;

    str_value :=

    'SELECT A.daeslhilj, A.gyebho, E.codirm, A.wgmjan, '+

    ' A.gjbjan,A.misjan, A.cjgisuilj, A.pnihuuhsuaek, '+

    ' A.pogaek, A.mnjaek, A.sgaaek, A.sgaaek, B.sum_wgm, '+

    ' B.sum_gjb, B.sum_jun, B.sum_hu '+

    ' FROM T_GYEJBO A, (SELECT C.gyebho, sum(nvl(wgmhsu,0)) sum_wgm, '+

    ' sum(nvl(gjbhsu,0)) sum_gjb, '+

    ' sum(nvl(pnijunmishsu,0)) sum_jun, '+

    ' sum(nvl(pnihumishsu,0)) sum_hu '+

    ' FROM T_HSUJBO C, T_GYEJBO D '+

    ' WHERE C.gyebho = (SELECT gyebho FROM T_GYEJBO '+

    ' WHERE gnrbho = :p_gnrbho) '+

    ' GROUP BY C.gyebho '+

    ' ORDER BY C.gyebho ) B, C_GWA E '+

    ' WHERE A.gnrbho = :p_gnrbho) '+

    ' AND A.gyebho = B.gyebho(+) '+

    ' AND A.gwa = E.gwacod(+) ';

    Sql.Add(str_value);

    Sql.ParamByName('p_gnrbho').AsString := edGnrbho.Text;

    Prepare;

    Open;



    이렇게 한번 해보세요 ....



    그럼 좋은 하루 되세요.





    byungjoon wrote:

    > 에러 메시지는 아래와 같아요.

    >

    > project1.exe raised exception class EDBEngineError with message

    > 'General SQL error ORA-00907: miising right parenthesis'

    > process stoped

    >

    > 조언 부탁드립니다.

    >

    > 오승섭 wrote:

    > > 안녕하세요 ...

    > >

    > > Group By 가 빠진 것 같기도 하고 .... 쩝 ....

    > >

    > > 에러 메세지를 좀 보여주세요 ....

    > >

    > > 안녕히 계세요 ...

    > >

    > >

    > > byungjoon wrote:

    > > > 델파이4.0, 오라클7.3입니다.

    > > > 쿼리문을 델파이소스에 아래와 같이 썼는데요.

    > > >

    > > > Close;

    > > > Unprepare;

    > > > Sql.Clear;

    > > > Sql.Add('SELECT A.daeslhilj, A.gyebho, ');

    > > > Sql.Add(' E.codirm, A.wgmjan, A.gjbjan, A.misjan, ');

    > > > Sql.Add(' A.cjgisuilj, A.pnihuuhsuaek, A.pogaek, A.mnjaek, A.sgaaek,');

    > > > Sql.Add(' A.sgaaek, B.sum_wgm, B.sum_gjb, B.sum_jun, B.sum_hu');

    > > > Sql.Add(' FROM T_GYEJBO A, ');

    > > > Sql.Add(' (SELECT C.gyebho, sum(wgmhsu) sum_wgm, sum(gjbhsu) sum_gjb, ');

    > > > Sql.Add(' sum(pnijunmishsu) sum_jun, sum(pnihumishsu) sum_hu ');

    > > > Sql.Add(' FROM T_HSUJBO C, T_GYEJBO D');

    > > > Sql.Add(' WHERE C.gyebho = (SELECT gyebho ');

    > > > Sql.Add(' FROM T_GYEJBO ');

    > > > Sql.Add(' WHERE gnrbho = ''' + edGnrbho.Text + ''' )');

    > > > ----------------------------------------------------------------------------------

    > > > Sql.Add(' ORDER BY C.gyebho ) B, C_GWA E');

    > > > Sql.Add(' WHERE A.gnrbho = ''' + edGnrbho.Text + ''' ');

    > > > Sql.Add(' AND A.gyebho = B.gyebho(+)');

    > > > Sql.Add(' AND A.gwa = E.gwacod(+)');

    > > > Prepare;

    > > > Open;

    > > >

    > > >

    > > > 밑줄그은 부분이 좀 의심스럽지만 debugging하면서 Watch 창으로 보면 제가 원하는 쿼리문이 맞는데, 실행시에는 에러가 납니다. 오라클에서는 다르게 사용해야 하는지 저는

    > > > 진~~짜 왕초보라서 잘 모르겠거든요.

    > > > 아시는 분들의 조언을 부탁드립니다.

  • Profile
    조복기 1999.11.04 19:39


    안녕하세요..



    memo를 하나 폼에 놓고



    sql.add문 대입후에 마지막줄에



    memo1.Line := sql -> 이러면 메모장에 sql문이 대입되겠죠?



    이내용을 카피해서 sql+라든가 익스플로러에서 테스트해보세요..



    sql문법이 맞다면 에러가 나지않겠죠?..



    제가 보기엔 괄호는 제대로 들어간것 같은데..에러가 난다면..





    서브쿼리에러일 경우 쿼리를 만들어가면서 테스트를 해보세요..



    sql.add 말고도 sql.text로 한번에 대입할수도 있구요..



    결과 올려주세요~



    • 황현동
    • 1999.11.04 13:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 오세웅
      1999.11.04 19:20
      황현동 wrote: > api라는것 설명 부탁합니다.. > > 이걸 알아야 할것 같은데.. 모르거든요.. > > 선...
    • termy
    • 1999.11.04 10:36
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 오승섭
      1999.11.04 18:47
      안녕하세요 .... 질문하신 내용이 약간 이해하기가 힘든데 .... Query된 결과 값을 받아오는 방법은 ...
    • termy
      1999.11.04 19:13
      질문에 답변해 주셔서 감사합니다. 그런데 제가 원하는 것은 컴포넌트를 이용하지 않고 (예를 들어 결과...
    • 오승섭
      1999.11.04 19:21
      안녕하세요 .... 받아 올 변수를 선언하시고, 각각의 Query된 결과를 옮겨주면 됩니다. 예) var 변수...
    • 권오경
      1999.11.05 21:56
      신 기종 wrote: > 메인 폼에서 버튼을 누르면 조그만 모달 윈도우를 띄우는데 > > 메인폼이 Maximize ...
    • 오세웅
      1999.11.04 19:04
      신 기종 wrote: > 메인 폼에서 버튼을 누르면 조그만 모달 윈도우를 띄우는데 > > 메인폼이 Maximize ...
    • 장명선
    • 1999.11.04 06:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.11.04 20:26
      델파이에 포함되어있는 POP3 컴포넌트를 사용하시면 됩니다. 델파이에 Example까지 있으니 금방 만드실 ...
    • 김용민
    • 1999.11.04 06:05
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김고진
      1999.11.04 18:38
      DataBase1.StartTransaction; try Master.ApplyUpdates; Client.ApplyUpdates; Etc.ApplyUpdates...
    • 황선희
      1999.11.04 19:42
      김고진 wrote: > DataBase1.StartTransaction; > try > Master.ApplyUpdates; > Client.ApplyUpdat...
    • 김용민
      1999.11.04 20:46
      안녕하세요. StartTransaction명령은 서버에서나 사용가능하다고 보고있습니다. 클라이언트에서 Database...
    • 이만준
      1999.11.04 04:35
      안녕하세요... a := b = c 에서 a 는 boolean 형이구요.... b 와 c 가 같으면 True 가 되고 ...
    • byungjoon
    • 1999.11.04 04:26
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 오승섭
      1999.11.04 05:01
      안녕하세요 ... Group By 가 빠진 것 같기도 하고 .... 쩝 .... 에러 메세지를 좀 보여주세요 .... ...
    • byungjoon
      1999.11.04 05:34
      에러 메시지는 아래와 같아요. project1.exe raised exception class EDBEngineError with message 'Ge...
    • 오승섭
      1999.11.04 18:21
      안녕하세요 ... 문장을 이렇게 바꿔보시죠 .... String변수를 하나 선언하고, str_Value : Strin...
    • 조복기
      1999.11.04 19:39
      안녕하세요.. memo를 하나 폼에 놓고 sql.add문 대입후에 마지막줄에 memo1.Line := sql -> ...
    • 화랑
    • 1999.11.04 02:39
    • 4 COMMENTS
    • /
    • 0 LIKES
    • netuse
      2000.01.21 08:46
      저는 비주얼베이직으로 서버 컴포넌트를 만들어서 사용했습니다. 우선 저의 경우를 예를 들면 비줄얼 베이...
    • 디밥
      1999.11.06 18:26
      화랑 wrote: > 안녕하세요.. 화랑입니다.. > > 저는 Active Server Component를 개발을 하고 있는데.. ...
    • 화랑
      1999.11.06 21:36
      MTS Component로 하게 되면 쉽게 IDE Debugging이 가능합니다. 이말이 잘 이해가 되지 않습니다.. 여러...
    • 디밥
      1999.11.07 00:14
      Help에 보심 나오는데.... DLL을 Debugging할 때 처럼 하면 됩니다. Parameters 메뉴에서 실행...
    • 땡글이
    • 1999.11.04 02:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이만준
      1999.11.04 04:30
      uses 절에 dbgrids 가 있나 확인해보세요... Undeclared identifier 에러는 대부분 uses 절에 유닛을 ...
    • 초짜
    • 1999.11.04 00:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.11.04 20:20
      음.. 이상하군요. 왜 다른키를 방향키로 인식을 할까요..??? 방향키를 누르면 다른 입력란으로 가게 ...
    • 류재성
    • 1999.11.03 23:59
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 장지원
      2000.03.16 01:48
      류재성 wrote: > Win2000에서 Delphi4C/S Install이 않되네요... > > Win2000을 쓰고는 싶은데... 설치...
    • 유재우
      1999.11.12 19:34
      류재성 wrote: > Win2000에서 Delphi4C/S Install이 않되네요... > > Win2000을 쓰고는 싶은데... 설치...
    • ARITH
      1999.11.17 07:33
      근데 저는 델파이5를 한글WIN2000에서 설치는 했는데.. DATABASE DESKTOP프로그램에서 좀 문제가 생기네요...
    • 김 성중
      1999.12.13 21:46
      ///저는 Del4를 잘쓰고 있습니다만 BDE에서 메모리충돌이 가끔 있더군요 저도아직 해결 못했습니다. ...
    • 김고진
    • 1999.11.03 23:49
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조복기
      1999.11.04 01:54
      안녕하세요..자유게시판지기입니다. 현재 paradox에 관련된 자료는 델파이헬프에 의존을 할수밖에 없...