Проблема Windows XP SQL Server CE с ИНДЕКСИРОВАНИЕМ в Windows Mobile Embedded 7

Это наша среда:

  • Windows XP с пакетом обновления 3 x86
  • Визуальная студия 2008

  • Портативное устройство: Datalogic X4 Skorpio WE7 (пока нет другого устройства WE7, чтобы убедиться, что поведение такое же)

  • System.Data.SqlServerCe.dll: 3.5.8080
  • Версия SQL Server CE SDF: 3.5

Вот что мы переживаем:

При попытке применить ИНДЕКС к любой таблице любого файла .SDF он выполняется нормально и применяет ограничение. Этот индекс можно сделать с помощью кода или с помощью средства просмотра базы данных, такого как sdfviewer. Проблема проявляется только тогда, когда .SDF был отправлен в X4 korpio. Что происходит, так это то, что любой столбец, к которому применено ограничение INDEX, не может вернуть ничего, кроме 0, когда запросы (т.е. SELECT * FROM Users WHERE [TheIndexedColumn] = 'Bananas' возвращает 0, Banana существует, но если вы выполните «SELECT * FROM Users», вы получите все столбцы.).

Пример: таблица Users

UserID (INT or BIGINT or NVARCHAR) – This is the primary key and also indexed
Firstname (NVARCHAR)
LastName (NVARCHAR)
...

Предположим, что эта таблица Users была заполнена многими пользователями с именами и фамилиями (уникальные пользователи). Если бы мы запросили столбец UserID, мы получили бы результат 0. Если бы индекс был удален, мы могли бы успешно применить множество различных запросов.

Открытие файла .SDF с помощью средства просмотра sdf не выявило признаков повреждения (из того, что мы видим). На устройстве Datalogic X4 базу данных можно открывать и закрывать без каких-либо ошибок во время выполнения.

Есть ли сценарии, в которых этой проблемы не существует?

Пожалуйста, обратитесь к этой таблице, чтобы увидеть, где он работает без сбоев

Выводы по устранению неполадок на данный момент:

  1. .SDF (файл базы данных) ведет себя нормально при развертывании (база данных открывается и закрывается) из среды Windows 7.
  2. Проблема возникает только между X4 Skorpio и Windows XP (база данных открывается и закрывается на компьютере с XP).
  3. Проблема проявляется только тогда, когда индекс применяется к любому столбцу в таблице.
  4. Проблема не очевидна для столбцов, не имеющих индекса.
  5. Если мы скопируем файл .SDF, хранившийся на компьютере с Windows 7, на Skorpio X4, приложение будет работать нормально.

Любая помощь будет высоко оценена, поскольку мы исчерпали все варианты до сих пор. Использование Windows 7 не вариант :(

Это опечатка: Select * from [TheIndexedColumn]? Вы выбираете из table не столбец

tcarvin 29.01.2019 14:14

Похоже, у вас могут быть дубликаты индексов, первичному ключу не нужен явный индекс

ErikEJ 29.01.2019 15:18

Версия среды выполнения на X4 тоже 8080?

ErikEJ 29.01.2019 15:19

@tcarvin - Извини, приятель, да, это опечатка, я отредактировал.

nullpointer 29.01.2019 23:22

Привет, @ErikEJ, спасибо, что вмешались, итак, у нас есть X3 с Win CE 6.0 и устройство X4 с WE7. У нас были некоторые проблемы совместимости с установкой CAB-файлов SqlServerCE при холодной загрузке устройств (X4 жалуется на совместимость при установке CAB-файла, хотя после установки он работает правильно). Мне пришлось прибегнуть к связыванию "System.Data.SqlServerCe.dll: 3.5.8080" со сборкой программного обеспечения для обоих устройств. Никакие другие установки, поддерживающие sqlserverce, не установлены. Просто к вашему сведению, развертывание на Win CE6.0 не вызывает никаких проблем!

nullpointer 29.01.2019 23:33

Кроме того, могу подтвердить, что нет повторяющихся записей, я сократил все данные до очень простого файла sdf db, чтобы упростить задачу при устранении неполадок. В каждой таблице доступно только несколько записей.

nullpointer 29.01.2019 23:37

Не стесняйтесь поделиться со мной файлом добавления ..

ErikEJ 30.01.2019 06:31

Я бы также рассмотрел возможность использования более новой сборки движка: erikej.blogspot.com/2010/08/…

ErikEJ 30.01.2019 08:54

Привет, ErikEJ, Ни одна из ссылок из вашей ссылки выше, похоже, не указывает на загружаемый файл исправления, все они приходят с сообщением «Исправление больше не доступно» :( Если я не иду в неправильные места. Любые предложения? Большое спасибо

nullpointer 30.01.2019 12:50

Даже Microsoft теперь рекомендует SQLite для разработки встраиваемых систем, ненавижу это говорить, но вы можете подумать о преобразовании. Отдельно я наткнулся на это предупреждение о совместимости в CAB, вы можете отредактировать CAB и удалить этот флаг, если вам нужно. (однако отдельная тема).

tcarvin 30.01.2019 16:14

Вы не пишите как вы разворачиваете или копируете sdf на устройство. Существуют известные проблемы с проводником XP, выполняющим преобразование «формата» при копировании файлов известных типов с/на устройство. Вероятно, вам следует добавить первичный ключ в таблицу базы данных из кода на устройстве. Вы также можете просто скопировать / развернуть sdf, а затем сравнить файл на устройстве с оригиналом.

josef 30.01.2019 17:54

@nullpointer Не стесняйтесь обращаться ко мне по электронной почте, чтобы получить обновление двигателя

ErikEJ 01.02.2019 17:29

Привет всем, спасибо за помощь, в то время мы перешли на Sqlite с CE, так как поведение было слишком странным, чтобы определить основную причину.

nullpointer 29.09.2019 09:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
13
128
0

Другие вопросы по теме