Store Procedures

17/11/2007 - 17:22 por Victor E. Diaz | Informe spam
Éste es un mensaje de varias partes en formato MIME.
=_NextPart_000_000E_01C82903.CA54B990

Hola todos,

Estoy cambiando de motor de base de datos a SQL Server, necesito hacer un procedimiento almacenado de unos cálculos de depreciación tengo el método calcular que lo disparo en una forma en C#, pero la idea es ponerlo en el Server alguien me dice como hacer la sintaxis por favor.

Este es el código:


//Calcula las depreciaciones

int iMeses, iTotalMeses;
TimeSpan iDias;
Double ValorActivo, DepreMens, DepreAcum;

iDias = DateTime.Today.Subtract(Convert.ToDateTime(this.act_FechaCompraDateEdit.EditValue));
iTotalMeses = (Convert.ToInt32(iDias.TotalDays) / 30);

if (iTotalMeses >= this.act_MeseADepreciarSpinEdit.Value)
{
iMeses = Convert.ToInt32(this.act_MeseADepreciarSpinEdit.Value);
DarBaja = true;
}
else
{
iMeses = iTotalMeses;
}

if (this.act_MeseADepreciarSpinEdit.Value != 0)
{
DepreMens = (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) - Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) / Convert.ToDouble(this.act_MeseADepreciarSpinEdit.Value);
DepreAcum = (DepreMens * iMeses);
}
else
{
DepreMens = 0;
DepreAcum = 0;
}

if (iMeses > 1)
{
ValorActivo = (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) - Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) - DepreAcum;
if (ValorActivo < Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text))
{
ValorActivo = Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text);
}
}
else
{
ValorActivo = Convert.ToDouble(this.act_ValorInicialSpinEdit.Value);
}

los controles son cajas de texto con datos, solo necesito la idea principal!!

Gracias de antemano,


Saludos y Respetos,

Victor E. Diaz
Tegucigalpa, Honduras
=_NextPart_000_000E_01C82903.CA54B990

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=unicode">
<META content="MSHTML 6.00.6000.16544" name=GENERATOR></HEAD>
<BODY id=MailContainerBody
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-TOP: 15px"
bgColor=#ffffff leftMargin=0 topMargin=0 CanvasTabStop="true"
name="Compose message area">
<DIV>Hola todos, <BR><BR>Estoy cambiando de motor de base de datos a SQL Server,
necesito hacer un procedimiento almacenado de unos cálculos de depreciación
tengo el método calcular que lo disparo en una forma en C#, pero la idea es
ponerlo en el Server alguien me dice como hacer la sintaxis por
favor.<BR><BR>Este es el código:<BR><BR><BR><FONT size=2>&nbsp;//Calcula las
depreciaciones<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int
iMeses,
iTotalMeses;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
TimeSpan
iDias;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Double ValorActivo, DepreMens,
DepreAcum;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
iDias =
DateTime.Today.Subtract(Convert.ToDateTime(this.act_FechaCompraDateEdit.EditValue));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
iTotalMeses = (Convert.ToInt32(iDias.TotalDays) /
30);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (iTotalMeses &gt;=
this.act_MeseADepreciarSpinEdit.Value)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
iMeses =
Convert.ToInt32(this.act_MeseADepreciarSpinEdit.Value);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DarBaja =
true;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
iMeses =
iTotalMeses;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(this.act_MeseADepreciarSpinEdit.Value !=
0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DepreMens = (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) -
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) /
Convert.ToDouble(this.act_MeseADepreciarSpinEdit.Value);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DepreAcum = (DepreMens *
iMeses);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DepreMens =
0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DepreAcum =
0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if
(iMeses &gt;
1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ValorActivo = (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) -
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) -
DepreAcum;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
if (ValorActivo &lt;
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ValorActivo =
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ValorActivo =
Convert.ToDouble(this.act_ValorInicialSpinEdit.Value);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}<BR></FONT></DIV>
<DIV><FONT size=2>los controles son cajas de texto con datos, solo necesito la
idea principal!!</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>Gracias de antemano,</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Calibri size=1></FONT><FONT face=Calibri
size=1></FONT><BR>Saludos y Respetos,<BR><BR>Victor E. Diaz<BR>Tegucigalpa,
Honduras</DIV></BODY></HTML>

=_NextPart_000_000E_01C82903.CA54B990--

Preguntas similare

Leer las respuestas

