C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[41186] Re:DB에서 자동증가부분
civilian,안영제 [civilian] 941 읽음    2005-07-24 20:44
에러가 나는 원인은 "NUM"필드에 프라이머리 키가 설정되어 있기 때문입니다.
NUM 필드의 타입을 AutoIncrement 형식으로 설정해보세요.


공윤경 님이 쓰신 글 :
: bool __fastcall TFrmMain::CreateDB(TTable *LinkTable)
: {
:
:     if(LinkTable->Exists)
:     {
:         ShowMessage("Exists");
:     }
:     else {
:         LinkTable->FieldDefs->Clear();
:
:       // テーブル内にフィールドを記述する
:         TFieldDef *pNewDef = LinkTable->FieldDefs->AddFieldDef();
:         pNewDef->Name = "NUM";
:         pNewDef->DataType = ftInteger;
:         pNewDef->Required = true;
:
:         pNewDef = LinkTable->FieldDefs->AddFieldDef();
:         pNewDef->Name = "ROOT_ID";
:         pNewDef->DataType = ftString;
:         pNewDef->Size = 30;
:
:         pNewDef = LinkTable->FieldDefs->AddFieldDef();
:         pNewDef->Name = "LINK_ID";
:         pNewDef->DataType = ftString;
:         pNewDef->Size = 30;
:       // インデックスを記述する
:         LinkTable->IndexDefs->Clear();
:       /* この場合,最初のインデックスは Paradox の一次キーであるため,名前は付いていない */
:         LinkTable->IndexDefs->Add("","NUM", TIndexOptions() <<ixPrimary << ixUnique);
:
:       // 必要な内容を指定したので,テーブルを作成する
:
:         LinkTable->CreateTable();
:         LinkTable->Close();
:     }
:     return true;
: }
: bool __fastcall TFrmMain::InsertDB(AnsiString ROOTID, AnsiString LINKID)
: {
:     TTable *LinkTable = new TTable(FrmMain);
:     LinkTable->DatabaseName = "STANDARD1";
:     LinkTable->TableType = ttParadox;
:     LinkTable->TableName = "test0718.db";
:
:
:
:     if(LinkTable->Exists)
:     {
:         LinkTable->Active = false;
:         LinkTable->Open();
:         LinkTable->Append();
:
:         LinkTable->FieldByName("ROOT_ID")->AsString = ROOTID;
:         LinkTable->FieldByName("LINK_ID")->AsString = LINKID;
:
:         LinkTable->Post();
:     }
:
:     return true;
: }
:
: NUM이 숫자를 입력받을때마다 자동으로 증가하는 값으로 만들려고 합니다.
: 위와같이 코딩했는데 계속해서 에러가 나네요..

+ -

관련 글 리스트
41167 DB에서 자동증가부분 공윤경 1126 2005/07/22
41186     Re:DB에서 자동증가부분 civilian,안영제 941 2005/07/24
41169     Re:DB에서 자동증가부분 물소리 1011 2005/07/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.