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

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

你真正需要问的问题是——他是否真的拥有版权,或者他只是说他拥有。这取决于编写查询所依据的契约的条款。

编辑: 我想修改一下我的回答——你可以随心所欲地处理它(我不是律师!),只要不涉及奇怪的合同。

案例1:他把.sql文件作为“程序”卖给了你——.sql文件本身就是程序,你可以随心所欲地修改它——同样,如果你买了任何应用程序,你可以用十六进制编辑器打开它,并更改位。没有EULA禁止这样做。

案例2:他把.sql文件作为源代码卖给了你——他把源代码卖给了你,这意味着源代码是你从他那里买的东西,你可以修改它,就像修改你买的东西一样。

人们太沉迷于你可以“查看一个。sql文件的源”这一事实——它要么是一个程序,要么是一个源文件,这取决于合同,无论哪种方式你都可以修改它。版权保护人们不受未经授权的传播,而不是为内部使用而修改。

其他回答

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

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

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

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

把这500美元花在律师函上

如果你重用他的代码,他最多可以让你留下他的名字(这很常见,不是吗?

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

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

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

把2009年改成2010年要500美元?哦,伙计,真是个骗局。

今年付给他500美元,并告诉他你想让查询以学年为参数。看看他知道这将是他最后一次为你工作时作何反应。