请教一个ADODataset的问题,谢谢
ADS_Person是个ADODataset,
点新增时执行
ADS_Person->Append();
点保存按钮执行
ADS_Person->UpdateBatch();
我在一个dbedit的excit响应函数中,查找当前记录集中有没有相同的值,如果有相同的,则不让修改,如下,但是这样做有个问题,会改变当前记录集的游标,请问有没有什么好的方法可以做到验证值重复的,谢谢
AnsiString string;
for (ADS_Person->First(); !ADS_Person->Eof; ADS_Person->Next())
{
string = ADS_Personmember_num->Value;
if(string == "32")
{
//值相同了
}
}
ADS_Person->Close();
[解决办法]
ADS_Person->Abort;
ADS_Person->Cancel;
ADS_Person->CancelUpdates
调用这几个函数试试
[解决办法]
好的方法 : 其實只要從 MDB 數據結構裡指定需驗證欄位(字段)將其索引(index)屬性設為不可重複既可!
[解决办法]
楼主啊,你可以再用一个ADODataset控件专门做这种检测的。
[解决办法]
剛才對照了一下 ADO ErrorCode 發現是對應 SQLState...以 HelpContext 核對不適當...更正後如下 :
void __fastcall TDataModule1::ADOTable1PostError(TDataSet *DataSet,
EDatabaseError *E, TDataAction &Action)
{
if (ADOConnection1->Errors->Item[0]->SQLState == L"3022") {
throw Exception(L"值相同了!");
}
}