lunes, 31 de agosto de 2020

Establecer color hexadecimal a label xamarin forms

 Hexadecimal:

                    Label LabelGen = new Label

                    {

                        Text = "Text del label",

                        FontSize = 12,

                        TextColor = Color.FromHex("#122E3D"),

                    };


Enumerador de color:

                Label labelGen = new Label

                {

                     Text = "Text del label",

                    TextColor = Color.Blue,

                };


jueves, 20 de agosto de 2020

Entity framework code-first null clave externa

 

public class User
{
    public int Id { get; set; }
    public int? CountryId { get; set; }
    public virtual Country Country { get; set; }
}

lunes, 17 de agosto de 2020

ACTUALIZAR ESTADISTICAS SQL (TODAS LAS TABLAS)

 ACTUALIZAR ESTADISTICAS SQL (TODAS LAS TABLAS)

SET NOCOUNT  ON

DECLARE  @SQLcommand NVARCHAR(512),

         @Table      SYSNAME

 

DECLARE curAllTables CURSOR  FOR

SELECT table_schema + '.[' + table_name + ']'

FROM   information_schema.tables

WHERE  TABLE_TYPE = 'BASE TABLE'

order by table_name

 

OPEN curAllTables

 

FETCH NEXT FROM curAllTables

INTO @Table

 

WHILE (@@FETCH_STATUS = 0)

  BEGIN

    PRINT N'UPDATING STATISTICS FOR TABLE: ' + @Table

    SET @SQLcommand = 'UPDATE STATISTICS ' + @Table + ' WITH FULLSCAN'

    EXEC sp_executesql @SQLcommand

     

    FETCH NEXT FROM curAllTables

    INTO @Table

  END

CLOSE curAllTables

DEALLOCATE curAllTables

SET NOCOUNT  OFF

GO


Cómo establecer nivel de compatibilidad para SQL Server 2008 o 2005 Database

 Cómo establecer nivel de compatibilidad para SQL Server 2008 o 2005 Database

[Microsoft][ODBC SQL Server Driver][SQL Server][Msg 4147, Level 15, State 1, Line 4] The query uses non-ANSI outer join operators (“*=” or “=*”). To run this query without modification, please set the compatibility level for current database to 80, using the SET COMPATIBILITY_LEVEL option of ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions

of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes.

 

 

For example, SQL query below is not valid:

SELECT o.name FROM sys.objects o, sys.views v WHERE o.object_id *= v.object_id;

And should be replaced with the following code:

SELECT o.name FROM sys.objects o LEFT JOIN sys.views v ON o.object_id = v.object_id;

Or the following abbreviated inner join statement:

SELECT o.name FROM sys.objects o, sys.views v WHERE o.object_id = v.object_id;

For administrator who can’t change the code, the easiest workaround is to revert the compatibility level of the database in order to provide the backward compatibility to old-style joins. sp_dbcmptlevel stored procedures (deprecated) or Transact-SQL can be used to set certain (partially, not all) database behaviors to be compatible with the earlier version of SQL Server. This MSDN article provides overview on what behaviors are changed on each compatibility level.

Version of SQL Server that can be reverted to can be one of the following:

60 = SQL Server 6.0

65 = SQL Server 6.5

70 = SQL Server 7.0

80 = SQL Server 2000

90 = SQL Server 2005

100 = SQL Server 2008

Note: Compatibility level 60, 65, and 70 no longer available in SQL Server 2008. And future version of SQL Server will support only two (2) prior version of backward compatibility. A database containing an indexed view cannot be changed to a compatibility level lower than 80. Do also take note that when a database is set to backward-compatibility mode, some of the new functionalities may be lost, such as SQL CLR support and SSMS diagrams for the database. Beside, the compatibility mode affects behaviors only for the specified database, not for the entire server.

Steps to Change and Set Compatibility Level of A Database in SQL Server