#6 Julio Romero
19/11/2007 - 16:08 | Informe spam
Estoy totalmente de acuerdo con Juan Diego Bueno.
Si jamas hiciste un Store, comenza por leer la ayuda, intenta hacerlo, proba
y cuando no te salga, ahi si pedi ayuda.


"Pablo Roca" wrote:

>"Diego Romero" escribió en el mensaje
>news:
>Tengo una duda,

>¿ A los MVP les paga Microsoft para que den soporte ?


No. El MVP es un premio que dá Microsoft por la colaboración desinteresada
en foros, webs, grupos de noticias, comunidades on line .. etc


Saludos,

Pablo Roca
La Coruna - Spain
http://www.portalfox.com



Respuesta Responder a este mensaje
#7 Gux (MVP)
19/11/2007 - 16:15 | Informe spam
Para poder implementar su función C# en SQL CLR de SS2005 usted deberá
considerar varias cosas:

1. Ponga parámetros a su función para leer todos los valores que actualmente
usted está tomando de controles visuales de un formulario. En la base de
datos los controles visuales, los formularios, etc. no existen. La función
así tal como está no sirve para SS2005, pues es dependiente de objetos
visuales.

2. Si usted tiene Visual Studio 2005, cree un proyecto conectado a su
servidor de base de datos. Es muy simple desde VS2005 implementar e instalar
funciones .NET en un SQL Server.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Victor E. Diaz" wrote:

Hola todos,

Estoy cambiando de motor de base de datos a SQL Server, necesito hacer un
procedimiento almacenado de unos clculos de depreciacin tengo el mtodo
calcular que lo disparo en una forma en C#, pero la idea es ponerlo en el
Server alguien me dice como hacer la sintaxis por favor.

Este es el cdigo:


//Calcula las depreciaciones

int iMeses, iTotalMeses;
TimeSpan iDias;
Double ValorActivo, DepreMens, DepreAcum;

iDias > DateTime.Today.Subtract(Convert.ToDateTime(this.act_FechaCompraDateEdit.Ed
itValue));
iTotalMeses = (Convert.ToInt32(iDias.TotalDays) / 30);

if (iTotalMeses >= this.act_MeseADepreciarSpinEdit.Value)
{
iMeses > Convert.ToInt32(this.act_MeseADepreciarSpinEdit.Value);
DarBaja = true;
}
else
{
iMeses = iTotalMeses;
}

if (this.act_MeseADepreciarSpinEdit.Value != 0)
{
DepreMens > (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) -
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) /
Convert.ToDouble(this.act_MeseADepreciarSpinEdit.Value);
DepreAcum = (DepreMens * iMeses);
}
else
{
DepreMens = 0;
DepreAcum = 0;
}

if (iMeses > 1)
{
ValorActivo > (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) -
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) - DepreAcum;
if (ValorActivo <
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text))
{
ValorActivo > Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text);
}
}
else
{
ValorActivo > Convert.ToDouble(this.act_ValorInicialSpinEdit.Value);
}

los controles son cajas de texto con datos, solo necesito la idea
principal!!

Gracias de antemano,


Saludos y Respetos,

Victor E. Diaz
Tegucigalpa, Honduras

Respuesta Responder a este mensaje
#8 Alfredo Novoa
19/11/2007 - 18:12 | Informe spam
On Mon, 19 Nov 2007 02:15:34 +0100, "Juan Diego Bueno"
wrote:

Víctor, no voy a entrar a valorar la supuesta arrogancia de Maxi ni su respuesta a tu mensaje, pero escribir en un post algo como "enviame un ejemplo que tengas... con eso me basta" suena a exigencia, y una cosa es contestar a dudas y otra pedir a la gente ejemplos como si fueran pizzas o como si trabajaran para ti, no confundamos.



Hombre, es que es el colmo que alguien pida que le hagan su trabajo
gratis y que aun encima se ponga así.

Si alguien sabe de algún sitio en donde te hagan tu trabajo gratis,
que avise, que tengo un montón de cosas que no me apetece hacer :-)


Saludos
Alfredo
Respuesta Responder a este mensaje
#9 Victor E Diaz
19/11/2007 - 23:36 | Informe spam
Hola Lista,

Disculpas si moleste a más de alguno, tengo varios libros pero los ejemplos
de los libros no tienen planteamientos o problemas parecidos.

No les pido que me hagan la tarea (quién invento eso), estoy haciendo una
consulta, cuando alguien pregunte algo que yo se, le contestaré dando valor
agregado.

