我在一个学区工作。每年我们都必须从学生管理系统中导出一份学生名单,并将其发送给处理我们在线考试的公司。

所以为了做这个输出,我们必须雇佣一个了解我们学生管理系统内部运作的人。他写了一个sql (Adaptive Sybase sql Anywhere)查询,将学生导出到我们需要的csv文件。这是在我开始为学区工作之前,所以有一段时间我以为这是一个真正的应用程序,直到轮到我自己做导出的时候。

每年他都会向我们收取500美元来更新这个查询以导出当年的学生。所以当我发现它只是一个查询(.bat文件和.sql文件)时,我的想法是“我可以自己更新”。我所要做的就是改变查询中的年份(例如。2009 - 2010)。

查询(。SQL文件)本身在顶部有这样的注释:

// This code was writtend by [the guy]
// and is the property of [his company]...Copyright 2005,2006,2008,2009
// This code MAY NOT BE USED without the expressed written consent of 
// [his company].

(是的,上面确实写着“writtend”。)

所以现在我老板担心我们侵犯了版权。那家伙会发现是我自己更新了查询因为我们今年还没有要求他更新并采取法律行动。

回到刚才的问题: 他真的能获得这个问题的版权吗? 如果是的话,我们自己修改是不是侵犯了版权? 在我看来,单个查询不是程序代码。它更像是一个命令行命令。但我不知道这在法律上是怎么考虑的。


当前回答

另一种选择(你可能执行也可能不执行,风险由你自己承担——咨询律师!):保持他的代码不变。编写一个包装器,读取他的SQL并在运行它之前执行s/2009/$this_year/。瞧,你什么都没改变……

其他回答

它是一个SQL查询,这是一个转移注意力的事实。它是源代码和知识产权,就像它被编译成可执行文件一样。正如其他人已经说过的,对您使用该软件的任何限制主要取决于您的协议条款。

我注意到他的评论是这样说的:

// This code MAY NOT BE USED without the expressed written consent of 

这并不是说要修改它,而且如果你修改了它,你也可以争辩说你没有使用他的代码。

在这里,您的众多选择之一是创建一个黑匣子替代品。这听起来像是一个很容易理解的问题,您可以为它编写一个简短的需求文档。我建议您包含参数化变量选项的选项,例如所讨论的年份(!)。

更重要的是,我建议在替换代码中避免SQL注入和类似的攻击。在我看来,如果有人创造了这样的摇钱树,他们完全专注于榨取你的钱,而不是生产你真正需要的高质量一次性解决方案。

鉴于你的需求文档,你的建议,你有一个高质量的数据库管理系统,这样你就不会被“黑客”,你应该在一个坚实的位置写一个功能替换。

我不是律师,但据我所知

除非你们有明确的“雇佣工作”的书面协议,或者能够证明双方对“雇佣工作”的理解是存在的,那么他将在他的合法权利范围内限制该代码的使用。

“雇佣工作”基本上是指一个人在“雇佣工作”安排下创造的任何东西,都是雇佣他们的人的财产。如果没有这样的协议,新创作的作品自动归作者所有。我相信任何由雇员(不是分包商)创造的工作都自动被认为是“雇佣工作”。

当然,你不能对想法进行版权保护,只能对这些想法的具体表达进行版权保护。

我认为你需要看的不是代码,而是写代码的人所依据的合同。通常在任何类型的编程活动中,项目的源代码/目标代码的所有权都有明确的指示。

如果原来的合同里没有,我会确保这份合同里有。

和往常一样,如果你真的担心,那就去找律师。我们开发人员。

如果我看到类似的东西,并且查询不是太复杂,我会自己重写它(可能严格地使用他的查询来找出数据库模式,但仅此而已)。

在这一点上,你会更新你的工作……不是别人的。

至于他的问题……如果在创作时没有签订合同,我认为执行版权就有点不可靠了。