Различия между наборами результатов в ПК с базой данных SQL Server Compact и мобильным устройством - PullRequest
0 голосов
/ 19 ноября 2018

Интересная проблема: у меня есть база данных SQL Server CE 3.5 с некоторыми данными в ней. Я запускаю запрос к базе данных, используя мобильное устройство, и получаю набор результатов.

Это нормально работает в 99% случаев, но иногда я получаю записи в базе данных, где запрос возвращает пустой набор результатов.

Если я возьму копию того же файла базы данных с моего мобильного устройства и подключусь к нему с помощью Query Analyzer, а затем выполню такой же запрос точный (как скопированный / вставленный из отладчика), запрос вернется записей. Сам запрос выполняет JOIN и GROUP BY для двух таблиц с помощью поля ссылочного идентификационного ключа.

Теперь, если я сделаю клон, те же записи будут задействованы через серию:

INSERT INTO MyTable (EntireFieldListExceptForIDKey)
    SELECT 
        (EntireFieldListExceptForIDKey) 
    FROM 
        MyTable 
    WHERE 
        IDKey = Original

Запрос теперь может правильно собрать набор результатов для клонированных записей на мобильном устройстве.

Может кто-нибудь объяснить это, и, возможно, как обнаружить / преодолеть?

1 Ответ

0 голосов
/ 19 ноября 2018

Скорее всего, это связано с поврежденным индексом, поскольку копирование файла на рабочий стол и создание новой таблицы приведет к перестройке индекса.

Рекомендуется регулярно сжимать базу данных, чтобы предотвратить это -также убедитесь, что вы используете последние исполняемые файлы.

...