Saben, lo que pasa es que he estado en el foro de VFP por muchisimos años, y
soy miembro de www.portalfox.com otros tantos, es una comunidad tan unida en
la que no se dan estos inconvenientes, es mas ya esta en prueba un nuevo
foro para estas cosas, les invito a entrar.

Si se envia un trozo de codigo como este, alguien se hace la idea, e
inmediatamente te pasan unos links, donde te lees - problemas similares, y
por supuesto ayuda muchisimo. El pedir un ejemplo es esbozar una idea.
Talvez debi leer mas tiempo y saber un poco de ustedes o su comportamiento
en los tipos de respuestas.

Lo que escribí lo sostengo!, ya leyeron la respuesta de Gux(VMP), (igual a
los VMP de VFP), se percató de lo perdido que ando y me encamina, eso hacen
en el foro de donde vengo!

Los demás que les parecí impropio por la pregunta, gracias por no contestar
y mis respetos y consideraciones a los demas!

Cometi un error los MVP no son arrogantes, disculpas a todos (los que
menciono arriba ni idea tienen de esa palabra), a ti tambien Maxi, de
repente tenias un mal momento y yo te colme!

Un Saludo,

Por ulimo gracias, Gustavo - espero no haberte ofendido.

Victor E. Diaz
VS 2005, DevExpress v7.2.2
SQL Server 2005

P.D. No les pido que me hagan mi trabajo, pero si tienen algo en que yo les
pueda ayudar lo haré, en serio y sin ironias.

"Gux (MVP)" escribió en el mensaje de
noticias:
Para poder implementar su función C# en SQL CLR de SS2005 usted deberá
considerar varias cosas:

1. Ponga parámetros a su función para leer todos los valores que
actualmente
usted está tomando de controles visuales de un formulario. En la base de
datos los controles visuales, los formularios, etc. no existen. La función
así tal como está no sirve para SS2005, pues es dependiente de objetos
visuales.

2. Si usted tiene Visual Studio 2005, cree un proyecto conectado a su
servidor de base de datos. Es muy simple desde VS2005 implementar e
instalar
funciones .NET en un SQL Server.


Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Victor E. Diaz" wrote:

Hola todos,

Estoy cambiando de motor de base de datos a SQL Server, necesito hacer un
procedimiento almacenado de unos clculos de depreciacin tengo el mtodo
calcular que lo disparo en una forma en C#, pero la idea es ponerlo en el
Server alguien me dice como hacer la sintaxis por favor.

Este es el cdigo:


//Calcula las depreciaciones

int iMeses, iTotalMeses;
TimeSpan iDias;
Double ValorActivo, DepreMens, DepreAcum;

iDias >> DateTime.Today.Subtract(Convert.ToDateTime(this.act_FechaCompraDateEdit.Ed
itValue));
iTotalMeses = (Convert.ToInt32(iDias.TotalDays) / 30);

if (iTotalMeses >= this.act_MeseADepreciarSpinEdit.Value)
{
iMeses >> Convert.ToInt32(this.act_MeseADepreciarSpinEdit.Value);
DarBaja = true;
}
else
{
iMeses = iTotalMeses;
}

if (this.act_MeseADepreciarSpinEdit.Value != 0)
{
DepreMens >> (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) -
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) /
Convert.ToDouble(this.act_MeseADepreciarSpinEdit.Value);
DepreAcum = (DepreMens * iMeses);
}
else
{
DepreMens = 0;
DepreAcum = 0;
}

if (iMeses > 1)
{
ValorActivo >> (Convert.ToDouble(this.act_ValorInicialSpinEdit.Value) -
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text)) - DepreAcum;
if (ValorActivo <
Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text))
{
ValorActivo >> Convert.ToDouble(this.act_DepreciacionResidualTextBox.Text);
}
}
else
{
ValorActivo >> Convert.ToDouble(this.act_ValorInicialSpinEdit.Value);
}

los controles son cajas de texto con datos, solo necesito la idea
principal!!

Gracias de antemano,


Saludos y Respetos,

Victor E. Diaz
Tegucigalpa, Honduras

Respuesta Responder a este mensaje
#10 Alfredo Novoa
20/11/2007 - 11:58 | Informe spam
On Mon, 19 Nov 2007 16:31:20 -0300, "Pablodegerli"
wrote:

Pd. Alguien tiene un sistema completo de gestion, probado y andando, con el codigo entero por si quiero cambiarle el color de las pantallas y asi venderlo? gracias



Hombre, yo se de varios, pero son bastante malos.


Saludos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida