OT: Equivalente funiciones foxpro PADC(), PADL(), PADR() en MS SQL SERVER

1,861 views
Skip to first unread message

TurbiSoft

unread,
Jul 13, 2011, 9:58:55 AM7/13/11
to Comunidad de Visual Foxpro en Español
Saludos amigos:

Cuales serian las funciones equivalentes en MS SQL Server a estas de
fox, si es que existen, cualquier orientacion, sera bienvenida,
gracias.

Luis Alberto Turbi Mella
Rep. Dominicana

Yvan GMAIL

unread,
Jul 13, 2011, 10:03:33 AM7/13/11
to publice...@googlegroups.com
Por mientras....
Yo he usado "cadena" + replicate(relleno,cantidad)
Pero podrias hacerte tu función.

O.... Tal vez exista una función parecida.


Saludos.
Yvan Carranza

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de TurbiSoft
Enviado el: Miércoles, 13 de Julio de 2011 08:59 a.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] OT: Equivalente funiciones foxpro PADC(), PADL(), PADR() en MS
SQL SERVER

Luis Mata

unread,
Jul 13, 2011, 10:09:36 AM7/13/11
to publice...@googlegroups.com
debes de crear una funcion :

ALTER FUNCTION [dbo].[nuevo_codigo10]
(
-- Add the parameters for the function here
@valor int
)
RETURNS varchar(10)
AS
BEGIN
-- Declare the return variable here
DECLARE @codigo varchar(10)
-- Add the T-SQL statements to compute the return value here
select @codigo = replicate('0',(10-len((cast(@valor as
varchar(10))))))+cast(@valor as varchar(10))
--
-- Return the result of the function
RETURN @codigo
END

Esta funcion te devuelve un valor rellenado con 10 ceros.

LM

-----Mensaje original-----
From: TurbiSoft
Sent: Wednesday, July 13, 2011 8:58 AM
To: Comunidad de Visual Foxpro en Espa�ol
Subject: [vfp] OT: Equivalente funiciones foxpro PADC(), PADL(), PADR() en
MS SQL SERVER

Saludos amigos:

TurbiSoft

unread,
Jul 13, 2011, 10:28:39 AM7/13/11
to Comunidad de Visual Foxpro en Español

Gracias Luis Matapor tu aporte y tiempo, como siempre

Aca le dejo algo que encontre para compartir:

Este tipo de funciones devuelven un carácter o varios caracteres.

Función
Propósito

CHR(n)
Nos devuelve el carácter cuyo valor en binario es n

CONCAT(cad1, cad2)
Nos devuelve cad1 concatenada con cad2

UPPER(cad)
Convierte cad a mayúsculas

LOWER(cad)
Convierte cad a minúsculas

LPAD(cad1,n[,cad2])
Con esta función añadimos caracteres a cad1 por la izquierda hasta
una longitud máxima dada por n

INITCAP(cad)
Convierte la primera letra de cad a mayúscula

LTRIM(cad [,set])
Elimina un conjunto de caracteres a la izquierda de cad, siendo set
el conjunto de caracteres a eliminar

RPAD(cad1, n[,cad2])
Con esta función añadimos caracteres de la misma forma que con la
función LPAD pero esta vez los añadimos a la derecha

RTRIM(cad[,set])
Hace lo mismo que LTRIM pero por la derecha

REPLACE(cad,cadena_buscada [,cadena_sustitucion] )
Sustituye un conjunto de caracteres de 0 o más caracteres, devuelve
cad con cada ocurrencia de cadena_buscada sustituida por
cadena_sustitucion

SUBSTR(cad, m[,n])
Devuelve la subcadena de cad que abarca desde m hasta el numero de
caracteres dados por n.

TRANSLATE(cad1,cad2,cad3)
Convierte caracteres de una cadena en caracteres diferentes. Devuelve
cad1 con los caracteres encontrados en cad2 y sustituidos por los
caracteres de cad3




Funciones que devuelven valores numéricos

Estas funciones nos devuelven números a modo de información.

Función
Propósito

ASCII(cad)
Devuelve el valor ASCII de la primera letra de cad

INSTR(cad1, cad2[,comienzo[,m]])
Función que busca un conjunto de caracteres dentro de una cadena. Nos
devuelve la posición de cad2 en cad1 empezando a buscar en comienzo

LENGTH(cad)
Devuelve en número de caracteres de cad



Walter Valle

unread,
Jul 13, 2011, 10:30:35 AM7/13/11
to Comunidad de Visual Foxpro en Español
Si...

http://www.universalthread.com/ViewPageNewDownload.aspx?ID=27115

Son excelentes... y sin complicaciones :)

Walter Valle
VFP9 SP2 / SQLServer2008/R2 / Win7Pro
San Pedro Sula, Honduras.

TurbiSoft

unread,
Jul 13, 2011, 11:10:31 AM7/13/11
to Comunidad de Visual Foxpro en Español
Saludos:

Gracias Walter, baje y cree las funciones en SQL 20008 express, pero
cuando intento llamar una obtengo el error:

Msg 195, Level 15, State 10, Line 71
'padl' no es un nombre de función integrada reconocido.

Es decir, no encuentra la funcion, tengo que hacer algun otro paso,
para que estas funcionen?

TurbiSoft

unread,
Jul 13, 2011, 11:46:16 AM7/13/11
to Comunidad de Visual Foxpro en Español
OK, Resuelto, se debe llamar con el DBO.:

select dbo.PADL(mfactura.ncf,8,'0') as ncf,* from mfactura order by
no_factura

ricardo peña

unread,
Jul 13, 2011, 2:11:47 PM7/13/11
to GRUPO-VFP GRUPO-VFP
No quisiera pensar en el tiempo que va a tardar esa instrucción select si la tabla tiene
más de 100000 registros.  Recuerda que con esa select, el sql hace una llamada a la
función por cada valor de mfactura.ncf.
 
Tal vez lo ideal sea usarla en el insert, guardando el campo en caracteres
 y no en la select.  Va a tardar en hacerlo y encima tiene un select * a continuación.
 
Ricardo Luis Peña
Analista de Sistemas
BA - Argentina

 
> Date: Wed, 13 Jul 2011 08:46:16 -0700
> Subject: [vfp] Re: OT: Equivalente funiciones foxpro PADC(), PADL(), PADR() en MS SQL SERVER
> From: vbsco...@gmail.com
> To: publice...@googlegroups.com

TurbiSoft

unread,
Jul 13, 2011, 6:08:08 PM7/13/11
to Comunidad de Visual Foxpro en Español
Gracias Ricardo, fue solo a manera de ejemplo ese query

Victor Espina

unread,
Jul 13, 2011, 9:33:48 PM7/13/11
to publice...@googlegroups.com
Excelente!!! Hay varias que no conocia y que me caen como anillo al dedo!!

Saludos

Victor Espina
Reply all
Reply to author
Forward
0 new messages