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

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

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

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


当前回答

Just as others have stated here "I am not a lawyer" but I do deal quite a bit with intelectual property. Copyright can not be used to protect an idea. It is meant to protect an expresion. In other words, if someone was to write an article or a book or paint a picture you can't reproduce the copyrighted works without an express permission of the copyright holder. If you were to cut and paste the text of the query in to your own, you would most likely be violating the copyright. On the other hand, if you were to write your own query that achieves the same results but in a different way you would nto be infringing on the copyright. I think the question you have to ask yourself "can I write a similar query without copy/paste of the original query?"

其他回答

如果你发布查询的全文,我们也许能帮上忙。

我认为在这一点上,我们的开发世界是关于保护我们的“想法”的。如果我(曾经看过上面提到的代码)自己写了一个句子,结果与您的提供者正在保护(或试图保护)的句子完全相同,会发生什么?SQL是一种非常有限的语言,一个问题的最佳解决方案在不同的开发人员之间趋于相似。那我就不能用我自己的代码吗?因为和你的源代码是一样的?

只需更改代码,自己使用并更新数据。如果他们问你,回答你已经手动更新了所有的记录,一个接一个。你知道,开发人员是非常有耐心的。他们怎么能证明这不是真的呢?

找一个从未见过勒索者代码的人来检查表结构,并以干净的方式派生一个等价的查询。

你付他钱是为了服务,不是为了代码。事实上,他把他的代码的源代码留给了你,不允许你使用它。即使是他创造的单字符,他也没有出售版权,也没有授权你使用它。

如果你想省钱,删除他的查询,从头开始写你自己的查询,或者只是让他知道你要这么做,并提出以500美元的价格购买他的查询。他很可能会这么做,因为这是他最后一次捞钱的机会。

我建议你提出一个不同的问题:鉴于我们的学生管理系统的这个和那个表结构,SO社区会提出什么SQL查询来导出任何给定年份的学生列表?

这将使你最初的问题变得有趣,但与你手头的任务相关,因为你将有一个社区提供的解决方案,可能会越来越高性能,更容易维护:)