• Lunes 29 de Abril de 2024, 23:56

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - alexis salinas

Páginas: [1] 2
1
Otras Bases de Datos / Re: Desconocimiento De Transact Sql
« en: Domingo 23 de Enero de 2005, 21:23 »
Hacer un split como tal no se puede, pero tal vez si explicas mejor lo que necesitas hacer te pueda ayudar.

2
SQL Server / Re: Sql Query Date
« en: Viernes 10 de Septiembre de 2004, 19:07 »
este codigo te retorna la fecha del servidor
select  getdate() -- en el formato del servidor

la fecha en formato dd/mm/yyyy
select  convert (varchar(10),getdate(),103)

atte
Alexis salinas R

3
SQL Server / Re: Conversion De Numeric A Varchar
« en: Viernes 10 de Septiembre de 2004, 18:58 »
es problema es relativamente simple, el proceso de conversion de numerico a char es muy lento ya que  tu base de datos debe tener muchos datos por lo cual te bota.

El sql server primero realiza la conversion de todos los datos y despues realiza la comparacion,  agregar un indice sobre el campo descripcion.


Atte
Alexis Salinas R.

4
SQL Server / Re: Crear Usuarios En Sql
« en: Viernes 27 de Agosto de 2004, 22:18 »
sp_grantlogin
Permite a una cuenta de usuario o de grupo de Microsoft® Windows NT® conectar con Microsoft SQL Server™ mediante la autenticación de Windows.

Sintaxis
sp_grantlogin [@loginame =] 'login'

Argumentos
[@loginame =] 'login'

Es el nombre del usuario o grupo de Windows NT que se agrega. El usuario o grupo de Windows NT debe calificarse con un nombre de dominio de Windows NT en la forma Dominio\Usuario, por ejemplo London\Joeb. login es de tipo sysname y no tiene valor predeterminado.

Valores del código de retorno
0 (correcto) o 1 (error)

Observaciones
Puede utilizar sp_grantlogin para invertir los efectos de un sp_denylogin anterior ejecutado para un usuario de Windows NT.

Utilice sp_addlogin para permitir a un inicio de sesión de SQL Server conectar con SQL Server.

Aunque un inicio de sesión puede conectar con SQL Server después de ejecutarse sp_grantlogin, se le denegará el acceso a las bases de datos de usuario hasta que se cree una cuenta de usuario para el inicio de sesión en cada base de datos a la que precise acceso. Utilice sp_grantdbaccess para crear una cuenta de usuario en cada base de datos de usuario.

sp_grantlogin no se puede ejecutar desde una transacción definida por el usuario.

Permisos
Sólo los miembros de las funciones fijas de servidor sysadmin o securityadmin pueden ejecutar sp_grantlogin.

Ejemplos
En este ejemplo se permite al usuario de Windows NT Corporate\BobJ conectar con SQL Server.

EXEC sp_grantlogin 'Corporate\BobJ'

O bien

EXEC sp_grantlogin [Corporate\BobJ]


sp_adduser
Agrega una cuenta de seguridad para un nuevo usuario de la base de datos actual. Este procedimiento se incluye por compatibilidad con versiones anteriores. Utilice en su lugar sp_grantdbaccess.

Sintaxis
sp_adduser [ @loginame = ] 'login'
    [ , [ @name_in_db = ] 'user' ]
    [ , [ @grpname = ] 'group' ]

Argumentos
[@loginame =] 'login'

Es el nombre de inicio de sesión del usuario. El argumento login es de tipo sysname y no tiene valor predeterminado. login debe ser un inicio de sesión de Microsoft® SQL Server™ o un usuario de Microsoft Windows NT® existente.

[@name_in_db =] 'user'

Es el nombre del nuevo usuario. El argumento user es de tipo sysname y su valor predeterminado es NULL. Si no se especifica user, el nombre del usuario toma el valor de login de forma predeterminada. Al especificar user se da al nuevo usuario un nombre en la base de datos diferente del Id. de inicio de sesión de SQL Server.

[@grpname =] 'group'

