Ответ 1
SELECT TOP(1) Id
FROM tblJob
WHERE Holder_Id IS NULL
Мне нужны скобки, насколько мне известно.
ссылка: http://technet.microsoft.com/en-us/library/bb686896.aspx
дополнение: аналогично, только для версии 3.5 и далее
При переносе приложения с SQL 2005 на SQL Server Compact Edition я обнаружил, что мне нужно выполнить команду по этой команде:
SELECT TOP 1 Id FROM tblJob WHERE Holder_Id IS NULL
Но SQL Server Compact Edition не поддерживает ключевое слово TOP
. Как я могу портировать эту команду?
SELECT TOP(1) Id
FROM tblJob
WHERE Holder_Id IS NULL
Мне нужны скобки, насколько мне известно.
ссылка: http://technet.microsoft.com/en-us/library/bb686896.aspx
дополнение: аналогично, только для версии 3.5 и далее
Это немного ортогонально вашему вопросу.
SQL Server Compact Edition на самом деле не очень хорошо работает с SQL-запросами. Вы получаете гораздо лучшую производительность, открывая таблицы напрямую. В .NET вы это сделаете, установив для свойства <имя_файлa > свойство CommandText
, а свойство CommandType
- CommandType.TableDirect
.
Если вы хотите отфильтровать результаты, вам понадобится индекс в таблице столбца (ов), который вы хотите отфильтровать. Укажите индекс для использования, установив свойство IndexName
и используйте SetRange
для установки фильтра.
Затем вы можете читать как можно больше или меньше записей.
Я использовал метод Fill для SqlCEDataAdapter. Вы можете сделать:
DbDataAdapter.Fill(DataSet, Int32, Int32, String) Добавляет или обновляет строки в указанном диапазоне в DataSet, чтобы соответствовать тем, которые в источнике данных используются с именами DataSet и DataTable. Поддерживается .NET Compact Framework.
http://msdn.microsoft.com/en-ie/library/system.data.common.dbdataadapter.fill(v=VS.80).aspx
Похоже, это невозможно сделать в компактном. Вы должны прочитать все задания или сделать SqlReader и просто прочитать первый.
Хорошо нашел причину. Студия управления несет и использует ее собственную версию SQL Server Compact. Подробнее в http://en.wikipedia.org/wiki/SQL_Server_Compact.
SQL Server Management Studio 2005 может читать и изменять CE 3.0 и 3.1 файлы базы данных (с последними пакет обновления), но SQL Server Management Studio 2008 из Выпуск CTP "Katmai" 2008 (или позже) требуется для чтения файлов версии 3.5.
RTM управления SQL Server Studio 2008 и Microsoft Visual Studio Express 2008 SP1 может создавать, изменить и запросить базу данных CE 3.5 SP1 файлы.