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
[13985] [만해] DB 핸들링에 대해서
만해 [greenuri] 1322 읽음    2001-12-27 22:13
안녕하세요 만해 입니다.

제가 만든 프로그램에서

자료가 커지면 테이블이 닫혀 버리는 그런 에러가 나서요

혹 제 소스가 잘 못됐나 해서

몇번 검토도 해보고 그랬는데 도저히 모르겠네요

고수님들의 도움 바랍니다.


void __fastcall TForm1::StoreDBExecute(TObject *Sender)
{
   int i;
  AnsiString Sql;
  for ( i = 0 ; i < LinkString->Count ; i++ )
    {
      try
        {
          DM001->TblUrl->Close();
          if ( !DM001->TblUrl->Prepared ) DM001->TblUrl->Prepare();
          DM001->TblUrl->SQL->Clear();
          Sql = "select * from Url where Url.Url = :Link";
          DM001->TblUrl->SQL->Add(Sql);
          DM001->TblUrl->ParamByName("Link")->AsString = LinkString->Strings[i];
          DM001->TblUrl->Open();
        }
       catch ( ... )
        {
          DM001->TblUrl->Close();
        }
      if ( DM001->TblUrl->RecordCount == 0 )
        {
        Application->ProcessMessages();
          try
          {
            int ID = EdtID->Text.ToInt();
            EdtID->Text = IntToStr(ID+1);

            if ( LinkString->Strings[i].Length() > 255 )
              {
                try
                {
                DM001->TblUrl->Close();
                DM001->TblUrl->SQL->Clear();
                DM001->TblUrl->SQL->Add("Insert into Url(ID,Depth,Url,IsExp) values(:ID,:Depth,:Url,:IsExp)");
                DM001->TblUrl->ParamByName("ID")->AsInteger = ID;
                DM001->TblUrl->ParamByName("Depth")->AsInteger = EdtDepth->Text.ToInt();
                DM001->TblUrl->ParamByName("Url")->AsString = "";
                DM001->TblUrl->ParamByName("IsExp")->AsBoolean = true;
                DM001->TblUrl->ExecSQL();
                }
                catch ( ... )
                {
                  ShowMessage("Exp insert Error");
                  DM001->TblUrl->Close();
                }
                try
                  {
                    if ( !DM001->TblEUrl->Active )
                      DM001->TblEUrl->Open();
                    DM001->TblEUrl->Append();
                    DM001->TblEUrlID->Value = ID;
                    DM001->TblEUrlExpUrl->Value = LinkString->Strings[i];
                    DM001->TblEUrl->Post();
                  }
                catch ( ... )
                  {
                    DM001->TblEUrl->Close();
                    ShowMessage("EUrl Data insert Error");
                  }
              }
              else
              {
                try
                {
                DM001->TblUrl->Close();
                DM001->TblUrl->SQL->Clear();
                DM001->TblUrl->SQL->Add("Insert into Url(ID,Depth,Url,IsExp) values(:ID,:Depth,:Url,:IsExp)");
                DM001->TblUrl->ParamByName("ID")->AsInteger = ID;
                DM001->TblUrl->ParamByName("Depth")->AsInteger = EdtDepth->Text.ToInt();
                DM001->TblUrl->ParamByName("Url")->AsString = LinkString->Strings[i];
                DM001->TblUrl->ParamByName("IsExp")->AsBoolean = false;
                DM001->TblUrl->ExecSQL();
                }
                catch (...)
                {
                ShowMessage("Url Insert Error");
                DM001->TblUrl->Close();
                }
              }
          }
          catch ( ... )
          {
            DM001->TblUrl->Close();
            ShowMessage("Data Transaction Method Error");
          }
        }
    }
}



고수님들 제발 도와주세요~

+ -

관련 글 리스트
13985 [만해] DB 핸들링에 대해서 만해 1322 2001/12/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.