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

所以为了做这个输出,我们必须雇佣一个了解我们学生管理系统内部运作的人。他写了一个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语句,那么SQL语句很可能符合“为雇用而制作的作品”的条件,在这种情况下,版权将由学区拥有,而不是程序员。

然而,学区和程序员之间的合同条款可能会指定一种不同的有约束力的安排。

问问真正的知识产权律师。

其他回答

威胁说要“点名羞辱”他,除非他给你书面许可,让你按照你认为合适的方式修改文件。

做这种不道德事情的底层员工给自由软件开发人员带来了坏名声。他不配得到工作……国际海事组织。

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

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

以下是我对法律方面的看法....

你需要在软件交付的第一时间查看合同情况,并确定谁是知识产权的所有者(如果我误解了“雇佣”这个术语,请原谅:

1) 这个人是根据临时或无限雇佣合同受雇于你的公司。雇佣合同通常包含一个条款,说明这个家伙在雇佣期间创造的所有知识产权仍然是你公司的财产——好案例

2) 你从他的公司购买了一次性定制服务。知识产权是你的——好例子

3) 你购买了一个软件的使用权,它仍然是他的知识产权,你无权更改代码-坏情况

来确定2..3适用,查看他发送的发票加上你或他强加的任何条款和条件。

另一个问题是,合同情况是否仍在进行中,即这个人是否有责任随着时间的推移维护代码,或确保代码正常工作,或者他是否必须满足代码的任何SLA。在这种情况下,他要求的费用被纠正(我不想在这里评论价格价值)。

我会仔细研究所有的协议。你永远不知道,他可能第一年只拿到500美元,因为他知道他将支付某种类型的年费。这为学校系统节省了一大笔钱。

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

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

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

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

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

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

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