|
안녕하세요 만해 입니다.
제가 만든 프로그램에서
자료가 커지면 테이블이 닫혀 버리는 그런 에러가 나서요
혹 제 소스가 잘 못됐나 해서
몇번 검토도 해보고 그랬는데 도저히 모르겠네요
고수님들의 도움 바랍니다.
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");
}
}
}
}
고수님들 제발 도와주세요~
|