The following SQL commands can be issued in SQL Server Management Studio Query window. Remember to execute Go after each command.

  1. Optional: Set the database to single user access mode:
    ALTER DATABASE database_name SET SINGLE_USER;
  2. Set the database compatibility level to one of the earlier version stated above:
    Transact-SQL Method
    ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }
    For example,
  3. ALTER DATABASE my_db SET COMPATIBILITY_LEVEL = 80
    sp_dbcmptlevel Stored Procedure Method
    EXEC sp_dbcmptlevel database_name, compatibility_level value;
    For example,
    EXEC sp_dbcmptlevel my_db, 90;
  4. Optional: Put back the database in multiuser access mode:
    ALTER DATABASE database_name SET MULTI_USER;

Discurso de Steve Jobs en la Universidad de Stanford 2005

 En este discurso Steve nos cuenta 3 interesantes e imperdibles historias, una de ellas relacionada con la muerte.

Discurso de graduación de bachillerato para llorar

https://www.youtube.com/watch?v=1p_vZPe6Fmw


Discurso de Steve Jobs en la Universidad de  Stanford 2005

Gracias.

Tengo el honor de estar hoy aquí con vosotros en vuestro comienzo en una de las mejores universidades del mundo. La verdad sea dicha, yo nunca me gradué.

A decir verdad, esto es lo más cerca que jamás he estado de una graduación universitaria.

Hoy os quiero contar tres historias de mi vida. Nada especial. Sólo tres historias.

La primera historia versa sobre “conectar los puntos”.

Dejé la Universidad de Reed tras los seis primeros meses, pero después seguí vagando por allí otros 18 meses, más o menos, antes de dejarlo del todo. Entonces, ¿por qué lo dejé?

Comenzó antes de que yo naciera.

Mi madre biológica era una estudiante joven y soltera, y decidió darme en adopción. Ella tenía muy claro que quienes me adoptaran tendrían que ser titulados universitarios, de modo que todo se preparó para que fuese adoptado al nacer por un abogado y su mujer.

Solo que cuando yo nací decidieron en el último momento que lo que de verdad querían era una niña.

Así que mis padres, que estaban en lista de espera, recibieron una llamada a medianoche preguntando:

“Tenemos un niño no esperado; ¿lo queréis?”

“Por supuesto”, dijeron ellos.

Mi madre biológica se enteró de que mi madre no tenía titulación universitaria, y que mi padre ni siquiera había terminado el bachillerato, así que se negó a firmar los documentos de adopción. Sólo cedió, meses más tarde, cuando mis padres prometieron que algún día yo iría a la universidad.

Y 17 años más tarde fui a la universidad. Pero de forma descuidada elegí una universidad que era casi tan cara como Stanford, y todos los ahorros de mis padres, de clase trabajadora, los estaba gastando en mi matrícula.

Después de seis meses, no le veía propósito alguno. No tenía idea de qué quería hacer con mi vida, y menos aún de cómo la universidad me iba a ayudar a averiguarlo.

Y me estaba gastando todos los ahorros que mis padres habían conseguido a lo largo de su vida. Así que decidí dejarlo, y confiar en que las cosas saldrían bien.

En su momento me dio miedo, pero en retrospectiva fue una de las mejores decisiones que nunca haya tomado.

En el momento en que lo dejé, ya no fui más a las clases obligatorias que no me interesaban y comencé a meterme en las que parecían interesantes. No era idílico. No tenía dormitorio, así que dormía en el suelo de las habitaciones de mis amigos, devolvía botellas de Coca Cola por los 5 céntimos del envase para conseguir dinero para comer, y caminaba más de 10 Km los domingos por la noche para comer bien una vez por semana en el templo de los Hare Krishna.

Me encantaba.

Y muchas cosas con las que me fui topando al seguir mi curiosidad e intuición resultaron no tener precio más adelante.

Os daré un ejemplo.

En aquella época la Universidad de Reed ofrecía la que quizá fuese la mejor formación en caligrafía del país. En todas partes del campus, todos los póster, todas las etiquetas de todos los cajones, estaban bellamente caligrafiadas a mano.

Como ya no estaba matriculado y no tenía clases obligatorias, decidí atender al curso de caligrafía para aprender cómo se hacía.

