Q&A

  • 오라클 업데이트시 필드 개수 제한?
안녕하세요.

데이터 베이스는 오라클을 쓰고 있구요.
델파이는 BDE 로 접속 해서 쓰고 있습니다.
다름이 아니라, Updatesql 을 써서 cashed 업데이트를 하는데요. 필드가 22 개 까지 만이 업데이트를  합니다. 원래 이런 제한이 있는지? 아니면, 제가 무슨 셋팅을 잘못 했는지요?

그 후에 다음과 같이 변경 해 버렸습니다.
before post 에서 업데이트 문과, insert 문을 날려서 했습니다.
그런데 정말 희한 한 일이군요... 여러분들 중에서도, 이런 경우가 있었는지?
궁금합니다.
3  COMMENTS
  • Profile
    착한천사 2004.10.25 02:04
    착한천사 김경록입니다..
    오라클 버젼을 먼저 올려주셨으면 좋았다고 생각됩니다..

    답은 아니겠지만..
    생각나는데로 적어보겠습니다..


    일단, Oracle 7까지는
    Oracle에서 table당 아마도 255개의 필드를 만들 수 있고,
    그 이상 버젼에서는 엄청나게 많은 숫자를 만들 수 있다고 알 수 있습니다.
    하지만, UpdateSQL에서는 어떨지 모르겠습니다..
    정확한 개수는 모르겠고,
    제가 사용한바로는
    30개 정도는 되었었던걸로 기억이 납니다..
    아마도 다른 내용이 있지 않을까 싶습니다..
    Update pack을 설치하지 않았거나,
    BDE를 높은버젼으로 설치하지 않았거나..
    Oracle Client의 버젼이 올바른 버젼이 아니거나.. 등등..
    너무 많은 변수가 도사리고 잇어서..
    이런 애매한 질문도 애매하게 나올 수 밖에 없겠습니다..

    UpdateSQL은 CachedUpdate를 지원하는 방식인데..
    Update시 Cache되어진 내역와 Server의 DataSet과 비교하여
    Update를 수행하는 걸로 알고 있습니다..
    Before post에서 작업을 해주신다는건 무슨뜻인지 모르겠습니다..
    CachedUpdate를 사용하면, Before Post같은 곳에는
    DATA와 관련없는 Action을 대부분 취하는걸로 알고 있습니다..
    (즉, UpdateSQL에서 알아서 Insert/Update/Delete를 수행한다는 것)
    물론, DATA를 직접 수정할 수도 있지만..
    Cache되어진 내역과 Post시점에서의 DATA와 맞지 않는
    경우가 발생할 수도 있지 않겠습니까?




  • Profile
    이규하 2004.10.26 00:12
    안녕하세요 김경록님 ...
    오라클 버전은 9i 9.2.1 이구요. 델파이는 7 ent 입니다.
    Ora client 도 9.2.1 이구요.

    bde 는 5.2 입니다. 필드의 총 개수는 32 개 이구요.
    Sql 이 날라 다니는 것은 SQL Monitor 로 하였습니다.

    음, 재미 있는 것은, 필드가 22 개 이내의 것은
    TupdateSql 로 잘 되거든요. 그런데, 특정 긴 테이블은 그렇게 문장이
    덜 날라 가더라구요. 그래서,

    쓴 편법이 TQuery 에서 before post 에서
    state check 를 dsinsert, dsedit 나누어서, sql 문장을 직접 text 로 날려 보았던 거지요. 그랬더니, 작동 잘 되더라구요. 어차리 TUpdateSql 이 State check 해서 날리는거 같더라구요. 물론 dsdelete 일때는 좀 예외 지만 ...

    궁금 한것은, bde 에서 이러한 버그가 있는건지, 아니면, 제가 무슨 잘 못 셋팅을 했는지 궁금 해서 그럽니다. 이거 때문에 몇일 날려 먹어서요 .. 흑 ..


  • Profile
    착한천사 2004.10.27 06:03
    흠.. 알 수 없는 일이군여..
    일단, 저도 Oracle 9i를 사용하는 관계로 테스트를 해 보았습니다..
    테스트 환경...
    DBMS: oracle 9i
    Oracle Client: oracle 7
    BDE: 5.01
    Delhpi Version: 3 pro(pathch 1,2,3) and 6 ent(patch 1)
    table field개수: 32개

    이런 환경에서 임시로 테스트를 해 보았습니다..
    BDE는 여러개가 깔려 있어서..
    레지스트리를 손보면서 테스트를 했구여..

    일단, TUpdateSQL을 사용했을 경우,
    델파이3,6 모두 잘 Insert/Update/Delete가 수행되었습니다..
    혹시나,
    TUpdateSQL문에서 각각의 DML문장이
    모든 필드에 대하여 Insert/Update/Delete되지 않게 되어 있는게
    아닌지 확인해 보시는게 좋을 듯 합니다..
    예를 들어,
    총 Table의 Field수가 32개인데,
    TUpdateSQL의 ModifiedSQL,DeleteSQL,InsertSQL 속성에
    SQL문장이 field개수가 부족한 문장으로 이루어져 있는지
    확인해 보시는게 좋을 듯 합니다..

    제가 TUpdateSQL을 사용했을 경우에는
    SQL문장을 포함하면, 코딩 딱 6줄만 했습니다..

    Query.close;
    query.open;
    query.post;
    query.ApplyUpdates;
    Query.CommitUpdates;
    마지막으로,  SQL문장(select * from 테이블)

    제 경우에는 세팅없이 아주 잘 수행이되었습니다..
    이것은 BDE문제는 아닌것 같기도 합니다만..
    예전에 제가 자료실에 예제로 올려 놓았던..
    프로그램이 있었는데.. 이것이 델7로 짰었는데..
    그때 델7을 사용했을때에도..
    그러한 문제는 발생치 않았었던것 같았습니다..
    혹여나, 델7 설치시, 오라클 버젼에 맞지 않게 설치된것이 아닌지..
    확인해 보시것도 좋을 듯 합니다..

    아는데로 주절주절 거렸습니다..

    ps. 델7을 현재 가지고 있지 않은 관계로..
    (CD를 어디 놔뒀었는지 찾지 못한다눈..  커헉!!!  T.T)
    테스트를 못해봤습니다..


    • 신석기
    • 2004.10.25 19:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 서기원
      2004.12.01 22:38
      http://www.madchick.com/Default.asp?Page=2&SubPage=2# 에 가셔서 "ActiveX 데모 보기" 해보시면 감이 ...
    • 석주현
      2004.10.25 18:08
      stdCTRL.pas 의 소스를 보면 아실 수 있을 것 같네요. ListBox 같은 경우를 보면 TStrings 와 TString...
    • 최용일
      2004.10.25 18:05
      안녕하세요. 최용일입니다. 에러에 나온것처럼.... TStrings는 추상클래스입니다. 하는일이 거의 없...
    • Andrew Choi
    • 2004.10.25 00:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.10.25 17:59
      안녕하세요. 최용일입니다. 회원인증을 받으셔야 합니다. 가입하실때 적으신 이메일로 인증메일이 가...
    • 유정헌
    • 2004.10.23 23:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 진광진
      2004.10.30 00:52
      질문내용을 봐서 TCP를 사용해서 Network쪽에 패킷이 유실되는것 같지는 않습니다. TCP는 그 데이터의 전송...
    • 델사랑
    • 2004.10.23 22:07
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 파멸의슬픔
      2004.10.23 22:26
      스트링그리드 옵션에서 goRangeSelect := False 해보세요...
    • 파멸의슬픔
      2004.10.23 22:29
      업데이트로 검색하시면 제가 올린 샘플 자료 받으실 수 있습니다...
    • 가딘
      2004.10.23 20:38
      저도 그런 경험을 예전에 한것 같은데 아마 도스프로그램 실행 할때 명령프로프트의 visible 을 설정해서 ...
    • 이규하
    • 2004.10.23 20:26
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 착한천사
      2004.10.25 02:04
      착한천사 김경록입니다.. 오라클 버젼을 먼저 올려주셨으면 좋았다고 생각됩니다.. 답은 아니겠지만.. ...
    • 이규하
      2004.10.26 00:12
      안녕하세요 김경록님 ... 오라클 버전은 9i 9.2.1 이구요. 델파이는 7 ent 입니다. Ora client 도 9.2.1...
    • 착한천사
      2004.10.27 06:03
      흠.. 알 수 없는 일이군여.. 일단, 저도 Oracle 9i를 사용하는 관계로 테스트를 해 보았습니다.. 테스트 ...
    • 가딘
    • 2004.10.23 19:41
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 브라운
    • 2004.10.23 07:50
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 정찬희
      2004.10.24 08:07
      두번째 방법은 모르겠구요... 첫번째 방법은 제가 팁게시판에 올려놓았습니다...
    • 최용일
      2004.10.23 03:24
      안녕하세요. 최용일입니다. class reference를 써서 폼의 타입을 저장하세요. var   &nbs...
    • 쁜지아빠
      2004.10.23 18:03
      아 저런 방법이 있었네요~~!!! 정말 감사합니다.!!! 최용일님 만세~~~~~!!! ^^*
    • 애국자
    • 2004.10.22 23:55
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이규하
      2004.10.26 00:19
      첫번째 방법 ... 1 번 DBGrid 에 연결 되어 있는 TQuery 에서요. AfterScroll 에다가 2 번 DBGrid 에 ...
    • 김지선
    • 2004.10.22 23:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.10.25 18:35
      TDataBase를 사용하면 됩니다.... OnLogin 이벤트에...    LoginParams.Values['USER ...
    • 공왕주
    • 2004.10.22 22:35
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이정은
    • 2004.10.22 19:57
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 권태훈
      2004.10.22 22:48
      있습니다. 통신서버의 설정이 어떤 방식인지 알아야 합니다. 일반적으로 리눅스에 NAT(ipchain)설정...
    • 김춘경
      2004.10.22 21:53
      가능합니다. Indy UDP 컴포넌트를 써서 브로드캐스팅으로 a server의 IP 주소를 알아낸 다음에 그 주소...
    • 최용일
      2004.10.22 22:31
      안녕하세요. 최용일입니다. 브로드캐스팅으론 불가능합니다. 이론상으론 님 말씀처럼 가능합니만... ...
    • 김춘경
      2004.10.23 01:16
      ^^ 질문자의 질문이 간단해서 간단하게 답한겁니다. 제 답변이 너무 짧아서 문제가 되는군요...^^ 이...
    • 최용일
      2004.10.23 03:05
      안녕하세요. 최용일입니다. 제 답변에 기분이 상하셨다면 죄송합니다... ^^ 질문을 해석하는 관점의 ...
    • 박원용
      2004.10.22 21:51
      하얀까마귀님... 과 소나기님 그리고 닐리리님 ... 답변주셔서 감사하구요... 하얀까마귀님이 말씀하...
    • 하얀까마귀
      2004.10.22 19:51
      안녕하세요 하얀까마귀 입니다 어제 답변한게 생각나네요. ㅎㅎ 전어제 색상표시하는 셀이 다르다고 봤는...
    • nilriri™
      2004.10.22 19:35
      가운데 정렬    로 검색해 보세요 스트링그리드 관련 가운데 정렬 답변들을 참고하...
    • 석주현
      2004.10.22 19:51
      그냥 소스로 대신합니다. 회사라 ^^ 그럼  아시리라고 생각을 ^^ =========================...