Es el grupo o función del que el nuevo usuario forma parte automáticamente. El argumento group es de tipo sysname y su valor predeterminado es NULL. group debe ser un grupo o función válido en la base de datos actual. Microsoft SQL Server versión 7.0 utiliza funciones en vez de grupos.

Valores del código de retorno
0 (correcto) o 1 (error)

Observaciones
Los nombres de usuario de SQL Server pueden contener entre 1 y 128 caracteres y pueden incluir letras, símbolos y números. Sin embargo, los nombres de usuario no pueden:

Contener un carácter de barra diagonal inversa (\).


Ser NULL o una cadena vacía ('').
Después de agregar un usuario, utilice las instrucciones GRANT, DENY y REVOKE para definir los permisos que controlan las actividades del usuario.

Para presentar la lista de los nombres de inicio de sesión válidos, utilice sp_helplogin.

Para presentar la lista de los nombres de función válidos, utilice sp_helprole. Cuando se especifica una función, el usuario obtiene automáticamente los permisos definidos para esa función. Si no se especifica una función, el usuario obtiene los permisos concedidos a la función predeterminada public. Para agregar un usuario a una función, debe especificarse un valor para username (username puede ser el mismo que login_id.)

Para tener acceso a una base de datos, se debe conceder acceso a un inicio de sesión mediante sp_adduser o sp_grantdbaccess, o debe existir la cuenta de seguridad guest en la base de datos.

sp_adduser no se puede ejecutar en una transacción definida por el usuario.

Permisos
Sólo dbo y los miembros de la función fija de servidor sysadmin pueden ejecutar sp_adduser.

Ejemplos
A. Agregar un usuario
Este ejemplo agrega el usuario Victoria a la función fort_mudge existente en la base de datos actual, con el inicio de sesión existente Victoria.

EXEC sp_adduser 'Victoria', 'Victoria', 'fort_mudge'

B. Agregar un nombre de usuario con el mismo Id. de inicio de sesión
Este ejemplo agrega el nombre de usuario predeterminado Margaret a la base de datos actual para el inicio de sesión Margaret, que pertenece a la función predeterminada public.

EXEC sp_adduser 'Margaret'

C. Agregar un usuario que utiliza un nombre de usuario diferente
Este ejemplo agrega el inicio de sesión Haroldq a la base de datos actual con el nombre de usuario Harold, que pertenece a la función fort_mudge.

EXEC sp_adduser 'Haroldq', 'Harold', 'fort_mudge'

sp_addlogin
Crea un nuevo inicio de sesión de Microsoft® SQL Server™ que permite a un usuario conectarse a una instancia de SQL Server mediante la Autenticación de SQL Server.