Aprendí cosas sobre el serif y tipografías sans serif, sobre los espacios variables entre letras, sobre qué hace realmente grande a una gran tipografía.

Era sutilmente bello, histórica y artísticamente, de una forma que la ciencia no puede capturar, y lo encontré fascinante. Nada de esto tenía ni la más mínima esperanza de aplicación práctica en mi vida. Pero diez años más tarde, cuando estábamos diseñando el primer ordenador Macintosh, todo eso volvió a mí.

Y diseñamos el Mac con eso en su esencia. Fue el primer ordenador con tipografías bellas. Si nunca me hubiera dejado caer por aquél curso concreto en la universidad, el Mac jamás habría tenido múltiples tipografías, ni caracteres con espaciado proporcional. Y como Windows no hizo más que copiar el Mac, es probable que ningún ordenador personal los tuviera ahora. Si nunca hubiera decidido dejarlo, no habría entrado en esa clase de caligrafía y los ordenadores personales no tendrían la maravillosa tipografía que poseen.

Por supuesto, era imposible conectar los puntos mirando hacia el futuro cuando estaba en clase, pero fue muy, muy claro al mirar atrás diez años más tarde.

Lo diré otra vez: no puedes conectar los puntos hacia adelante, sólo puedes hacerlo hacia atrás. Así que tenéis que confiar en que los puntos se conectarán alguna vez en el futuro. Tienes que confiar en algo, tu instinto, el destino, la vida, el karma, lo que sea.

Esta forma de actuar nunca me ha dejado tirado, y ha marcado la diferencia en mi vida.

Mi segunda historia es sobre el amor y la pérdida.

Tuve suerte — supe pronto en mi vida qué era lo que más deseaba hacer. Woz y yo creamos Apple en la cochera de mis padres cuando tenía 20 años. Trabajamos mucho, y en diez años Apple creció de ser sólo nosotros dos a ser una compañía valorada en 2 mil millones de dólares y 4.000 empleados.

Hacía justo un año que habíamos lanzado nuestra mejor creación — el Macintosh — un año antes, y hacía poco que había cumplido los 30.

Y me despidieron.

¿Cómo te pueden echar de la empresa que tú has creado?

Bueno, mientras Apple crecía contratamos a alguien que yo creía muy capacitado para llevar la compañía junto a mí, y durante el primer año, más o menos, las cosas fueron bien. Pero luego nuestra perspectiva del futuro comenzó a ser distinta y finalmente nos apartamos completamente. Cuando eso pasó, nuestra Junta Directiva se puso de su parte.

Así que a los 30 estaba fuera. Y de forma muy notoria.

Lo que había sido el centro de toda mi vida adulta se había ido y fue devastador.

Realmente no supe qué hacer durante algunos meses. Sentía que había dado de lado a la anterior generación de emprendedores, que había soltado el testigo en el momento en que me lo pasaban. Me reuní con David Packard [de HP] y Bob Noyce [Intel], e intenté disculparme por haberlo fastidiado tanto. Fue un fracaso muy notorio, e incluso pensé en huir del valle [Silicon Valley].

Pero algo comenzó a abrirse paso en mí — aún amaba lo que hacía. El resultado de los acontecimientos en Apple no había cambiado eso ni un ápice. Había sido rechazado, pero aún estaba enamorado. Así que decidí comenzar de nuevo.

No lo vi así entonces, pero resultó ser que el que me echaran de Apple fue lo mejor que jamás me pudo haber pasado.

Había cambiado el peso del éxito por la ligereza de ser de nuevo un principiante, menos seguro de las cosas. Me liberó para entrar en uno de los periodos más creativos de mi vida. Durante los siguientes cinco años, creé una empresa llamada NeXT, otra llamada Pixar, y me enamoré de una mujer asombrosa que se convertiría después en mi esposa.

