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

所以为了做这个输出,我们必须雇佣一个了解我们学生管理系统内部运作的人。他写了一个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美元,因为他知道他将支付某种类型的年费。这为学校系统节省了一大笔钱。

如果应用程序的数据结构改变了怎么办?他可能要花好几天重写这个查询,却只能得到500美元。

也许学校系统不想年复一年地收取固定的小时费,只是决定500美元是固定的费用。

其他回答

我不知道为什么你们大多数人都这么关注他写的代码,而不关注他写代码时的条件。最初的合同,假设有一个,应该在合同的末尾说明谁拥有代码。学校继续雇佣他并付钱让他重写他的“原始”代码,因此必须有雇佣条款。

从另一个方面来说,学校雇佣别人来写代码,并规定他们永远不会拥有他为他们写的代码,这是很愚蠢的。

事实上,我对一些人对这个问题的态度感到惊讶。一开始是因为没有人能解决这个问题,所以才请了这个程序员。解决办法可能容易,也可能不容易,但没有人能做到,而他能做到,而且做到了。

然后他每年都会被叫回来做维护。虽然改变年份并不完全是火箭科学,也许其他人会提出参数,但他没有被要求(我猜)。是否有人为了争论而为程序员写了一个他没有遵守的规范?或者有人对他说‘把它修好吧。多少钱?500美元?酷,快点。哦,请明年回来保养一下。”

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

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

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

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

定义一个新的视图使用原始查询作为基础,而不指定日期参数。

create or replace view MY_VIEW as
 select STUDENT_NAME, STUDENT_NO, CLASS_YEAR
   from STUDENT_TABLE
  where STUDENT_CLASS = 10

写一个新的查询从视图中选择应用日期参数,例如。

set DATE_PARM = '2009';
select STUDENT_NAME, STUDENT_NO, CLASS_YEAR
  from MY_VIEW
 where CLASS_YEAR = %DATE_PARM

因为我们在这里都不是律师,我想指出这篇文章是通过Techdirt的方式来的,它确实有相当多的法律追随者,特别是在版权领域。想知道他们是怎么说的吗?

你能对SQL查询进行版权保护吗?