Conversión Automatizada de Aplicaciones
¿Necesita convertir su aplicación Informix 4GL a Microsoft T-SQL? En este caso, los productos de Ispirer serán la solución perfecta para su proyecto. El código escrito por humanos en cada proyecto tiene sus propios detalles específicos. Puede parecer difícil obtener un alto nivel de conversión automatizada. Con Ispirer será una transición suave. La principal ventaja de Ispirer Toolkit es la personalización para su proyecto de conversión. Como resultado, reemplazará la tecnología anterior con todas sus desventajas. El desenlace será una nueva aplicación sin ningún middleware utilizado posteriormente.
Cómo Funciona
Ispirer Toolkit
La conversión automatizada de Informix 4GL a Microsoft T-SQL con la ayuda de nuestra herramienta permite reducir significativamente el tiempo y los gastos en comparación con la reescritura manual de la aplicación. El siguiente enfoque permite garantizar una alta calidad de conversión automatizada:
Ispirer Service
Nuestro equipo puede proporcionarle un servicio de migración llave en mano y convertir toda su aplicación Informix 4GL a Microsoft T-SQL, entregándole una aplicación lista para usar a su debido tiempo. Nuestras responsabilidades incluyen el análisis, la evaluación, el rendimiento y las pruebas profesionales de su migración y también servicios como agregar nuevas o cambiar las funcionalidades existentes de la aplicación.
Si desea obtener un resultado intermedio del código Informix 4GL convertido en el lenguaje Microsoft T-SQL, el equipo de Ispirer estará encantado de proporcionarle un servicio de migración básico. Como resultado, obtendrá un código optimizado a nivel compilable. Además, deberá llevar la aplicación de forma independiente a un estado completamente funcional de acuerdo con sus requisitos.
Usted es libre de elegir una opción preferida. Sin embargo, podemos proporcionar una estimación tanto de Ispirer Toolkit como de Ispirer Service, y brindar asesoramiento profesional.
Conversion Overview
- Converts Informix 4GL functions (*.4gl) to T-SQL functions/procedures (*.sql)
function sample_func(s_char) #-------------------# define s_char char(100), i smallint, j smallint, r_char char(100) let r_char = " " for i = 1 to 100 if (s_char[i,i] = " ") then continue for else let r_char = s_char[i,100] exit for end if end for return r_char end function
FUNCTION sample_func(@s_char CHAR(2000)) ---------------------# RETURNS CHAR(2000) BEGIN DECLARE @i INT = 0 DECLARE @j INT = 0 DECLARE @r_char CHAR(100) = ' ' DECLARE @SWR_i INT SET @r_char = SUBSTRB(' ',1,100) SET @SWR_i = 1 while (@SWR_i <= 100) BEGIN SET @i = @SWR_i IF(SUBSTRB(@s_char,@i,1)) continue ELSE BEGIN SET @r_char = SUBSTRB(SUBSTRB(@s_char,@i,101 -@i),1,100) BREAK END SET @SWR_i = @SWR_i+1 END RETURN @r_char END
- Converts comments:
#Single line comments { Multiline comments }
--Single line comments /* Multiline comments */
- Convert data types
Informix 4GL type | Microsoft T-SQL data type |
---|---|
char(length) | CHAR(length) |
smallint | INT |
integer | INT |
date | DATETIME |
decimal(n,m) | DECIMAL(n,m) |
- Converts records to table type variables
define c0 record like ctl_f0.*
DECLARE @c0 TABLE (ctl_f0_id INT, ctl_f0_name VARCHAR(100), ctl_f0_description VARCHAR(1000))
- Converts built-in functions, expressions and predicates
Informix 4GL type | Microsoft T-SQL data type | |
---|---|---|
Ascii function | let a = ascii 223 | SET a = CHAR(223) |
Clipped function | let a = b clipped | SET a = RTRIM(b) |
Date function | let a = date(b) | SET a = CONVERT(DATETIME, b) |
Day function | let a = day(b) | SET a = DATEPART(DAY, b) |
Mdy function | let a = mdy(b,c,d) | SET a = CONVERT(DATETIME,STR(b) + '-' + STR(c) + '-' + STR(d)) |
Month function | let a = month(b) | SET a = month(b) |
Upshift function | let a = upshift(b) | SET a = UPPER(b) |
Using function | let a = b using "######&" | SET a = STR(b,[’9999990’]) |
Year function | let a = year(b) | SET a = year(b) |
Concat expression | let a = b, “cd”,d | SET a = b + [“cd”] + d |
Mod expression | let a = b mod 2 | SET a = b%2 |
Substring expression | let a = b[2,2] | SET a = substr(b,2,1) |
True/False expression | let a = true let a = false | SET a = true SET a = false |
Matches predicate | if (n not matches "[0123456789]") then | if (not regexp_like(n,'[0123456789]')) then |
- Converts statements of business logic
For example,
For range loop
for i = 1 to 10 … end for
SET @i = 1 while (@i <= 10) BEGIN … SET @i = @i+1 END
Case statement
case a when 1 … when 2 … otherwise … end case
IF @a = 1 … ELSE IF @a = 2 … ELSE … END
Declare cursor
declare cur_n0 cursor for select n0_ch from nkin_a where (n0_kau_no = s_kau_no) and (n0_cd = s_cd)
DECLARE CUR_N0 cursor FOR SELECT n0_ch FROM nkin_a WHERE (n0_kau_no = s_kau_no) AND (n0_cd = s_cd)
Informix Database Migration
Along with converting Informix 4GL to SQL Server Transact-SQL, Ispirer solutions can automate the entire migration of your Informix database objects, including tables, data, as well as SQL business logic, to any other technology. As a result, you get a fully functioning database system. Choosing Ispirer's comprehensive migration solution, you will be able to eliminate most of associated risks and considerably reduce internal efforts. Click here to learn more about Informix migration.
Beneficios Que Obtiene
Lo Que Dicen Nuestros Clientes
Informix 4GL code to Microsoft T-SQL Conversion
- Converts Informix 4GL functions (*.4gl) to T-SQL functions/procedures (*.sql)
function sample_func(s_char) #-------------------# define s_char char(100), i smallint, j smallint, r_char char(100) let r_char = " " for i = 1 to 100 if (s_char[i,i] = " ") then continue for else let r_char = s_char[i,100] exit for end if end for return r_char end function
FUNCTION sample_func(@s_char CHAR(2000)) ---------------------# RETURNS CHAR(2000) BEGIN DECLARE @i INT = 0 DECLARE @j INT = 0 DECLARE @r_char CHAR(100) = ' ' DECLARE @SWR_i INT SET @r_char = SUBSTRB(' ',1,100) SET @SWR_i = 1 while (@SWR_i <= 100) BEGIN SET @i = @SWR_i IF(SUBSTRB(@s_char,@i,1)) continue ELSE BEGIN SET @r_char = SUBSTRB(SUBSTRB(@s_char,@i,101 -@i),1,100) BREAK END SET @SWR_i = @SWR_i+1 END RETURN @r_char END
- Converts comments:
#Single line comments { Multiline comments }
--Single line comments /* Multiline comments */
- Convert data types
Informix 4GL type | Microsoft T-SQL data type |
---|---|
char(length) | CHAR(length) |
smallint | INT |
integer | INT |
date | DATETIME |
decimal(n,m) | DECIMAL(n,m) |
- Converts records to table type variables
define c0 record like ctl_f0.*
DECLARE @c0 TABLE (ctl_f0_id INT, ctl_f0_name VARCHAR(100), ctl_f0_description VARCHAR(1000))
- Converts built-in functions, expressions and predicates
Informix 4GL type | Microsoft T-SQL data type | |
---|---|---|
Ascii function | let a = ascii 223 | SET a = CHAR(223) |
Clipped function | let a = b clipped | SET a = RTRIM(b) |
Date function | let a = date(b) | SET a = CONVERT(DATETIME, b) |
Day function | let a = day(b) | SET a = DATEPART(DAY, b) |
Mdy function | let a = mdy(b,c,d) | SET a = CONVERT(DATETIME,STR(b) + '-' + STR(c) + '-' + STR(d)) |
Month function | let a = month(b) | SET a = month(b) |
Upshift function | let a = upshift(b) | SET a = UPPER(b) |
Using function | let a = b using "######&" | SET a = STR(b,[’9999990’]) |
Year function | let a = year(b) | SET a = year(b) |
Concat expression | let a = b, “cd”,d | SET a = b + [“cd”] + d |
Mod expression | let a = b mod 2 | SET a = b%2 |
Substring expression | let a = b[2,2] | SET a = substr(b,2,1) |
True/False expression | let a = true let a = false | SET a = true SET a = false |
Matches predicate | if (n not matches "[0123456789]") then | if (not regexp_like(n,'[0123456789]')) then |
- Converts statements of business logic
For example,
For range loop
for i = 1 to 10 … end for
SET @i = 1 while (@i <= 10) BEGIN … SET @i = @i+1 END
Case statement
case a when 1 … when 2 … otherwise … end case
IF @a = 1 … ELSE IF @a = 2 … ELSE … END
Declare cursor
declare cur_n0 cursor for select n0_ch from nkin_a where (n0_kau_no = s_kau_no) and (n0_cd = s_cd)
DECLARE CUR_N0 cursor FOR SELECT n0_ch FROM nkin_a WHERE (n0_kau_no = s_kau_no) AND (n0_cd = s_cd)