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

所以为了做这个输出,我们必须雇佣一个了解我们学生管理系统内部运作的人。他写了一个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”。)

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

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


当前回答

你从没说过你在哪,所以我们给你的任何建议都没用。不同的司法管辖区有不同的法律。

如果你在美国,打电话给你当地的律师协会,要求推荐一个从事软件版权工作的人,相信那个人告诉你的,而不是你在SO上读到的任何东西。如果你在另一个国家,找出相应的。

作为一名美国公民,而不是任何类型的律师,有几件事需要考虑。

你从没告诉过我们这个问题有多复杂。我们不可能为某些内容的唯一合理实现获得版权。如果它很简单,那就用简单的方式重写。如果它很复杂,则查询可能不是严格意义上的功能性查询,并且其中无疑存在一些创造性。在这种情况下,你应该用一种不同的方式重写它,或者雇一个人。

您应该能够找到比继续支付500美元/年更便宜的人来重写查询,并且应该不难找到比原始开发人员更有道德的人。

其他回答

我不是律师,但据我所知

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

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

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

首先,停止这种无意义的免责声明。就算你说“我是律师,真的”,你也不是律师。我知道这些,因为我是尼日利亚国王的儿子。任何从论坛上接受法律建议的人都是注定要失败的。

1)代码受版权保护。如果没有合同/协议另有规定,版权属于编写代码的人。

2)每年为改变年份变量收取500美元的费用是离谱的,但不是不道德的。这就是资本主义的运作方式。然而,修改代码直到使其所有者的权利无效肯定是不道德的。

你需要做的是雇佣一个人(或者是同一个人,谁最便宜),来编写一个每年都能工作的查询。这是每年节省500美元的正确和道德的方式。这次别忘了设定好你的条款(谁拥有版权等等)。

换一个参数就花500美元?! 如果你熟悉一个SQL,你应该重新实现它,或者如果你不熟悉SQL,你应该再雇佣一个人,让他做一个文档。在此之后,您可以使用ETL工具并自行构建导出。你可能想试试SSIS。这是它的完美用例。

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

上面说你不能在网上发布他的代码吗?

在这里发布!

然后有人修改了它,并在没有版权的情况下发布了修改后的版本。利用它。