Sintaxis
sp_addlogin [ @loginame = ] 'login'
    [ , [ @passwd = ] 'password' ]
    [ , [ @defdb = ] 'database' ]
    [ , [ @deflanguage = ] 'language' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryption_option' ]

Argumentos
[@loginame =] 'login'

Es el nombre del inicio de sesión. login es de tipo sysname y no tiene ningún valor predeterminado.

[@passwd =] 'password'

Es la contraseña de inicio de sesión. password es de tipo sysname y su valor predeterminado es NULL. Después de haber ejecutado sp_addlogin, password se cifra y se almacena en las tablas del sistema.

[@defdb =] 'database'

Es la base de datos predeterminada del inicio de sesión (la base de datos a la que se conecta el inicio de sesión después de haber iniciado la sesión). database es de tipo sysname y su valor predeterminado es master.

[@deflanguage =] 'language'

Es el idioma predeterminado asignado cuando un usuario inicia la sesión en SQL Server. language es de tipo sysname y su valor predeterminado es NULL. Si no se especifica language, este valor se establece en el idioma predeterminado actual del servidor (definido por la variable de configuración default language de sp_configure). El cambio del idioma predeterminado del servidor no cambia el idioma predeterminado de los inicios de sesión existentes. language sigue igual que el idioma predeterminado utilizado cuando se agregó el inicio de sesión.

[@sid =] sid

Especifica el número de identificación de seguridad (SID). sid es de tipo varbinary(16) y su valor predeterminado es NULL. Si sid es NULL, el sistema genera un SID para el nuevo inicio de sesión.  A pesar de la utilización del tipo de datos varbinary, los valores que no sean NULL deben tener exactamente 16 bytes de longitud y no deben ser valores que ya existan. SID es útil, por ejemplo, cuando se cifran o mueven inicios de sesión de SQL Server desde un servidor a otro y se desea que los inicios de sesión tengan el mismo SID entre los servidores.

[@encryptopt =] 'encryption_option'

Especifica si se debe cifrar la contraseña cuando se almacena en las tablas del sistema. encryption_option es de tipo varchar(20) y puede ser uno de los valores siguientes.

Valor Descripción
NULL La contraseña se cifra. Éste es el valor predeterminado.
skip_encryption La contraseña ya está cifrada. SQL Server debe almacenar el valor sin volver a cifrar la contraseña.
skip_encryption_old La contraseña proporcionada se cifró mediante una versión anterior de SQL Server. SQL Server debe almacenar el valor sin volver a cifrar la contraseña. Esta opción sólo se proporciona para permitir la actualización.


Valores del código de retorno
0 (correcto) o 1 (error)

Observaciones
Los inicios de sesión y las contraseñas de SQL Server pueden contener de 1 a 128 caracteres, incluidos letras, símbolos y números. Sin embargo, los inicios de sesión no pueden:

Contener una barra diagonal inversa (\).


Ser un nombre reservado de inicio de sesión, por ejemplo sa o public, o uno que ya exista.


Ser NULL o una cadena vacía ('').
Si se proporciona el nombre de una base de datos predeterminada, puede conectarse a la base de datos especificada sin ejecutar la instrucción USE. Sin embargo, no puede usar la base de datos predeterminada hasta que no obtenga acceso a esa base de datos del propietario de ésta (utilizando sp_adduser o sp_addrolemember) o bien de sp_addrole.

El número de SID es el único número de identificación de usuario de Microsoft Windows NT®. Se garantiza que el SID es único para cada usuario de un dominio de Windows NT. SQL Server utiliza automáticamente el SID de Windows NT para identificar a los usuarios y grupos de Windows NT y genera un SID para los inicios de sesión de SQL Server.

La utilización de skip_encryption para suprimir el cifrado de contraseña es útil si la contraseña ya está en formato cifrado cuando se agrega el inicio de sesión a SQL Server. Si la contraseña se ha cifrado por medio de una versión anterior de SQL Server, utilice skip_encryption_old.

sp_addlogin no se puede ejecutar desde una transacción definida por el usuario.

En esta tabla se muestran varios procedimientos almacenados que pueden utilizarse junto con sp_addlogin.

Procedimiento almacenado Descripción
sp_grantlogin Agrega un usuario o grupo de Windows NT
sp_password Cambia la contraseña de un usuario.
sp_defaultdb Cambia la base de datos predeterminada de un usuario.
sp_defaultlanguage Cambia el idioma predeterminado de un usuario.


Permisos
Sólo los miembros de las funciones fijas de servidor sysadmin o securityadmin pueden ejecutar sp_addlogin.

Ejemplos
A. Crear un Id. de inicio de sesión sin contraseña ni base de datos predeterminada principal
En este ejemplo se crea un inicio de sesión de SQL Server para el usuario Victoria, sin especificarse una contraseña ni una base de datos predeterminada.

EXEC sp_addlogin 'Victoria'

B. Crear un Id. de inicio de sesión y una base de datos predeterminada
Este ejemplo crea un inicio de sesión SQL Server para el usuario Albert, con una contraseña "food" y una base de datos predeterminada corporate.

EXEC sp_addlogin 'Albert', 'food', 'corporate'

C. Crear un Id. de inicio de sesión con un idioma predeterminado diferente
En este ejemplo se crea un inicio de sesión de SQL Server para el usuario Claire Picard, con la contraseña "caniche", la base de datos predeterminada public_db y el idioma predeterminado "French".

EXEC sp_addlogin 'Claire Picard', 'caniche', 'public_db', 'french'

D. Crear un Id. de inicio de sesión con un SID específico
En este ejemplo se crea un inicio de sesión de SQL Server para el usuario Michael, con la contraseña "chocolate", la base de datos predeterminada pubs, el idioma predeterminado "us_english" y el SID 0x0123456789ABCDEF0123456789ABCDEF.

EXEC sp_addlogin 'Michael', 'chocolate', 'pubs', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF

E. Crear un Id. de inicio de sesión y no cifrar la contraseña
En este ejemplo se crea un inicio de sesión de SQL Server para el usuario Margaret con la contraseña "Rose" en Server1, se extrae la contraseña cifrada y, luego, se agrega el inicio de sesión del usuario Margaret a Server2 utilizando la contraseña anteriormente cifrada, pero sin volver a cifrar la contraseña. El usuario Margaret puede entonces iniciar sesión en Server2 mediante la contraseña Rose.

-- Server1
EXEC sp_addlogin Margaret, Rose

--Results
New login created.

-- Extract encrypted password for Margaret
SELECT CONVERT(VARBINARY(32), password)
   FROM syslogins
   WHERE name = 'Margaret'

--Results
------------------------------------------------------------------
0x2131214A212B57304F5A552A3D513453

(1 row(s) affected)

-- Server2
EXEC sp_addlogin 'Margaret', 0x2131214A212B57304F5A552A3D513453,
   @encryptopt = 'skip_encryption'

5
SQL Server / Re: Sql - Expetos
« en: Martes 10 de Agosto de 2004, 17:37 »
Aqui esta  
declare @cadena varchar(30)
set @cadena='micorreod@yahoo.com.cl'
select substring( @cadena,  charindex('@',@cadena), len(@cadena)+1-charindex('@',@cadena))


Atte
Alexis Salinas R  :hola:

6
ASP / Re: Pregunta Sobre Correo Electronico
« en: Miércoles 4 de Agosto de 2004, 20:25 »
De darte error manda el codigo del error, y ve log de errores del SMTP.



dim omail
set oMail=server.CreateObject("CDONTS.NewMail")


oMail.From    = "blalal@midominio"
oMail.To    = "destino"
oMail.Subject    = "Asunto"
oMail.Body    = "Cuerpo del mensaje"
oMail.Send
   
If err.number <> 0 Then
   Response.redirect("errores.asp")
   Response.Flush
   Response.end
else
   Response.redirect("Gracias.asp")
   Response.Flush
   Response.end
End If

Atte
Alexis Salinas R

7
Visual Basic 6.0 e inferiores / Re: Cambiar El Codigo
« en: Viernes 23 de Julio de 2004, 18:20 »
que codigo????

8
A ver si entiendo bien, si alguien ingresa a la aplicacion por primera vez
debe pedir datos.

Pero si ingresa otra persona despues en el mismo pc no lo debe pedir?


Si es esto ve las opciones de escribir en el registro de Windows o como leer grabar archivos ini.


Aqui va como un ejemplo de la manipulacion del Registro y lo de los ini
es trabajar con Archivos de texto  :whistling:

 :hola:

9
C# / Re: !!!trabajar Con Números Decimales O Dobles
« en: Jueves 15 de Julio de 2004, 21:01 »
Se si te sirve, si no muestra el codigo para ver!!!
<%@ Page Language="C#" %>
<script runat="server">
    void Page_Load(object sender, EventArgs e) {
            System.Double valor1=0.5554;
            System.Double valor2 =1547;
            System.Double resul;
            resul=valor2/valor1;
            TextBox1.Text=resul.ToString();
    }
</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
     </form>
</body>
</html>
 :hola:

10
C# / Re: Datagrid Y Actualización De Datos
« en: Jueves 15 de Julio de 2004, 20:55 »
Manda el codigo para ver!!!
 :whistling:

11
Visual Basic 6.0 e inferiores / Re: Sql
« en: Jueves 15 de Julio de 2004, 20:12 »
Que necesitas?


Informacion de Crear procedimientos?
En SQL Server, Oracle, Interbase...?

Como llamar esos procedimientos en VB6?

Favor da mas detalles.


Atte
Alexis Salinas r

13
Visual Basic 6.0 e inferiores / Re: Ayuda: Llamar Una Aplicacion En Un Boton
« en: Jueves 15 de Julio de 2004, 20:05 »
Busca lo siguiente

Shell o  Shellexecute,

ambas funciones ejecutan programas.


 :D

14
C# / Re: Activex
« en: Jueves 15 de Julio de 2004, 19:07 »
:P  Estimado JuanK.

Podemos conversar mucho del tema, pero la cosa como yo la veo es muy simple;
"Para que Hacer las cosas de nuevo"
 .Net va por la compatibilidad y la reutilizacion, no por reingeneria.

Pero esta conversacion seria para largo.

Atte
Alexis Salinas R.


Aqui va me email quiero hacerte unas preguntas respecto al foro
as_asar@hotmail.com

No se si ya la viste pero si no
http://lab.msdn.microsoft.com/express/

15
C# / Re: !!sumar Meses A Una Fecha!
« en: Jueves 15 de Julio de 2004, 18:47 »
Aqui van unos ejemplos
<%@ Page Language="C#" %>
<script runat="server">
    void Page_Load(object sender, EventArgs e)
    {
DateTime Fecha = System.DateTime.Now; //Fecha queda ( Fecha del dia)
TextBox1.Text= Fecha.Date.ToString();
TextBox2.Text=Fecha.AddMonths(2).Date.ToString();  //Agrega 2 meses TextBox3.Text=Fecha.Date.AddMonths(-3).Date.ToString(); //Resta 3 meses    TextBox4.Text=Fecha.Date.AddDays(10).Date.ToString(); //Resta 10 dias

}

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
        <br />
        <asp:TextBox id="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:TextBox id="TextBox3" runat="server"></asp:TextBox>
        <br />
        <asp:TextBox id="TextBox4" runat="server"></asp:TextBox>
    </form>
</body>
</html>

16
SQL Server / Re: Urgente...mostrar Tablas Y Tipo De Datos
« en: Lunes 12 de Julio de 2004, 23:22 »
Nombre de Tablas
select  name from sysobjects where type='U'

Datos de la Tabla
sp_help nombretabla

 :D

17
C# / Re: Activex
« en: Lunes 12 de Julio de 2004, 23:17 »
;)  Lo siento JuanK, pero la filosofia de net, no es esa  :P
Para que hacer la rueda dos veces si ya esta hecho, utilizalo.

