Ускорение работы с dbf (очень большими)
Код:
if(polisCheck->Checked){
dm->POLICY->Close();
dm->POLICY->CommandText = "SELECT polis_ser,polis_num FROM POLICY WHERE polis_ser=:ser AND polis_num=:num ORDER BY polis_ser DESC";
dm->POLICY->Parameters->ParamByName("ser")->Value = param[2].Trim();
dm->POLICY->Parameters->ParamByName("num")->Value = param[3].Trim();
dm->POLICY->Open();
if(dm->POLICY->RecordCount < 1){
logError->Lines->Add(param[1].Trim()+"|Полиса нет в базе!|"+param[4].Trim());
}
}
dm->POLICY->Close();
dm->POLICY->CommandText = "SELECT polis_ser,polis_num FROM POLICY WHERE polis_ser=:ser AND polis_num=:num ORDER BY polis_ser DESC";
dm->POLICY->Parameters->ParamByName("ser")->Value = param[2].Trim();
dm->POLICY->Parameters->ParamByName("num")->Value = param[3].Trim();
dm->POLICY->Open();
if(dm->POLICY->RecordCount < 1){
logError->Lines->Add(param[1].Trim()+"|Полиса нет в базе!|"+param[4].Trim());
}
}
использовать сервер БД (MSSQL, Firebird, MySQL)
Цитата: kot_
использовать сервер БД (MSSQL, Firebird, MySQL)
Не вариант. Базу полисов мне поставляют именно в dbf. Попробовал только что проиндексировать базу. Скорость резко увеличилась, но всё равно не идеал :(
Я бы с радостью другую бы базу использовал
Миллион - это 20 лет назад было "много записей"
Если ваш класс будет содержать пять целых чисел, два текстовых по 20 символов - то миллион таких записей будет
4 * 5 + 20 = 40 байт * 1 000 000 = 40 000 000 байт или 40 мегабайт.
а сейчас файрфокс с одной страничкой отьедает 60 и не жужжит.
зато специализированный поиск будет просто мгновенный. я такое делал.