Pixar llegó a crear el primer largometraje animado por ordenador, Toy Story, y es ahora el estudio de animación más exitoso del mundo. En un notable giro de los acontecimientos, Apple compró NeXT, yo regresé a Apple y la tecnología que desarrollamos en NeXT es el corazón del actual renacimiento de Apple. Y Laurene y yo tenemos una maravillosa familia.

Estoy bastante seguro de que nada de esto habría ocurrido si no me hubieran echado de Apple. Creo que fue una medicina horrible, pero supongo que el paciente la necesitaba. A veces, la vida te da en la cabeza con un ladrillo. No perdáis la fe. Estoy convencido de que la única cosa que me mantuvo en marcha fue mi amor por lo que hacía. Tenéis que encontrar qué es lo que amáis. Y esto vale tanto para vuestro trabajo como para vuestros amantes.

El trabajo va a llenar gran parte de vuestra vida, y la única forma de estar realmente satisfecho es hacer lo que consideréis un trabajo genial. Y la única forma de tener un trabajo genial es amar lo que hagáis. Si aún no lo habéis encontrado, seguid buscando.

No os conforméis.

Como en todo lo que tiene que ver con el corazón, lo sabréis cuando lo hayáis encontrado. Y como en todas las relaciones geniales, las cosas mejoran y mejoran según pasan los años. Así que seguid buscando hasta que lo encontréis.

No os conforméis.

Mi tercera historia es sobre la muerte.

Cuando tenía 17 años, leí una cita que decía algo como: “Si vives cada día como si fuera el último, algún día tendrás razón”. Me marcó, y desde entonces, durante los últimos 33 años, cada mañana me he mirado en el espejo y me he preguntado: “Si hoy fuese el último día de mi vida, ¿querría hacer lo que voy a hacer hoy?” Y si la respuesta era “No” durante demasiados días seguidos, sabía que necesitaba cambiar algo.

Recordar que voy a morir pronto es la herramienta más importante que haya encontrado para ayudarme a tomar las grandes decisiones de mi vida.

Porque prácticamente todo, las expectativas de los demás, el orgullo, el miedo al ridículo o al fracaso se desvanece frente a la muerte, dejando sólo lo que es verdaderamente importante.

Recordar que vas a morir es la mejor forma que conozco de evitar la trampa de pensar que tienes algo que perder. Ya estás desnudo. No hay razón para no seguir tu corazón.

Hace casi un año me diagnosticaron cáncer.

Me hicieron un chequeo a las 7:30 de la mañana, y mostraba claramente un tumor en el páncreas. Ni siquiera sabía qué era el páncreas. Los médicos me dijeron que era prácticamente seguro un tipo de cáncer incurable y que mi esperanza de vida sería de tres a seis meses. Mi médico me aconsejó que me fuese a casa y dejara zanjados mis asuntos, forma médica de decir: prepárate a morir.

Significa intentar decirle a tus hijos en unos pocos meses lo que ibas a decirles en diez años. Significa asegurarte de que todo queda atado y bien atado, para que sea tan fácil como sea posible para tu familia. Significa decir adiós.

Viví todo un día con ese diagnóstico.

Luego, a última hora de la tarde, me hicieron una biopsia, metiéndome un endoscopio por la garganta, a través del estómago y el duodeno, pincharon el páncreas con una aguja para obtener algunas células del tumor. Yo estaba sedado, pero mi esposa, que estaba allí, me dijo que cuando vio las células al microscopio el médico comenzó a llorar porque resultó ser una forma muy rara de cáncer pancreático que se puede curar con cirugía.

Me operaron, y ahora estoy bien. Esto es lo más cerca que he estado de la muerte, y espero que sea lo más cerca que esté de ella durante algunas décadas más. Habiendo vivido esto, ahora os puedo decir esto con más certeza que cuando la muerte era un concepto útil, pero puramente intelectual:

Nadie quiere morir.

Ni siquiera la gente que quiere ir al cielo quiere morir para llegar allí. Y sin embargo la muerte es el destino que todos compartimos. Nadie ha escapado de ella. Y así tiene que ser, porque la Muerte es posiblemente el mejor invento de la Vida. Es el agente de cambio de la Vida. Retira lo viejo para hacer sitio a lo nuevo.