Net te permite convivir con varias versiones de las mismas dll o activeX,
no es por nada.

El problema es que debes agregar a las referencias de tu proyecto.

aqui va un ejemplo:
Genere en VB6 un ocx(va igual para las dll) , es un Textbox que cambia
de color al tomar el foco.

despues la agrege como referencia al proyecto.

este es el path en el cual lo ejecute yo(por si acaso)
C:\Documents and Settings\Administrador\Mis documentos\Visual Studio Projects

Cualquier cosa aviza!!!
 :hola:

18
VB .NET / Re: No Reconoce Un Namespace.....
« en: Lunes 12 de Julio de 2004, 22:54 »
:D

Debes agregarlo a las referencias, no se puede acceder en forma directa
 ;)  o no la se!!! :P

Si tienes Vstudio Agregar a las referencias la System.DirectoryServices.dll

Si tienes WebMatrix o similares, debes Agregarlo a los  componentes System.DirectoryServices.dll

Despues de agregarlo podras
podras  realizar  el imports system.DirectoryServices

Si lo haces a lo bruto, solo con codigo
debes agregar la System.DirectoryServices.dll
 a la compilacion...


 :hola:

19
C# / Re: Mensaje De Error En C#
« en: Viernes 2 de Julio de 2004, 20:28 »
Yo creo que SI.   :P
Hay casos donde uno necesita una mano en forma urgente, y en foro
puede que no te respondan nunca!!!

