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

所以为了做这个输出,我们必须雇佣一个了解我们学生管理系统内部运作的人。他写了一个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美元?酷,快点。哦,请明年回来保养一下。”

这里的愤怒似乎主要是围绕着他解决的问题的简单性,但这肯定不是重点?他解决了实际问题,确保每年都运行,并获得了商定的报酬。我的数学很糟糕,但我怀疑有人可以编写应用程序来进行快速的傅里叶变换,而不费力。而是因为他们发现,如果他们为“解决问题”收取很少的费用或不收取费用,这很容易。

关于版权的问题。好吧,这里的许多帖子都以“我不是律师”开头。没有,我怀疑这两个人都不是最初的程序员。他(笨手笨脚地)试图保护自己,我同意其他人的看法,要么它不值它所写的那张纸,要么它所需要的只是在不查看或使用代码的情况下重写它,或者这里的一些其他建议。而不是为了生计去打击别人。

好吧,现在把我的异议记下来。

其他回答

any content can be copywrited, including SQL procs, which methods may be considered a trade-secret. SQL procs can be a component of an entire application which most all are copywrited, unless the are released to the public as freeware, open source or with a GPL. If you feel uneasy about infringing on the SQL proc you mentioned, all you have to do is slightly modify the SQL proc by using an alternative statement or add a dummy part to it which has no effect on the desired result. In the chemical products industry, for example: a cleaning product made by ECOLAB, whose mixture of active and inactive chemical ingridients is patented, has been imitated by several other competitors who sell basically the same product for much less. The way the got around infringing on ECOLAB's patent is to modify the content of one or more chemical ingridients by 1%. So, using this as an analogy, you can do the same to the copywrited SQL proc.

我认为在这一点上,我们的开发世界是关于保护我们的“想法”的。如果我(曾经看过上面提到的代码)自己写了一个句子,结果与您的提供者正在保护(或试图保护)的句子完全相同,会发生什么?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].

但措辞并没有说要“改变”它……:)

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

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

让开发人员在此人运行查询时打开SQL分析器(假设您使用的是SQL Server)。捕获查询并将其用作自己的查询。

仅仅因为您在查询中抛出了一个声明版权的注释(可能不会传递给SQL)并不意味着它就是版权。如果您拥有数据库和其中的数据,那么您就有权审查进入数据库的每个查询。记住,除了其他人不是律师之外,我们假设你也不是律师,你很容易在这个问题上装傻。我会让位置成为法律的9/10,抓住问题,如果这个人想起诉,告诉他让你开心。

这里的另一个关键元素是没有意图重新分发这个家伙的代码。你是在为你自己的内部使用制作一个衍生作品。