Почему я должен использовать SQLite по базе данных Jet

Поскольку вы выполняете целочисленное деление.

Как говорит @Noldorin, если оба оператора являются целыми числами, то используется целочисленное деление.

Результат 0.33333333 не может быть представлен как целое число, поэтому к результату присваивается только целочисленная часть (0).

Если любой из операторов является double / float, тогда будет выполнена арифметика с плавающей запятой. Но у вас будет такая же проблема, если вы это сделаете:

int n = 1.0 / 3.0;
21
задан AngryHacker 3 February 2009 в 05:53
поделиться

6 ответов

Вопреки тому, что говорят другие люди, Струя не мертва и отнюдь нет: ACE является новой версией Струи, и это довольно устойчиво и обратно совместимо.

И SQLite и Струя/ACE имеют их достоинства и недостатки, и необходимо получить больше информации об отдельных моментах, которые важны для Вас и Вашего приложения.

  • В любом случае можно перераспределить механизм.
  • Струя/ACE немного более интегрируется и поддерживается из поля в инструментах MS и Visual Studio.
  • Струя/ACE имеет больше детализированной блокировки, которая может быть важной, если Ваше приложение позволяет мультипользователям или нужно в многопоточном доступе к базе данных.
  • Струя/ACE имеет больше функций с точки зрения того, что Вы ожидали бы от базы данных (соединения, объединения и сложные запросы).
  • Струя/ACE имеет простой миграционный путь к SQL Server, поэтому если Ваши потребности базы данных становятся большими, Вы могли бы переместиться в SQL Server довольно легко.
  • SQLite является межплатформенным, поэтому если Ваше приложение должно быть портировано к Linux/Mac под Моно затем, SQLite является лучшим выбором.
  • механизм SQLite более труден настолько перераспределяющий, может быть легче.
  • типы данных довольно свободны в SQLite.
  • SQLite имеет более либеральные права перераспределения (так как можно в основном сделать то, что Вы хотите с ним).

Люди, которые говорят, что Струя повреждает базы данных, застревают в 1995.

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

23
ответ дан 29 November 2019 в 20:06
поделиться

SQLite превосходит Струю для основной причины, что SQLite совместим ACID , тогда как Струя, к сожалению, не. Если целостность данных является проблемой, SQLite предлагает намного больше "устойчивой" платформы для Ваших требований хранения данных. См. "SQLite, Является Транзакционным" и "Атомарная Фиксация В SQLite" для получения дополнительной информации.

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

аспектом без сервера SQLite является также главное преимущество по Струе, в которой ничто не должно быть установлено на машине, которая выполнит Вашу базу данных. Например, я использовал SQLite в веб-приложении ASP.NET и всем, в чем я нуждался, был DLL SQLite (в этом случае, было превосходное Система. Данные. Замена вклинивания сигнала SQLite) в папке "мусорного ведра" моего приложения и моей базе данных в папке "App_Data" приложения. Я мог затем загрузить эти файлы на свой webhost, и все это "просто работало". Это, не имея необходимость к на самом деле установка , или зарегистрируйте что-либо на целевой машине.

А маленький dowside SQLite происходит из-за базы данных, являющейся основанным на файле. Записи базы данных заблокируют весь файл базы данных, а не определенную строку или таблицу, тогда как Струя предложит Вам более детализированный уровень блокировки. Другой маленькой проблемой, на основе того же основанного на файле обоснования, является параллелизм, однако Струйный сам не предлагает высокого уровня параллелизма также.

7
ответ дан 29 November 2019 в 20:06
поделиться

Струя больше не поддерживается. SQLite также легче установить, так как это - один dll, который может легко быть упакован с Вашим приложением. Используя SQLite также может предотвратить привязку уличного торговца, просто потому что язык или кросс-платформенный portibility не являются беспокойством, теперь не означает, что это не станет одним позже. Для больше при выходе на пенсию Струи см. http://en.wikipedia.org/wiki/Microsoft_Jet_Database_Engine

4
ответ дан 29 November 2019 в 20:06
поделиться

Стоимость не является проблемой. Если Ваш frontend создается в чем-то другом, чем Доступ MS, пользователи приложения не должны платить взносы, чтобы установить Струйные драйверы. Visual Studio включала бы те драйверы во время Вашей сборки (По крайней мере, пред версии.NET, сделал.).

я предполагаю, что Вы не имеете никакого персонального предпочтения и одинаково квалифицированы в разработке в любой среде. Если бы у Ваших пользователей уже есть лицензии Доступа MS, и они хотели бы смочь написать свои собственные отчеты (О, Бог запрещают любому нехакеру, делающему попытку такого огромного подвига!), используйте Струю.

2
ответ дан 29 November 2019 в 20:06
поделиться

SQLite является новая Струя. Даже если межплатформенный не важно Вам, это не может быть Вашим клиентам. Используя Струю блокирует их в Windows и к больше поддерживаемому DB, ни один из которых хорошие вещи. И SQLite работает с примерно любой средой разработки там.

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

можно, конечно, создать внешние ключи в SQLite, и с SQLite были также добавлены 3.6.19 ограничений внешнего ключа.

2
ответ дан 29 November 2019 в 20:06
поделиться

Первое, что пришло на ум это является свободным и кросс-платформенным; но более важный... Вы думаете, что это более стабильно и масштабируемо та Струя/MS Access/.mdb? Этим будут дольше жить, что его преемник (ACE/.accdb)

, Если это будет использоваться больше, чем просто пара людей, я не беспокоюсь Струей. Я перехожу прямо к MS-SQL (даже бесплатная версия его). Это просто не стоит боли поврежденного DB (какая Струя известна - хотя, возможно, они зафиксировали его - я не хочу быть их тестовым сценарием хотя).

0
ответ дан 29 November 2019 в 20:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: