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

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

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

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


当前回答

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

在这里发布!

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

其他回答

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

首先,你需要查阅你当初雇佣那个人时起草的合同。

这份合同要么规定,要么没有规定谁拥有代码。

然后,你拿着这份合同,雇一个律师来检查它,然后他(或她)会告诉你你是否有根据,你有什么选择。

这里没人是律师,所以你在这里得不到任何法律建议。即使这里有人是律师,这个人也不会在这里回答任何你可以依赖的东西,因为如果你在一个程序员问答网站上从一个律师那里得到法律建议,那么这个律师的职业生涯很可能会很短,所以只有愚蠢的律师才会这么做。

所以你在这里得到的是意见。如果你想要可靠的法律建议,请律师。

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

从头开始编写自己版本的“应用程序”。能有多难呢?

相反,您应该考虑学习该查询的重要方面,并实现您自己的版本,您也可以获得版权。如果你不能这样做,你最好买一个。