Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 独立桌面应用程序,带集中式数据库(文件),不带数据库服务器?_Python_Database_Vb.net_Sqlite_Ms Access - Fatal编程技术网

Python 独立桌面应用程序,带集中式数据库(文件),不带数据库服务器?

Python 独立桌面应用程序,带集中式数据库(文件),不带数据库服务器?,python,database,vb.net,sqlite,ms-access,Python,Database,Vb.net,Sqlite,Ms Access,我一直在开发一个相当简单的桌面应用程序,供部门内100-150人使用,主要用于报告。不幸的是,我必须在一些非常严格的限制内构建它,类似于本文中提到的规范。应用程序将只是一个自包含的可执行文件,无需安装 我遇到的问题是如何处理数据库需求。该应用程序可能只有大约1GB的数据,但它需要对每个人都可用 我会将数据库嵌入到应用程序(SQLite)中,但数据需要每周从一个集中的过程中刷新,因此我认为维护一个数据库比将更新下推到应用程序更容易。此外,用户还需要向数据库写入数据,并且这些更新需要被所有人看到 我

我一直在开发一个相当简单的桌面应用程序,供部门内100-150人使用,主要用于报告。不幸的是,我必须在一些非常严格的限制内构建它,类似于本文中提到的规范。应用程序将只是一个自包含的可执行文件,无需安装

我遇到的问题是如何处理数据库需求。该应用程序可能只有大约1GB的数据,但它需要对每个人都可用

我会将数据库嵌入到应用程序(SQLite)中,但数据需要每周从一个集中的过程中刷新,因此我认为维护一个数据库比将更新下推到应用程序更容易。此外,用户还需要向数据库写入数据,并且这些更新需要被所有人看到

我不允许为数据库设置服务器,这样就排除了真正的数据库的任何好选项。我仅限于文件共享或SharePoint

看来我要用MS Access或SQLite了。我更愿意坚持使用SQLite,因为我是python和SQLAlchemy的粉丝——但根据我所读到的内容,SQLite对于通过网络访问它的多个用户来说不是一个好的解决方案(甚至不可能)

是否有其他选项我还没有找到,或者我一直在使用MS Access?也许我需要分解并使用SharePoint列表和应用程序

我研究这个已经有一段时间了,我已经没有主意了。感谢您的帮助


仅供参考,我相信你会知道,我不是一个专业的开发人员。我在web/python/vb开发方面有足够的经验可以应付,所以我被要求作为一个辅助项目来做这件事。

由于我的选择有限,我决定使用SQLite为每个应用程序使用一个内置数据库。数据库只需要每一两周更新一次,所以我想从平面文件中进行30秒的更新就可以了。然后用户可以根据需要在本地浏览所有数据。

SQLite可以跨网络运行,并在不同进程之间共享。当应用程序写得很重时,这不是一个好的解决方案(因为它会在写入期间锁定数据库文件),但如果应用程序主要报告,这可能是一个完全合理的解决方案。

噢,还有一个现有的解决方案广泛地利用VBA。但是,计划中的解决方案将有太多的平面文件,无法使使用VBA和Excel文件成为一个好的选择。当您说您无法设置服务器时,您是指专用硬件还是任何特定软件?我想说的是,是否有可能在其他人都可以连接的工作站上安装免费的SQL Server Express之类的东西?无论何时任何人想要访问数据库,该工作站都将始终处于打开状态,但这可能不是问题。如果无法按照jmcihinney建议的方式使用sql server express,另一种选择是在工作站中运行web/wcf服务,该服务将为桌面应用程序提供使用本地数据库的网关(sqlite或msaccess或其他)。但是,我也建议您使用sql server express来满足这些需求。感谢您的回复。我们组中的每个人都使用不断打开和关闭的笔记本电脑。我也无法使用专用计算机来托管数据库。我仅限于使用我们的SharePoint网站或我们组有权访问的现有文件共享。我们是small集团是一家全球性企业,这意味着任何新的技术需求,如新的服务器,都必须由我们的技术集团托管,这需要花费太多的资金。