【发布时间】:2016-07-28 06:22:40
【问题描述】:
我正在使用 Ruby on Rails 和 MySQL 将旧系统转换为 Web 应用程序。
在将数据层转换为 MySQL 过程时,我遇到了几个问题。
在下面给出一个场景;
FUNCTION first_function
SELE Table1
REPL Table1.SmaCode WITH SMA(code,HcPc,FromDate)
ENDFUNC
FUNCTION SMA
... Lot of conditions ...
Lookup(param1,param2) * Parameters are based on the conditions above
.. Lot more conditions ....
ENDFUNC
FUNCTION Lookup
temp = Output of select on Check table
return temp
ENDFUNC
这里的 SMA 是另一个有很多条件的函数,它也调用了另一个函数 Lookup。在 Lookup 函数中,它查询一个名为 Checks 的表,Lookup 的参数基于 SMA。
如果您需要更多见解,请参阅讨论中源代码的 pastebin。 http://pastebin.com/raw/Hvx3b8zN
如何才能将这种函数转换为 MySQL 程序?
编辑: 我正在寻找已经完成这些类型转换的人对此的见解,从面向过程的语言到确切的基于集合的存储过程。
【问题讨论】:
-
查看 VFP 代码以及在编写 MySQL 存储过程中可用的内容,我认为将其留在数据层并在 Ruby 中执行将是一种更简单的方法。无论哪种方式,您只需要识别和记录 VFP 代码正在做什么并复制它。
-
忘了提到我已经尝试在 ruby 中做到这一点。问题是当我们将数据加载到 ruby 时,内存占用很高。
-
没有自动语言转换器或技巧,您必须使用MySQL语法根据您的业务需要编写代码。
-
@IvanCachicatari 我的目的是收集一些关于将程序语言转换为基于集合的 MySQL 查询的想法,这听起来并不像是我要求精确的 MySQL 语法,如果我的问题正在滋生,我深表歉意混乱。
-
@Vizkrig Foxpro 命令基于当前记录和打开的表,我是老派开发人员,我也使用过 vfp,如果没有示例数据或前后示例,很难翻译 vfp 代码,一些遗留程序现在可以根据语言用一行来解决。
标签: mysql stored-procedures visual-foxpro foxpro set-based