Si no encuentras la respuesta por lo menos encontraras
alternativas!!!  :whistling:

 :hola:

20
C# / Re: Mensaje De Error En C#
« en: Jueves 1 de Julio de 2004, 20:36 »
:P  Creo que me entendiste mal, o tal vez yo me explese mal.
De todas formar sorry!!!  :whistling:

Lynda, la cosas son asi, para que nos entendamos.

cuando alguien me dice que desarrolla en c# , y nada mas asumo como
la mayoria de los desarrolladores que hablan de aplicaciones de Windows, distintas de Aplicaciones , ambas tienen sus ventajas y restricciones.

Y ademas se asume que con Vstudio, pero si lo trabajas con Web Matrix u otro editor,  se debe tener otras consideraciones.

Este es mi correo  as_asar@hotmail.com,  puedes (y pueden ) mandarme consultas en forma directa para mayor rapidez en las eventuales respuestas
.


ahora  ve este codigo


   <body MS_POSITIONING="GridLayout">
      <form id="Form1" method="post" runat="server">
         <asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 136px; POSITION: absolute; TOP: 104px"
            runat="server" Width="168px" Height="32px"></asp:TextBox>
         <asp:RequiredFieldValidator id="RequiredFieldValidator1" style="Z-INDEX: 102; LEFT: 320px; POSITION: absolute; TOP: 112px"
            runat="server" Width="88px" Height="16px" ErrorMessage="Error" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
