Q&A

  • table에 insert할때 Key Violation Error -source봐주세
Key 값이 중복되지도 않구요. Key Violation Error 가 난 후에 다시 들어가보면

데이터들은 제대로 전부 다 insert 되어있거든요.

데이터를 다 넣고 마지막에 Error가 나는것 같은데. 왜 나는지 모르겠네요.



Query1.Close;

while not dbgrid1.DataSource.DataSet.EOF do //마지막까지 loop

begin

if dbgrid1.fields[0].Text <> '' then

query1.SQL.Clear;

Query1.SQL.text :='insert into maindb.db (id, country, salesman, quotationno) values ('''+dbgrid1.Fields[0].asstring+''','''+dbgrid1.Fields[1].asstring+''', '''+dbgrid1.Fields[2].asstring+''', '''+dbgrid1.Fields[2].asstring+''')';

Query1.execsql;

dbgrid1.DataSource.DataSet.next;

end;

Query1.open;

2  COMMENTS
  • Profile
    4master 2000.08.06 07:35
    왕초보 wrote:

    > Key 값이 중복되지도 않구요. Key Violation Error 가 난 후에 다시 들어가보면

    > 데이터들은 제대로 전부 다 insert 되어있거든요.

    > 데이터를 다 넣고 마지막에 Error가 나는것 같은데. 왜 나는지 모르겠네요.

    >

    > Query1.Close;

    > while not dbgrid1.DataSource.DataSet.EOF do //마지막까지 loop

    > begin

    > if dbgrid1.fields[0].Text <> '' then

    > query1.SQL.Clear;

    > Query1.SQL.text :='insert into maindb.db (id, country, salesman, quotationno) values ('''+dbgrid1.Fields[0].asstring+''','''+dbgrid1.Fields[1].asstring+''', '''+dbgrid1.Fields[2].asstring+''', '''+dbgrid1.Fields[2].asstring+''')';

    > Query1.execsql;

    > dbgrid1.DataSource.DataSet.next;

    > end;

    > Query1.open;



    마지막 줄 코딩이 이상하네요... 데이터를 부르는 SQL문이 없는거 같은데..

    SQL문에 Insert....가 남아 있는데 Open...? 그리고..

    SQL문에 Insert... 일때 Open을 하면 입력값이 저장이됩니다. 그리고 에러가 뜨지요. 왜? (ExecSQL)이 아니므로...

    마지막 Insert문에서 open을 하여 똑같은 데이터가 들어가 에러가 발생하는 것 같습니다. open을 하면 에러가 뜨지만 데이터는 저장이 되거든요.



    (Select * from maindb) <- 이거요.

    SQL문을 추가 시키고 한번다시하심이...

    도움이 되었는지 모르겠습니다. 도움이 되었으면 ^^

    수고하세요.

  • Profile
    강호규 2000.08.06 00:57
    이럴 수도 있습니다.

    Key Violation Error 가 났다는 것은 대상 테이블에 중복된 값을 입력하려 할 때

    발생하는 에러이므로

    대상 테이블은 정상적으로 동작한 것이고요

    소스 테이블에 중복된 값이 있는 것은 아닌지요?

    이럴 경우 대상 테이블의 유일키값이

    소스 테이블에서는 유일키로 되어 있지 않을 수 도 있기 때문입니다.



    단지, 추측입니다.



    ---- end of 답변 ------



    왕초보 wrote:

    > Key 값이 중복되지도 않구요. Key Violation Error 가 난 후에 다시 들어가보면

    > 데이터들은 제대로 전부 다 insert 되어있거든요.

    > 데이터를 다 넣고 마지막에 Error가 나는것 같은데. 왜 나는지 모르겠네요.

    >

    > Query1.Close;

    > while not dbgrid1.DataSource.DataSet.EOF do //마지막까지 loop

    > begin

    > if dbgrid1.fields[0].Text <> '' then

    > query1.SQL.Clear;

    > Query1.SQL.text :='insert into maindb.db (id, country, salesman, quotationno) values ('''+dbgrid1.Fields[0].asstring+''','''+dbgrid1.Fields[1].asstring+''', '''+dbgrid1.Fields[2].asstring+''', '''+dbgrid1.Fields[2].asstring+''')';

    > Query1.execsql;

    > dbgrid1.DataSource.DataSet.next;

    > end;

    > Query1.open;

    • Hoon Reader
      2000.08.07 09:41
      날자가 문자 타입이면 숫자로 Casting하는건 불가능하죠. '-'를 찾아서 없애고 다시 Long으로 캐스팅을 ...
    • 강호규
      2000.08.07 04:05
      박동원 wrote: > 파라독스 DB를 사용하고 있습니다. > 쿼리를 사용하여 두날짜의 차이를 구하고자 합니다...
    • 빈거울
    • 2000.08.07 00:56
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 모승열
      2000.08.08 20:46
      빈거울 wrote: > 안녕하세요. > WM_COPYDATA 를 사용해서 데이타를 주고 받을 때. > 데이타를 던진 쪽을...
    • Hoon Reader
      2000.08.07 09:56
      일단 Data는 제대로 받는지 궁금합니다. CopyMemory(@data, Message.CopyDataStruct^.lpData, SizeOf(T...
    • 빈거울
      2000.08.07 18:25
      FindWindow에서 잘 찾습니다. 그리고 데이타도 잘 넘어 오고요. 그리고. 받는 부분을 메인에 놓은 것이 ...
    • 한비광
    • 2000.08.07 00:18
    • 3 COMMENTS
    • /
    • 0 LIKES
    • Hoon Reader
      2000.08.07 10:16
      ord는 byte 크기 밖에 지원안합니다. 즉, 256이 최고수라는 거죠. byte 크기는 Byte, Char 그리고 순...
    • 4master
      2000.08.07 03:41
      한비광 wrote: > 안녕하세요 > > 델파이 시작 한지 하루 된 왕초보 델피언 입니다 > > 자꾸 기본 ...
    • 모승열
      2000.08.07 03:22
      한비광 wrote: > 안녕하세요 > > 델파이 시작 한지 하루 된 왕초보 델피언 입니다 > > 자꾸 기본 ...
    • 이병돈
    • 2000.08.06 22:18
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Hoon Reader
      2000.08.07 10:44
      델파이 4.0 버젼에서는 Table에 DBComboBox와 연결이 잘 안되었음. 엄청나게 테스트 해보았는데도 잘 안되...
    • 4master
      2000.08.06 22:37
      이병돈 wrote: > dbcombobox를 사용해서 table의 특정 field 값을 선택할수 있도록 할려고 하는데.. > co...
    • 대희
    • 2000.08.06 21:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • Hoon Reader
      2000.08.07 10:38
      garbage value (쓰레기값) 이라 부릅니다. 즉 초기화를 안하면 이전의 어떤 프로그램이 사용하던 그 값이 ...
    • 4master
      2000.08.06 22:32
      한비광 wrote: > 질문이 하나 더 있는데요 > > count := 0; > > 이런 식으로 초기화를 않해 주면 ...
    • 한비광
    • 2000.08.06 20:00
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 노을
      2000.08.06 23:21
      안녕하세요 노 을 입니다. 아래 답변을 보니 Block 을 나타낸다고 했죠? ^^.. 저는 추가적으로 좀더 ...
    • 4master
      2000.08.06 22:22
      한비광 wrote: > 중첩 for 문에서 보면 > 첫번째 for 에서는 begin 을 쓰는데 두번째 for 에서는 begin ...
    • parkisu
    • 2000.08.06 08:56
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.08.08 03:43
      안녕하세요.. 님의 말씀은 이런거죠... 어떤식이 있는데.. 상황에 따라서 그식이 변한다는거죠.. 예...
    • Hoon Reader
      2000.08.07 10:34
      하고자 하는 바를 충분히 이해합니다. 님이 이해하기 어렵게 좀 어렵게 설명하겠습니다. 그런 것이 ...
    • 강인규
      2000.08.07 00:54
      뭘만드시려는지는 잘 모르겠지만 함 적어봅니다. > AVERAGE(A,5)라는 주식분석용 이동평균함수를 만...
    • 노을
      2000.08.06 23:39
      안녕하세요 노 을 입니다. 음 식의 복사?.. 라는 의미를 모르겠내요... 일단 Average(A,5); ...
    • 타락천사
      2000.08.06 23:24
      안녕하세여. 타락임다...^^ 질문만 가지곤 어떻게 구현해야 할지 모르겠지만... 델파이에서 안된다구...
    • 김미좌
    • 2000.08.06 06:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 4master
      2000.08.06 07:20
      김미좌 wrote: > query를사용하여 선택된 값을 메모에 입력시키는데... > > query1.open > 1) > memo...
    • 김미좌
      2000.08.06 07:41
      4master wrote: > 김미좌 wrote: > > query를사용하여 선택된 값을 메모에 입력시키는데... > > > > q...
    • 4master
      2000.08.06 07:24
      지친초보 wrote: > 파라독스7.0 델파이4.0 win98 > > 단순하게 전에 있던 데이터베이스의 필드를 다른 ...
    • 왕초보
    • 2000.08.06 00:32
    • 2 COMMENTS
    • /
    • 1 LIKES
    • 4master
      2000.08.06 07:35
      왕초보 wrote: > Key 값이 중복되지도 않구요. Key Violation Error 가 난 후에 다시 들어가보면 > 데이...
    • 강호규
      2000.08.06 00:57
      이럴 수도 있습니다. Key Violation Error 가 났다는 것은 대상 테이블에 중복된 값을 입력하려 할 때 발...
    • 이명근
    • 2000.08.06 00:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강호규
      2000.08.06 00:52
      저도 이곳에서 자료를 찾아 어제 완성한 부분인데요.. 시간이 없어 코드를 그냥 올립니다. 양해바랍니다. ...
    • 소금이
      2000.08.07 19:04
      강호규 wrote: > [질문] > 일반적으로 오라클DB에 접속하여 쿼리를 하게 되면 > 커서가 "모래시계+SQL"...
    • 강호규
      2000.08.09 05:24
      소금이 wrote: > 강호규 wrote: > > [질문] > > 일반적으로 오라클DB에 접속하여 쿼리를 하게 되면 > >...
    • 김일영
      2000.08.09 12:04
      상당히 어렵지 않나 싶네요. 제가 예전에 찾아본 기억으론 커서 바꾸는 부분이 TQuery의 멤버 함수 내에 ...
    • 권오정
    • 2000.08.05 23:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 황선희
      2000.08.06 00:27
      권오정 wrote: > data가 > aaa a 100 > bbb a 100 > ccc b 200 > ddd c 100 > 이 ...
    • 호야
    • 2000.08.05 21:08
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.08.05 21:23
      호야 wrote: > 스트링그리드에서 여러행을 선택해서 > 붙여넣기를 할려고 합니다. > 이사이트를 밤세서 ...
    • 호야
      2000.08.08 01:28
      타락천사 wrote: > 호야 wrote: > > 스트링그리드에서 여러행을 선택해서 > > 붙여넣기를 할려고 합니다...
    • 타락천사
      2000.08.09 08:54
      즐거운 하루 되세여.. 지가 넘 바뻐서뤼...^^ 타락천사......
    • 호야
      2000.08.07 03:25
      뻥이 아닙니다. 제목이 뭐죠? 한라인을 추가/삭제하는걸 말하는 겁니까? 타락천사 wrote: > 호야 wro...
    • 김만성
    • 2000.08.05 21:01
    • 3 COMMENTS
    • /
    • 0 LIKES
    • parkisu
      2000.08.06 07:40
      김만성 wrote: > > 안녕하세요...~ 델피 가족 여러분.. > 오늘 또 질문 하나 올립니다.. > 이런건...
    • 타락천사
      2000.08.05 21:25
      김만성 wrote: > > 안녕하세요...~ 델피 가족 여러분.. > 오늘 또 질문 하나 올립니다.. > 이런건...
    • 김만성
      2000.08.06 04:24
      좀더 자세히 설명을 해주시겠어요.. " 쿼리를 하나 더 만드세요.. " 이 한마디만으로는 감이 오질...
    • azure
    • 2000.08.05 20:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 타락천사
      2000.08.05 21:27
      안녕하세여.. 타락임다...^^ ADO를 쓰셨나여? 직접 Excel로 보는것 보단, ODBC가 빠르고, 그거보단 ...