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

所以为了做这个输出,我们必须雇佣一个了解我们学生管理系统内部运作的人。他写了一个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注入和类似的攻击。在我看来,如果有人创造了这样的摇钱树,他们完全专注于榨取你的钱,而不是生产你真正需要的高质量一次性解决方案。

鉴于你的需求文档,你的建议,你有一个高质量的数据库管理系统,这样你就不会被“黑客”,你应该在一个坚实的位置写一个功能替换。

其他回答

我是一名DBA,使用过许多带有罐装SQL代码的第三方应用程序,我从未见过SQL语句附加这样的东西。如果你可以直接访问数据库并从中查询数据,那就重写代码,不要再给那个人一秒钟的时间,因为这样一个500美元的单进程似乎是一种敲敲敲敲。

But without seeing the code there's no telling how involved it is. I've written some SQL statements that go into hundreds of lines to get data, and they can take DAYS or even WEEKS to write and debug. If this guy invested that kind of time into the process and you're paying $500 per run, it may be worth it ... but if it's just a strait forward Select statement that's no more then a dozen or so lines long, that is not worth $500 and can be written by you or someone else with a basic understanding of SQL. Even if it looks similar to his, honestly sometimes there's only so many ways to write something. "The dog is blue"... how many ways can you say it? Not many :)

是的,我也不是律师,但当涉及到这样的事情时,我的道德准则是指导我的。

换一个参数就花500美元?! 如果你熟悉一个SQL,你应该重新实现它,或者如果你不熟悉SQL,你应该再雇佣一个人,让他做一个文档。在此之后,您可以使用ETL工具并自行构建导出。你可能想试试SSIS。这是它的完美用例。

我不是律师,但如果你对此不确定,你可以在他的工作合同中加上一行,说明他在工作时间、在工作电脑上编写的所有代码都属于雇佣他的公司。

真是一派胡言。

我的建议是修改SQL语句,运行查询,然后等待那家伙采取法律行动。选择法庭听证会,并在博客上直播结果。听起来会很有趣,一方面是一个剥削成性的承包商,另一方面是一个胆小的经理,不敢让你继续做生意。我很想看看承包商是如何加入这个计划的,然后传唤你的代码库,以确定你是如何在没有他的情况下完成年终的。

因为(C)当然是全能的,你不知道吗?你不能说它不是因为我在括号里加了个C。

如果编写程序的开发人员对自己的产品有信心,他可能会在没有这些限制的情况下发布它,并让他的工作接受同行的审查。二流开发者可能会高估自己的作品,并撰写这样的版权声明。

他说你可以得到书面许可。你为什么不写信告诉他你在修改他的代码而不是问他呢?证明你的行为,看看他是否会挑战你。