<asp:imagebutton id="ImageButton1" runat="server" ImageUrl="img/i_bingresar.gif">
      </form>
   </body>


Tiene un Textobox y un RequiredFieldValidator, este codigo solo permite que se envier el formulario hasta que se ingrese un valor, pero eso no validad que valor sea numero, eventualmente puedes controlar que el valor ingresado sea de tipo que tu quieres en click del boton


private void ImageButton1_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
   long Valor;
   try
   {
   Valor=long.Parse(TextBox1.Text);
   }
   catch
   {
      TextBox1.Text="";
   }
   
}


Puedes activar la validacion de parte del cliente en javascript, pero eso un tema aun mas largo.


Favor disculta si te molesto o te parecieron escesivos mis comentarios.

 :hola:

21
C# / Re: Mensaje De Error En C#
« en: Miércoles 30 de Junio de 2004, 22:35 »
:angry:  Favor revisa la seccion como hacer preguntas..... :P


Si tienes Web matriz, significa que es un proyecto Web, por lo cual
cambia todo el panorama...  :D

Para que el control de errores si puedes exigir que te ingresen numero, y asegurarte que el error no pase,  puede ser atravez de javascript a con los objetos de Net "RequiredFieldValidator" o "RegularExpressionValidator".




 :hola:

22
Visual Basic 6.0 e inferiores / Re: Consulta Por Tablas
« en: Miércoles 30 de Junio de 2004, 01:25 »
puedes mandar esta consulta
y si existe el nombre te tabla te retorno un registro
select name from sysobjects where type='U' and name='nombretanla'

para el update

te recomiendo leer el manual de sql  :P
la explicacion es muy buena.

pero si igual necesitas ayuda

as_asar@hotmail.com


 :hola:

atte
alexis salinas

23
C# / Re: Mensaje De Error En C#
« en: Miércoles 30 de Junio de 2004, 01:10 »
int  valor1;
int valor2;
long resultado;
try
{
   resultado=valor1/valo2;
}
catch(Exception error)
{
   MessageBox.Show(error.Message,"Error en division" );
}

Atte
Alexis Salinas

24
ASP / Re: Asp & Sql Server 2000
« en: Martes 22 de Junio de 2004, 23:35 »
Estimado es simple..


Ya sabes mandar el Insert?
Verdad  :lol:

Bueno suponiendo que si

sql ="Insert tabla  campo2  values('xxxxxxxxxx')"

Ahora solo debes mandar el comando
SET IDENTITY_INSERT products ON
en la misma linea del insert


algo asi
SQL="SET IDENTITY_INSERT tabla ON "
sql =sql + " Insert tabla (campo_id  , campo2) values (valorquequieres,'xxxxxxxxxx')"


Y listo..


atte
Alexis Salinas R

25
ASP .NET / Re: Web.config
« en: Martes 22 de Junio de 2004, 23:20 »
:(  Lamentablemente , se debe crear una aplicacion que realize dicha operacion, modificar el Web.config.
Bueno mas que una aplicacion unas lineas de codigo que lean el xml y busquen la entrada correspondiente y graben.

Si sabes como leear y grabar atravez de un dataset, ya sabes como modificar el Web.config.

 :P

Páginas: [1] 2