2015-05-28 50 views
0

我管理建立在一些VBA代码,从获取其数据访问的应用程序:通过访问用户将计算从VBA迁移到SQL?

  • 投入形成在Sybase
  • 表(即通过访问链接)
  • 本地表in Access

该应用程序用于进行一些财务计算。我们的计算需要很多条件,并且大多是一些复杂的计算(分数,乘法......)

我的问题是:是VBA比Sybase做的计算快吗? (请注意不是当我们做我们的计算需要我们的3个种类的数据源)

我想所有的计算到Sybase的迁移一些存储过程和从参数VBA代码调用它,等待来自Sybase的输出。

PS:我之所以要求这是另一个原因,是因为我们考虑将我们的Access应用程序迁移到瘦客户机(基于网络的概率)作为长期项目,并且如果所有计算已经在服务器/数据库中它可能会更容易?你怎么看?

非常感谢您的帮助

回答

0

IMO,我会将基于表单的变量(用户条目)作为参数传递给存储过程,然后根据需要从SP中的表中获取其他变量。这样可以避免在窗体打开时向客户端发送太多数据。这会从VBA代码(或任何特定的前端语言)中抽象出逻辑,使其最终转移到一个薄层更容易。您也可以根据需要重新编译独立的存储过程,而不是部署另一个代码实例(通常更难)。

如果有大量来自表单或本地表的参数,请考虑将它们作为Sybase中的结构化数据类型传递。 Sybase中的过程缓存功能非常强大,并且与其他任何过程语言一样快速编译之后。

+0

谢谢你的意见丹尼尔。 您有没有机会获得Sybase的结构化数据类型的任何文档? (我从来没有听说过)。 Sybase并没有被使用过,并且没有很多文档提及它...... – Cyyrils

0

这取决于计算。 Sybase会更好地进行涉及分组数据的计算,但像分数等复杂计算......在代码中执行起来会更快。从数据中分离出业务逻辑也是更好的做法。

+0

感谢您的回答。我们的计算需要很多条件,主要是一些复杂的计算(分数,乘法......)。 – Cyyrils

+0

我会将数据保存在数据库中,并在应用程序中进行计算。使用像C#这样的编译语言会更快,但VBA应该做到这一点,然后您将始终拥有干净的数据。 – kickinchicken