Ahora mismo lo nuevo sois vosotros, pero dentro de no demasiado tiempo, de forma gradual, os iréis convirtiendo en lo viejo, y seréis apartados. Siento ser tan dramático, pero es bastante cierto. Vuestro tiempo es limitado, así que no lo gastéis viviendo la vida de otro.

No os dejéis atrapar por el dogma que es vivir según los resultados del pensamiento de otros.

No dejéis que el ruido de las opiniones de los demás ahogue vuestra propia voz interior.

Y lo más importante, tened el coraje de seguir a vuestro corazón y vuestra intuición.

De algún modo ellos ya saben lo que tú realmente quieres ser.

Todo lo demás es secundario.

Cuando era joven, había una publicación asombrosa llamada The Whole Earth Catalog, una de las biblias de mi generación. La creó un tipo llamado Stewart Brand no lejos de aquí, en Menlo Park y la trajo a la vida con su toque poético. Eran los últimos años 60, antes de los ordenadores personales y la autoedición, así que se hacía con máquinas de escribir, tijeras, y cámaras Polaroid. Era como Google con tapas de cartulina, 35 años de que llegara Google, era idealista, y rebosaba de herramientas claras y grandes conceptos. Stewart y su equipo sacaron varios números del The Whole Earth Catalog, y cuando llegó su momento, sacaron un último número.

Fue a mediados de los 70, y yo tenía vuestra edad.

En la contraportada de su último número había una fotografía de una carretera por el campo a primera hora de la mañana, la clase de carretera en la que podrías encontrarte haciendo autoestop si sois aventureros. Bajo ella estaban las palabras:

“Sigue hambriento. Sigue alocado”.

Era su último mensaje de despedida. Sigue hambriento. Sigue alocado.

Y siempre he deseado eso para mí. Y ahora, cuando os graduáis para comenzar de nuevo, os deseo eso a vosotros.

Seguid hambrientos. Seguid alocados.

Muchísimas gracias a todos.

Diferencias entre varchar y nvarchar en SQL Server

 ¿Cuál es la diferencia entre los dos, y cuán importante es la diferencia?


VARCHAR es la abreviación de variable-length character string.   Es una cadena de caracteres de texto que puede ser tan grande como el tamaño de página para la tabla de la base de datos. Los campos de tipo Varchar o NVarchar son de almacenamiento variable

El tamaño almacenado dependerá del valor que se quiere guardar, el número de caracteres sólo configura el tamaño máximo que este campo puede almacenar. 

Configuramos una tabla de la siguiente forma:

CampoVariable1 varchar(10),
CampoVariable2 nvarchar(10)

El tamaño almacenado dependerá del valor que se quiere guardar, el número de caracteres sólo configura el tamaño máximo que este campo puede almacenar. En el caso del CampoVariable1 el tamaño máximo será de 10 bytes, y en el caso del CampoVariable2 el tamaño máximo será de 20 bytes.

El tamaño de una página de tabla es 8.196 bytes, y no hay una fila de una tabla puede ser tener de 8.060 caracteres. Esto a su vez limita el tamaño máximo de un VARCHAR a 8000 caracateres

La "N" en NVARCHAR significa uNicode. Esencialmente, NVARCHAR no es más que un VARCHAR que soporta caracteres de dos bytes.  Lo que representara una longitud máxima de 4000 caracteres. Lo que significa tener la capacidad de almacenar caracteres especiales en este tipo de datos.  La diferencia clave entre los dos datos.

Resumamos las diferencias:
  1.          VARCHAR máxima longitud permitida: 8000 caracteres.  NVARCHAR máxima longitud permitida: 4000 caracteres.
  2.         VARCHAR almacena caracteres de un byte de tipo ASCII Extendido.  NVARCHAR Capacidad de almacenar caracteres de dos bytes.  Caracteres Unicode.
3.  Por lo anterior el almacenamiento en disco será el doble en NVARCHAR que VARCHAR.