Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

NET_NO_RECORD_FOUND (25) IP-Телефония и СКУД

Dahua NetSDK Ошибка 25: NET_NO_RECORD_FOUND — Записи не найдены

Обновлено: 24.08.2026 · Официальная документация ↗

Сбои при поиске или воспроизведении архивного видео:

  • Функции CLIENT_QueryRecordFile или CLIENT_FindFile возвращают 0 найденных файлов с ошибкой 25.
  • Воспроизведение по времени (PlayBackByTime) не стартует, хотя в локальном интерфейсе NVR архив отображается.
  • Синхронный поиск по нескольким каналам возвращает пустой список.

Код NET_NO_RECORD_FOUND (25) сообщает, что за указанный временной интервал на выбранном канале NVR/IPC отсутствуют видеозаписи, соответствующие заданному типу потока или фильтру событий.

1. Проверка временных зон и формата времени (Timezone / UTC / DST)

Самая распространенная ошибка — расхождение локального времени ПК и времени регистратора. NetSDK ожидает время в формате структуры NET_TIME без учета локального смещения ПК, если не включен UTC-режим:

NET_TIME stStart = {0};
stStart.dwYear = 2025;
stStart.dwMonth = 5;
stStart.dwDay = 20;
stStart.dwHour = 0;
stStart.dwMinute = 0;
stStart.dwSecond = 0;

NET_TIME stEnd = stStart;
stEnd.dwHour = 23;
stEnd.dwMinute = 59;
stEnd.dwSecond = 59;

int nMaxCount = 500;
int nFindCount = 0;
NET_RECORDFILE_INFO fileList[500];

BOOL bRet = CLIENT_QueryRecordFile(
    lLoginID, 
    nChannelId, 
    RECORD_FILE_TYPE_ALL, // Тип: Все записи (по расписанию + тревожные)
    &stStart, 
    &stEnd, 
    NULL, 
    fileList, 
    sizeof(fileList), 
    &nFindCount, 
    5000, 
    FALSE
);

if (!bRet || nFindCount == 0) {
    DWORD dwErr = CLIENT_GetLastError(); // Код 25
}

2. Фильтрация по типам записи (Record Types)

  • Если постоянная запись отключена, а ведется запись только по детекции движения (MD) или аналитике (IVS), поиск с фильтром RECORD_FILE_TYPE_REGULAR (обычная запись) вернет ошибку 25. Используйте RECORD_FILE_TYPE_ALL (значение 0) или RECORD_FILE_TYPE_MOTION.
  • Проверьте, какой поток архивировался: Основной (Main) или Дополнительный (Sub).

3. Проверка индексации жестких дисков NVR

Если на NVR производилась замена HDD или сбой питания, файловая система DHFS может требовать переиндексации. Проверьте статус дисков через CLIENT_QueryStorageState.

💡 Практика специалистов: Перед поиском всегда синхронизируйте время: вызовите CLIENT_QueryDeviceTime, получите точное время NVR и скорректируйте параметры поискового запроса относительно часов регистратора.

Частые вопросы (FAQ)

Почему через SmartPSS видео есть, а SDK возвращает 25?

SmartPSS использует интеллектуальный запрос по таймлайну (QueryRecordTime), запрашивающий минутные срезы занятости, а не прямой список файлов.

Как нумеруются каналы при поиске архива?

В большинстве функций Dahua каналы нумеруются с 0 (Channel 0 = 1-й физический вход NVR).

Влияет ли переход на летнее время (DST) на поиск записей?

Да, при активном DST временной сдвиг в 1 час может приводить к запросу интервала, в котором физически еще нет записей.

Какой API использовать вместо устаревшего CLIENT_QueryRecordFile?

Рекомендуется использовать новый асинхронный интерфейс поиска: CLIENT_FindFileEx + CLIENT_FindNextFileEx.

Полезные материалы
Рекомендуем