Q&A

  • insert가 두번되염... ㅡㅡ;;
아래와 같은문장을 써서 insert시키는데....
insert가 두번되어 값이 겹쳐 들어가염....
모가 잘못된건지...
제발염... ㅡ.ㅜ

with query1 do
  begin
   sql.clear;
   SQL.Add( 'SELECT * FROM jumin2'                                 );
   SQL.Add( ' WHERE ( bupin = ''' + sList.Strings[1]      + ''' )' );
   open;

  if ( RecordCount = 0 ) then
   begin

         SQL.Clear;
           SQL.Add( 'INSERT INTO JUMIN2'                                          );
           SQL.Add( ' ( BUPINNO, BTAMT, GAMT, BTMMT, GMMT, ANBUN, JGASE, GASE,    ' );
           SQL.Add( '   JUMINSE, GASANSE, TTOT, SDAY, EDAY, UPDAY, PDAY, BANK, saupno  )' );
           SQL.Add( ' VALUES ( ''' + sList.Strings[1]                  + ''',' ); //사업장관리번호
           SQL.Add(          ' ''' + sList.Strings[21]                 + ''',' ); //법인 총종업원수
           SQL.Add(          ' ''' + sList.Strings[23]                 + ''',' ); //관내 종업원수
           SQL.Add(          ' ''' + sList.Strings[22]                 + ''',' ); //법인총면적
           SQL.Add(          ' ''' + sList.Strings[24]                 + ''',' ); //관내과세면적
           SQL.Add(          ' ''' + sList.Strings[27]                 + ''',' ); //안분비율
           SQL.Add(          ' ''    1111                                 '',' ); //전체과세표준
           SQL.Add(          ' ''    1111                                 '',' ); //과세표준
           SQL.Add(          ' ''' + sList.Strings[31]                 + ''',' ); //주민세
           SQL.Add(          ' ''' + sList.Strings[32]                 + ''',' ); //가산세
           SQL.Add(          ' ''' + sList.Strings[38]                 + ''',' ); //합계
           SQL.Add(          ' ''' + sList.Strings[33]                 + ''',' ); //귀속사업시작일
           SQL.Add(          ' ''' + sList.Strings[34]                 + ''',' ); //귀속사업종료일
           SQL.Add(          ' ''' + sList.Strings[35]                 + ''',' ); //법인세신고일
           SQL.Add(          ' ''' + sList.Strings[36]                 + ''',' ); //지급일
           SQL.Add(          ' ''' +  copy(sList.Strings[37],4,20)     + ''',' ); //은행
           SQL.Add(          ' ''' + sList.Strings[5]                 + ''')' ); //사업자번호행
           ExecSQL;
end
else
   MessageDlg( #13+'이미 입력되어 있는 사업장입니다!',mtWarning,[mbok],0 );
end;

Query1.CLOSE;
Query1.OPEN;

Query1.Locate('bupinNo', sList.Strings[1], [loPartialKey]);
end;
1  COMMENTS
  • Profile
    하얀까마귀 2002.07.03 21:40
    안녕하세요 하얀까마귀 입니다.

    잘못된 부분... 레코드가 0일 경우에...sql 안에는 insert 문이 들어가 있습니다.

    execSQL을 실행하고 나서..

    밑에 부분에서. 다시 Close; open 을 시켜주네요..

    open 때문에 한번 더 들어가는 겁니다.

    되도록이면...

    먼저 레코드카운트를 확인하고 나서.. 쿼리를 닫으세요..

    if recordcount.... then
    begin
      Close;
      SQl.Clear;
      ... insert문
    end else begin
      .. 중복처리
    end;

    이제 다시 쿼리를 여시는것 같은데.. 이전에 insert 문이 들어가 있으니까..
    다지워주고 select 문을 다시 써줍니다..


    ( 이것도 되도록 insert가 되는 query 하고 select 가 되는 쿼리는 따로 두시는게 프로그램하시는데 편하실껍니다. 같이 해도 상관없구요 )


    2.  쿼리 사용하실때..

    SQL.Add(' ''' + sList.Strings[21]    + ''',' ); //법인 총종업원수
    // 이렇게 쓰지 마세요...

    SQL.Add( ':JUMINSE');
    paramByNAme('JUMINSE').AsString :=  sList.Strings[21];

    이러한 방식으로 사용하세요..

    훨신 안정적입니다.. 코딩은 더 길어지지만요.. 지금 사용하시는
    코딩보다는 훨신 안정적이고 에러에 강하니 이방법을 사용하세요..

    그럼...






    • 홍성락
      2002.07.04 00:31
      hsr//////////////////////////////////////////////////////////// 이미지 가 대칭된건지 회전이 된건지...
    • 양용성
      2002.07.03 23:09
      현업의 대부분 개발에서는 전 뭐 경력이 5년 밖에 안됐지만 다른 분들은 어쩔지 모르지만요. 1. TDataba...
    • J
      2002.07.03 23:05
      위의 두가지 방법을 저도 써보았지만.. 지금은 메인폼의 OnCreate 이벤트에 로긴폼을 뛰우는 방법을 씁...
    • 김대훈
      2002.07.04 00:07
      먼저 답변 감사합니다 님의 글중에 몇가지 궁금한 것이있어 재질문을 올립니다. 제가 두가지 방법을 제시...
    • J
      2002.07.04 00:57
      Project->option을 보시면.. Auto-create form과 Availabel forms가 있죠.. 여기서 DM(datamodule)...
    • 주관석
    • 2002.07.03 21:26
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 염상철
      2002.07.04 19:12
      코딩중에..어디선가.....begin은 쓰시고..end를 안쓰시거나.. 아님..코딩중에..실수로 지워서..end가..nd...
    • 하얀까마귀
      2002.07.03 21:33
      안녕하세요 하얀까마귀 입니다. 아마 어딘가에 end or begin 을 잘못쓰신것 같은데 한번 확인해 보셍.. ...
    • 장태원
      2002.07.04 01:49
      그럴땐 이렇게 해보셈. 각 procedure니 function 이니 묶어서. begin 의 수와 end의 수가 같은지 각각 세...
    • 짱아
    • 2002.07.03 21:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.07.03 21:40
      안녕하세요 하얀까마귀 입니다. 잘못된 부분... 레코드가 0일 경우에...sql 안에는 insert 문이 들어가 ...
    • 델파이탐크루즈
      2002.07.03 21:15
      구지 Db와 연결된것 않써도 되여... ////////////////////////////////////////////////////////// // ...
    • cell
    • 2002.07.03 20:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.03 21:05
      저같으면 이렇게 할듯.    if(Fonts.Execute) then begin      ...
    • 하얀까마귀
      2002.07.03 21:03
      안녕하세요 하얀까마귀 입니다. 그냥 간단하게.. edSize1.Fornt := Fonts.Font; 하시면 됩니다. 그...
    • 항아
    • 2002.07.03 20:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 한철
    • 2002.07.03 20:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하얀까마귀
      2002.07.03 21:25
      안녕하세요 하얀까마귀 입니다. Free 맞습니다. 델파이 6.0 에는 기본적으로 indy가 들어가 있어요.. ...
    • 하얀까마귀
      2002.07.03 21:28
      안녕하세요 하얀까마귀 입니다.. 확대 축소는 StretchBlt 함수를 사용하시면 됩니다 원하시는 크기 ...
    • 돌아버려
      2002.07.03 23:33
      까마귀님 감사합니다 그런데 조금만 .. 조금만 사용법좀 알려주십시요.^^;;;
    • 최용일
      2002.07.04 02:10
      안녕하세요. 최용일입니다. ActiveForm에서 아래와 같이 하시면 IWebBrowser2인터페이스를 얻을 수 있습...
    • 조성택
    • 2002.07.03 08:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.03 20:54
      Database 에 관해 많이 아는게 아니라서..제가 생각하는 트랜잭션을 말씀해 드리져. Update, Insert, ...
    • 하얀까마귀
      2002.07.03 22:01
      안녕하세요 하얀까마귀 입니다. 조금만 보충설명 하면... 트랜젝션은 1개의 테이블에 대한 작업할때...
    • 김명찬
    • 2002.07.03 07:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.07.03 10:47
      안녕하세요. 최용일입니다. while문다음에 FindClose써서 파일핸들 닫고 해보세요... ^^ 항상 즐코하...
    • 이종택
    • 2002.07.03 05:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 블랙썬
      2002.07.03 06:13
    • 변선희
    • 2002.07.03 04:44
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 블랙썬
      2002.07.03 05:52
      TQuery 를 보시면 AfterScroll 과 BeforeScroll 이벤트가 있습니다 여기 둘중 한군데에 코딩하심 되겠...
    • 변선희
      2002.07.03 22:51
      첨엔 잘 나오는데... 등록이나 수정버튼을 누르고 나면 또 클릭해도 에디트박스에 안나오는데.. 이...
    • 블랙썬
      2002.07.04 02:05
      등록이나 수정후 다시 검색을 안하셔서 그런거같은데요.. 즉, 조회할때랑 등록,수정할때랑 같은 TQuery ...
    • 방성용
    • 2002.07.03 04:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 블랙썬
      2002.07.03 06:12
      일단 콤보박스에 있는 이름으로 검색을 한후 검색된 메일주소를 에디트박스에 입력하면 되겠네요... ...
    • 신연근
      2002.07.03 03:35
      안녕하세요 글쎄요 제가 알기론 외부콤포넌트라고 해서 어떤 설정을 해주지 않아도 되는걸로 알고있는데...
    • 유종근
    • 2002.07.03 03:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 장태원
      2002.07.03 20:49
      ...
    • 신연근
      2002.07.03 03:37
      혹시 콤포넌트 추가하고 데파이메뉴중에 tools-environment options-library에 해당 pas화일을 추가해주...
    • 김대훈
    • 2002.07.03 03:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델파이탐크루즈
      2002.07.03 03:31
      Ini File을 이용하세요.. 별로 어려운듯한 내용은 아닙니다. 대부분 Log-in의 처리는 Ini File을 이...
    • 김대훈
      2002.07.03 04:38
      먼저 답해주신것 감사합니다. 제가 지식이 짧아서 그런지 님의 답이 선듯 이해가 되질 않고 제가 요...
    • 하얀까마귀
      2002.07.03 03:45
      안녕하세요 하얀까마귀 입니다 트레이 아이콘을 만드는방법은 아실테고. 모르시면 강의실에 가시면 있을...