jueves, 23 de julio de 2015

Administering microsofot SQL SERVER databases notas 20462


nota dia 1.


SYSTEM CONFIGURATION CHECKER , (CHECQAR LA PC)
INSTALL UPGRADE ADVISOR.
SERVIDOR DE SQL STAND ALONE INSTALLATIN OR CARACTERISTICA
FILE STREAM
inplace upgrade,planchado.
veritifcar que los servicios sql esten corriendo
en caso de que esten fallando setup bootstrap \lap
  
379

notas 2

integrated services
analizes services
reporting services

OTLP procesamiento para transacciones en linea.
insert , delete, update.
tipo de bases de datos.
select

llave primaria.
NORMALIZAR, separar la información en entidades.
y mantenerla unidas en relaciones.


notas  3.


proceso de ETL.
EXTRACT/TRANSFORM/LOAD
COPIAR O MOVER ENTRE SERVIDORES
EXPORTING QUERY DATA TO A FILE
IMPORTAING TABLA DATA FROM A FILE.
TRANSFORMAR ESTRUCTURA DE DATOS.

import and export wizard
sql server integration services
bulk copy program
BULK INSERT
OPEN ROWSET (BULK)
IMPROVING THE PERFORMANCE OF DATA TRANSFERS
DESHABILITARLOS CONSTRAINTS, INDICES Y TRIGGERS
MINIMIZAR LOS BLOQUEOS.
 CONSIDERAR EL USO DE TABLOCK TO SPEED UP THE IMPORT
SE RECOMIENDA QUE LA BASE DE DATOS ESTE BULK_LOGGED or SIMPLE

bulk insert , de archivo de txt a sql, pero no de sql a txt.
bcp si.

componente principales del SSIS
control flow
data flow


monitorear nuestro servidor SQL
performance monitor.

select * from sales.customer with (nolock).


set lock_timeout 2000
sp_lock para ver bloqueos.

select * from sys.dm_
sp_who
sp_who2 mas datos.
sp_helpdb, cuantas bases de datos.

profiler , toda la actividad //ocupa interfaz grafica
sql traces atraves de comando
profiler en pruebas
traces en servidor
tuning adivosr analiza carga de trabajo, contra una bd de datos.
recomendaciones de como mejorar querys.


modulo no. 9 , seguridad de SQL
autenticacion. validar que esa persona sea la que dice ser.
un password y un usuario.
autorizacion.que es lo que puede hacer con los recursos que tenemos.

autenticacion
windows
mixto

login ,... windows
login sql .. no es necesario que exista en windows.
login para un grupo.
opoliticas de password
son las politicas de AD
login a nivel de servidor

roles de servidor.
apartir de 2012 se pueden crear roles de servidor.
-login// conectarse servidor
-crear usuario//conectarse a la bd.
en la bd carpeta seguridad.
dbo /sysadmin
guest/deshabilitada predeterminada.
roles de bd.
*db_owner // puede hacer todo.
*db_backupoperator//respaldos de esa bd.
*db_datareader // select de todas las tablas y vistas
*db_datawriter // delete e insert, update.

roles , forma de agrupar usuarios para asignarle permisos.
permisos ( grant , deny, revoke)
siempre cuando se contrapongan permisos va a ser deny, la más
restrictiva la que gana.
los permisos a nivel de columna sobreescriben sobre las columnas.
execute.
databaseroles..
with grant// hacer select y otorgar permisos.
//revoke en cascada y quitar permisos a quienes se los había dado.
esquema sirve para agrupar objetos.
dentro de un esquema se pueden agrupar tablas.
dbo. esquema default.

role batman ---necesita tener permisos sobre esquemas.
servidor.db.schema.objeto

resolución de nombres. select * from ventas.t1
 si no tienes resolucion de nombre.
esquema busca primero en equema del usuario
 y luego en el default.
create server role application admin
go
alter server role application_admin
add member [adventureworks\database_manager]
go
GRANT ALTER ANY LOGIN TO APPLICATION_ADMIN;
GRANT VIew
------------------------------------------
auditoria acceso a datos y encriptar...
auditoria apartir 2008
-common criteria auditing
-SQL TRACE
-DML TRIGGERS
-SQL SERVER AUDIT

*COMMON CUANDO SE NECESITA ISO
*HABILITAR COMMON CRITERIA...
PROPIEDADES
SECURITY /HABILITAR C2 AUDIT TRACING
SECURITY /ENABLE COMMON CRITERIA

*SQL SERVER PROFILER IS USED TO TRACE
SENT TO THE SERVER AND ERRORS RETURNED
TRIGGERS DISPARADORES INSERT,DELETE O UPDATE.
-DML.--DATA MANIPULATION DATA.
-DDL ,CREATE ,ALTER, DROP (LANGUAGE DEFINATION), TABLAS.
LIMITACIONES..
PERFORMANCE IMPACT
DESHABILITAR TRIGGER
NO AUDITA SELECT
PUEDE HABER PROBLEMAS TRIGGER.

SQL SERVER AUDIT ( APARTIR DE 2008)
AUDIT, ESPECIFICACIONES, ACCIONES Y GRUPO DE ACCIONES.

security audit /bd
nombre, delay,(no puede registrar el evento)fai operation
---------------------------------------------------------
encriptar bases de datos
llave maestra //encriptan
transparent date encryption

create master key encryption by password =''
create certificate servercertificate with subject =''

create database encryption key
with algorithm =AES_128
encryption by server certificate servercertificate

alter database curso
set encryption on

backup certificate servercertificate to file='C:\SEG\SERVERCERT.CER'
WITH PRIVATE KEY (FILE ='C:\SEG\AW.PVK' , ENCRYPTION BY PASSWORD='')
integridad en las bases de datos.
planes de mantenimiento.

constrainst  -- validar un tipo de dato.

integridad fisica a nivel de disco.
integridad a nivel logico.
DBCC CHECKDB DATABASENAME
should be run frequently
opciones de reparación.
no es lo ideal, puede haber perdida de datos.
repair_rebuild
repair_allow_data_loss
single user, procesos para reparar con check dbcc
table scan
SQL SERVER READS ALL DATA PAGES
INDEX
  SQL SERVER USES INDEX PAGES TO FIND ROWS.
CLUSTERED INDEX Y NONCLUSTERED. EN UNA TABLA SOLO 1 INDICE TIPO CUSTLER.
999 INDICES NONCLUSTERED
INDICES OPTIMIZAR BÚSQUEDAS..
EN TABLAS PEQUEÑAS NO CONVIENE GENERAR INDICES.
MANTENIMIENTO.
SE FRAGMENTAN, SE SEPARA.

SYS.DM_DB_INDEX_PHYSICAL_STATS
QUE TAN FRAGMENTADO ESTA UN INDICE..
FRAMENTACION DE UN 30% HACIA ARRIBA , RECONSTRUIR.
FRAGMENTACION ES -30% REORGANIZAR.
REBUILD O REORGANIZER.




 

viernes, 17 de julio de 2015

error cuando trata de abrir un tipo de archivo bloqueado por la configuración de la directiva de Registro en Word

abrir opciones y luego ir a opciones/centro de confianza/ configuración de confianza/configuración de bloqueo de archivos y desde ahí desmarcar la versión.
https://support.microsoft.com/es-mx/kb/922849 mas amplia información para office 2013 y office 2007, este último tienes que entrar al registro de Windows.

jueves, 16 de julio de 2015

permisos para usar Debugger sql error SQL Debugging: Unable to start T-SQL Debugging. Could not attach to SQL Server process

Cuando no puedes usar el debugger de SQL  necesitas agregar este query en MSSQL. para poder tener permisos de sysadmin en security. SQL SERVER 2008

sp_addsrvrolemember 'Domain\Name', 'sysadmin'
 
habilitar puerto TCP 135.

jueves, 5 de marzo de 2015

ejemplo funcion lookup reporting services

para poder comparar la información dentro de dos bases de datos diferentes sin tener que utilizar un stored procedure en alguna de las dos bases de datos se puede utilizar La función LOOKUP.

esta función es muy buena cuando necesitas por ejemplo de una base enlazar a la información de otra base de datos.

la sintaxis es la siguiente:

Lookup(source_expression, destination_expression, result_expression, dataset)
Sus parámetros corresponden:


source_expression
(Variant) Una expresión que se evalúa en el ámbito actual y que especifica el nombre o la clave que se buscará. Por ejemplo, =Fields!ProdID.Value.
destination_expression
(Variant) Una expresión que se evalúa para cada fila de un conjunto de datos y que especifica el nombre o la clave que se hará coincidir. Por ejemplo, =Fields!ProductID.Value.
result_expression
(Variant) Una expresión que se evalúa para la fila del conjunto de datos donde source_expression = destination_expression y que especifica el valor que se recuperará. Por ejemplo, =Fields!ProductName.Value.
dataset
Una constante que especifica el nombre de un conjunto de datos del informe. Por ejemplo, "Productos".

 el ejemplo es que cuando quiero comparar las ventas que extraigo de una base de datos ajena a la base de datos contable quiero comparar que todo sea correcto.

las líneas blancas y las líneas rojas son diferentes bases de datos, los dataset están del lado izquierdo.

de hecho comparo tres bases de datos, para esto también verifico el scope o el agrupado del matrix de cada uno de ellos.
las expresiones quedan así.

=IIF(Fields!empresa.Value="CD0",Lookup(Fields!Tienda.Value,Fields!TIENDA.Value, Fields!DocTotalFC.Value, "cadacad"),Lookup(Fields!Tienda.Value,Fields!TIENDA.Value,Fields!DocTotalFC.Value, "cajaadv"))

en mi primer nivel esta la empresa, en el segundo es es la tienda.

Me funciono perfecto únicamente que ya a nivel de detalle tendría que tener otra consulta para hacerlo línea por línea el lookup.


Espero que este ejemplo le pueda servir a alguien.


 

miércoles, 3 de diciembre de 2014

RUNNING VALUE EJEMPLO acumulado reporting services 2008

Me surgio el problema de querer hacer un reporte de antigüedad de saldo de proveedores.

la respuesta fue utilizar la función runningvalue, esta funciona va generando el acumulado cuando tu ingresas los siguientes parámetros.

=RunningValue(Fields!Cost.Value, Sum, Nothing), en mi caso  lo que deseaba es que desde el valor de otro dataset me diera la sumatoria acumulativa del saldo en la fecha que indicaba el renglón.

para esto la variable del primer dataset lo colgué como text.

=Sum(Fields!saldo.Value, "DataSet1")

y enseguida
=reportitems!Textbox1.Value+runningvalue(fields!Saldo_Total.Value,sum,nothing) jalo el valor del textbox y lo voy sumando al valor sumado actual.


runninvalue no se puede usar con ordenación o filtros en el reporte, esta es una condicionante.


 


 

 

viernes, 28 de noviembre de 2014

parámetros iniciales qlikview 11

en Qlikview cuando quieres dejar ciertas selecciones al momento de abrir un documento lo que puedes hacer es utilizar el trigger onOpen dentro de propiedades del documento.

puedes agregar las acciones al momento de abrir, por ejemplo, en ciertos parámetros agregar sus selecciones iniciales.

Esto te puede ayudar para que siempre que entre el usuario no haya necesidad de estar quitando y poniendo filtros. En este ejemplo yo selecciono campos y les pongo su selección inicial. también se pueden guardar bookmark y éstos inicializarlos con este evento. OnOpen


 
las siguientes ligas te pueden ser de mucha ayuda también.
 
 
 

martes, 2 de septiembre de 2014

Extraer Datos de una BD MYSQL desde EXCEL 2010


En office te tiene le das clic a la pestaña de datos, luego desde ahí te vas a de OTRAS FUENTES. 


En otras fuentes tu le das clic a Desde MICROSOFT QUERY , Después de esto


Te vas a la pestaña de elegir origen de datos, y le das nuevo origen de datos

Le pones el nombre a tu conexión y seleccionas el driver de mysql ODBC 5.1 driver
Enseguida te sale el conector ODBC, y agregar tu IP, el puerto 3306 debe estar abierto.
El usuario y el password y debe aparecer la base de datos. Le das test para checar que realmente marque una conexión exitosa.
Luego una vez que seleccionas una tabla en el asistente le das aceptar y te la guarda.
Vuelves a donde mismo pero ya generaste tu conexión y le das clic, te vuelve a pedir el usuario y la contraseña y la metes y luego te manda a generar la consulta.

lunes, 1 de septiembre de 2014

Qlikview ejemplo If en LOAD

 Condiciones Qlikview


if(NombreGrupoT<>'GRUPO1',ApplyMap('MapTourFoto', NombreGrupoT, null( )),
if(Ps='DEL' and NombreGrupoT='GRUPO1','Fotos GRUPO1A',

if( Ps='SJD' and NombreGrupoT='GRUPO1','Fotos GRUPO1B','Fotos GRUPO1A') )
) as
NombreGrupof



puede aplicarse el APPLY MAP EN main para que este quede en memoria y pueda asociarse a un campo de otro QVD

en Main esta esto.


MapTourFoto:
Mapping LOAD * INLINE [
NTour, NTourFoto
'GRUPO2', 'Fotos GRUPO2'
'GRUPO3', 'Fotos GRUPO3'
'GRUPO4', 'Fotos  GRUPO4']
;

jueves, 10 de julio de 2014

Macro Exporta de excel a Outlook Calendario

Este pequeño macro genera una varias tareas de Excel a el calendario de Outlook.
para esto tendremos que agregar la referencia al api de Outlook. en herramientas/referencia con esto podremos trabajar con Outlook.apliccation y todos sus objetos.




Sub CREARTAREA()
   Dim ol As Outlook.Application
  ' Dim NewTask As Outlook.TaskItem/* Objeto de lista de tarea*/
   Dim newtask As Outlook.AppointmentItem ' objeto de tarea en calendario
   Dim i As Integer ' variable contador para ciclo
   ' Set the Application object.
   Set ol = New Outlook.Application ' Crea un set de outlook
   ' Create a new standard task.
   ' Display the new task form so the user can fill it out.
   For i = 10 To 1 Step -1 ' Determinamos un ciclo para llenar nuestro calendario con tareas de excel
    Set newtask = ol.CreateItem(olAppointmentItem) ' Crea el objeto del calendario
      newtask.Subject = Sheets(1).Cells(i, "A").Value 'Agregamos la linea que contiene el asunto de tarea
      newtask.Body = "esto es una prueba" ' Cuerpo de la tarea
      'newtask.Display (evento que funciona para que despliegue el formato de calendario, o tarea)
      newtask.Start = Sheets(1).Cells(i, "B").Value ' Agrega campo fecha con hora del evento en calendario
      'newtask.End = Sheets(1).Cells(i, "B").Value
      newtask.Duration = 60 ' duracion del evento en minutos
      'newtask.End = Now (tiempo de terminacion del evento)
      newtask.Save 'evento que guarda la tarea
      newtask.ClearRecurrencePattern
    Set newtask = Nothing 'Vaciamos el objeto para que se pueda volver a utilizar
  Next i 'Volvemos al ciclo
End Sub

Espero que les pueda servir de ayuda.

miércoles, 9 de julio de 2014

Mi incursion en macros macro EXCEL a SAP B1 Anticipos

Jamás me había interesado esto, pensé siempre que era mejor una aplicación desde cualquier lenguaje, sin embargo el poco tiempo y la necesidad me han hecho ver las macros como una buena herramienta para mitigar ciertas tareas repetitivas y tediosas.

para empezar genere esta pequeña macro para poder enlazar a objetos de SAP. necesitaba cerrar anticipos de manera automática por ser un número grande.

para esto primero agregar herramientas/referencia dentro de vb en la pestaña de programador en Excel.



agregamos este código, explico en cada renglón por que el objeto o la variable.

Sub SAP()
'---Datos SAP...
Dim oCompany As SAPbobsCOM.Company 'objeto de compañías de sapbobscom
Dim lRetCode, ErrorCode As Long 'variables para errores
Dim ErrorMessage As String 'mensaje de error variable
Dim Retval As Long 'variable de error regresado por sap
Dim vItem As SAPbobsCOM.Documents 'objeto de documento en SAP
Dim numdocentry As Long 'variable para mover el registro del objeto
' Importar
  Set oCompany = New SAPbobsCOM.Company 'asignas al objeto para manejar la bd.
    oCompany.DbServerType = SAPbobsCOM.BoDataServerTypes.dst_MSSQL2005 'tipo de base de datos,
                  'hay diferentes dependiendo del manejador de la bd
    oCompany.DbUserName = "Tudbuser"
    oCompany.DbPassword = "tupasswordsql"
    oCompany.Server = "127.0.0.1"
    oCompany.CompanyDB = "basededatosSAP"
    oCompany.UserName = "userSAP"
    oCompany.Password = "passSAP"
    oCompany.UseTrusted = False
    lRetCode = oCompany.Connect()
    Set vItem = oCompany.GetBusinessObject(oDownPayments)
    Row = 2
    Do While Sheets(1).Cells(Row, "A") <> ""
        numdocentry = Sheets(1).Cells(Row, "A")
        vItem.GetByKey (numdocentry)
        'vItem.NumAtCard = Sheets(7).Cells(Row, "C")
        vItem.Comments = "anticipo cancelado macro"
        vItem.Update ' El objeto se actualiza puede ser create, delete, update
        Retval = vItem.Cancel
        Row = Row + 1
    Loop
    oCompany.Disconnect 'desconectar compañía
    MsgBox "Exportado "
'Importar a SAP
MsgBox "Exportado ..!"
End Sub



tengo poco tiempo pero esto lo posteo a ver si puede servir a alguien, cabe mencionar que la DI API es de la versión 2007.

viernes, 13 de diciembre de 2013

el día que nació Luis alfredo

Después de esas horas de angustía el 23 de octubre, le pedí a mamá que viniera para hacerme compañía y no estar sola, por cualquier cosa. Después de ese susto, prefería que alguien más aparte de mi marido se quedará conmigo.

Ella vino al día siguiente, estuvo conmigo la semana completa. Me ayudo bastante puesto que yo ya con la panza demasiado grande ya no podía hacer muchas cosas. Fueron días hermosos por que podía platicar con mi madre e ir a caminar con ella y mi esposo. El doctor me dijo que si quería parto natural tenía que ir a caminar por lo menos 2 horas, no se que tenga que ver eso, pero me arrepiento de no haber ido todos los días y de no haberlo hecho antes, probablemente no se me hubiera complicado tanto el parto.

esas dos semanas fueron solo estar hinchada de los pies, era tener edemas grandes, sin embargo ningun problema con dolores de cabeza o algo parecido, en ocasiones podía sentir pequeños cólicos y dolores de espalda, nada de que asustarse o para pensar que algo extraordinario podría pasar.

y llego la semana 39 y paso a la 40, llego mi cumpleaños y según lo calculado podría nacer en esa fecha, sin embargo mi pequeño no quizo salir ese día. recuerdo que unos días antes hubo lluvia y salimos luis alberto y yo, entonces hicimos un pequeño video. Como ya estabamos en la semana 40 y no veíamos ningún indicio de labor de parto fuimos al ginecologo por última vez. Mi ginecologo me reviso, me hizo tacto para checar que estuviera cerrada mi matriz, y sí, pero me hizo el comentario que ya tenía que salir mi bebé puesto que mi placenta ya era grado III, me imagino que esto mide el nivel de eficiencia de la placenta puesto que pasando de las 40 semanas se vuelve inservible y deja de enviar correctamente alimento y oxígeno al bebé.

Después de tanta desesperación él ginecologo ya nos había dado fecha, el jueves 7 de noviembre tenía que hacerme cesarea. Yo no esperaba eso, esperaba que la naturaleza hiciera su trabajo conmigo, todavía me quedaba una esperanza. Luis alberto ya hablo emocionado a sus papás comentándoles la noticia. Yo un poco asustada pues pensaba que la cesarea era lo peor que podía haber.

Esa noche nos fuimos con esa noticia a la cama. Jamás me espere que en la madrugada mi cuerpo empezará a dar señales. Eran las 2 de la mañana cuando sentí el primer cólico fuerte, sin embargo me confundí pense que era un retortigon por la diarrea, empece a tener evacuaciones líquidas y así me estuve levantando casi cada hora hasta las 4 de la mañana, mi mamá se levanto y me comenzo a preguntar como me sentía, y le estaba diciendo que mal. Al levantarse luis alberto a las 6 de la mañana me pregunto si quería ir al hospital, y yo le dije que no, no quería que me regresaran por que tal vez pensarían que es una infección estomacal. me levante para acompañarlo a él y a mi mamá en el desayuno, tomé una taza de té de manzanilla y comence a vomitar amarillo, se me hizo raro y le hable al ginecologo sin embargo él también penso que era una infección y me receto un antibiótico. y no comer nada.

Me dormí, y entre medio levantada le dije a mi mamá que me sentía mejor, pero encuanto me levante de la cama me empezo a fluir líquido, sin embargo cuando me dí cuenta era verdoso, no era claro como el líquido normal de la fuente. Me espante mucho por que había leído que si eso pasaba uno tenía que ir de urgencia al hospital. Mi mamá también se asusto, y me empece a bañar y no podía contener el líquido. l

Al llegar a urgencia me pasaron inmediatamente a revisión, en donde vieron que tenía poco de dilatación. Me pasaron a toco, me volvieron a revisar. Me hicieron cambio de cama y al momento me empezo a salir sangre, no entendía por que. Pero después de eso mi doctor inmediatamente programo la cesarea. El diagnóstico que se hizo fue rotura de membrana temprana. No se que signifique eso, el chiste es que mi bebé estaba tratando de querer salir y no pudo, dilate muy poco o casi nada, al menos eso dijo el doctor.

A la una de la tarde me pasaron a quirofano, me sentía un poco decepcionada, pues después de haber estado varias veces ahí viendo como iban y venían las señoras de la sala de expulsión, jamás me imagine que yo no pudiera.

al estar en la sala de operación no me dio miedo, todo fue tan rápido, no sentía nada, el caso es que también batallaron para sacar a mi bebé. Me acuerdo que antes de dejar de tener consciencia ví cuando lo sacaron, escuché su llanto y ví su  hermosa cara, no podía creer que estuviera afuera, él, ese que tanto me pateo, ese que creció en mí poco a poco, aquel del cual escuchaba sus latidos cada mes, después de eso inmediatamente perdí la consciencia.

Me levante como a las 5 de la tarde, para esto después de rato me cambiaron de lugar y me llevarona piso. dijeron que llevarían mi bebé a mi lugar, sin embargo no me lo llevaron luego luego, jamás entendí por que. no me explicaron nada. y yo estaba demasiado atontada para preguntar.

El primero en llegar a verme fue mi esposo, el cual me dio un beso, apesar de estar tan hinchada como un pez globo, él me seguía viendo con esos ojos de amor que aun observo. En seguida fue a ver a nuestro bebé, pregunto si podía tomar unas fotos y hasta video tomo, cuando fue conmigo lloré de la emoción, de ver lo hermoso que era. Jamás me imagine que algo tan precioso saldría de mí. Él estaba feliz, era su hijo.



 

martes, 1 de octubre de 2013

linkear servidores de bases de datos Sql Server remotos

Hay ocasiones en las cuales tienes que consultar tu información hacia una base de dato que se encuentra en otra instancia dentro de otro equipo. Para esto, SQL server utiliza una opción para ligarlos.

Primero podemos corroborar que no lo tengamos  dentro de los objetos de



 
para saber cuales objetos (instancias de sql) tienes,  
 
 
SP_LINKEDSERVERS nos sirve para saber  esto.
 
 
 
Para agregarlo puedes utilizar este comando.

 


 EXEC sp_addlinkedserver  
   @server='mi_server',
   @srvproduct='',
   @provider='SQLNCLI10',
   @datasrc='mi_server' /*nombre server donde se encuentra la instancia si utilizas una ip remota checa que este abierto el puerto 1433 y si usas dyndns pon el nombre dns que estas usando*/

y por último con una query en este formato te aseguras que quedo linkeado el server. o checas la parte de objetos del server.

   SELECT top 10 * FROM [mi_server].[mibd].[dbo].[ventas]
   where registrationDAte >= '20130814'

espero que les sirva, de hecho a mi me sirvió mucho y lo dejo como parte de lo experimentado para que no se me olvide.

viernes, 27 de septiembre de 2013

a unas semanas de...

A unas semanas de empezar la nueva etapa en mi vida. Ya nuestro pequeño Luis Alfredo tiene 34 semanas, según el ultrasonido 35. Ha sido maravilloso este recuento de semanas y meses.

el primer trimestre fue de miedos, de pensar muchas cosas, los cambios siempre tendrán y traerán preguntas sin respuestas.

Antes de quedar embarazada tenía planes de como empezar a tener el cuerpo perfecto para la concepción, bajar unos kilos, hacer ejercicio, sin embargo en un solo descuido. Luis estuvo muy contento cuando supo, yo desconcertada... ver esa pequeña franja roja sobre la prueba me hizo sentir rara, de por sí el simple hecho de que mi cuerpo estuviera dándome los típicos anuncios de la implantación del embrión, me hacían sentir mal.

para asegurarnos de la noticia fuimos a hacer prueba de sangre, y si, sin duda alguna estaba embarazada. Ahora, tal vez nos adelantamos, dimos la noticia, antes de poder incluso saber si se trataba de un caso de embarazo anaembriónico(es decir un embrión sin bebé). Aún así era verdad, era un bebe hermoso. La primera vez que lo vi, realmente no sentí nada, era en el ultrasonido un saquito negro. cuando comencé a sentir por primera vez la ternura de verlo fue a sus 8 semanas, era un pequeño guisante, su cabeza, sus ojos, sus manos y sus pies empezaban a aparecer.

Nos llevamos un pequeño susto a sus 11 semanas, antes de esto el ginecólogo ya me había advertido de descanso y reposo pues tuve un problema con hematomas, y podía tener el riesgo de perder a mi bebé. En esta semana ingrese al hospital por tener una hemorragia, tuve mucho miedo y sentía culpa de esto, que aunque tuvimos receso sexual por recomendaciones médicas, cualquier esfuerzo podría provocar esto. Estuve 3 días en reposo absoluto y 4 días en casa en reposo. Luis estuvo asustado, y cansado, como papás no están con nosotros(aunque no muy lejos), nadie podría ayudarnos. Él es lo mejor que me ha pasado en mi vida, jamás hubiere conocido alguien como él. Aún después de éstos años sigo enamorada y seguiré enamorada de él, cada día que pasa me hace más feliz, el despertar a su lado y abrazarlo o darnos un beso y que toque y le hable al bebé, me hace la mujer más dichosa.

A sus 13 semanas confirmamos su sexo, un varoncito, que aunque chiquito, creo que fue el ultrasonido más gracioso que he visto, hizo tantos movimientos y se dejo ver por completo , sus miembros formados completamente, sus manos, sus dedos, todo se veía. Jamás olvidaré ese día. Además de que no todos los bebes dejan ver su sexo hasta después de la semana 20.

Cada ultrasonido a a partir de ahí fue más emocionante, aunque la verdad por un momento creí que jamás querría volver a estar embarazada pues los achaques como las agruras y los vómitos hicieron que bajará 3 kilos, y aparte de esto me deprimí. Lo bueno es que solo duraron 4 meses. Aún así en mi vida jamás he dejado de comer como en ese momento.

El segundo trimestre estuvo lleno de expectativas, buen sexo, más para mí gusto diría mi marido. Y la emoción de los abuelos, altamente contagiable, con la aparición del bulto en mi barriga y los movimientos diarios de este ser que me empezaba a invadir por completo.


Hoy ya estoy en el tercer trimestre, mi barriga crece de manera exagerada, hoy apenas puedo caminar. Dicen que eche mucha panza, aunque mi bebe a sus 34 semanas (la actual), mide 42 cm y pesa 2400 gramos.

Lo dicho es emocionante, y tenía que escribirlo aquí para que quedará en algún lado memoria de lo que estoy sintiendo y de lo que he vivido éstos meses. Realmente es emocionante, y al final lo que me pongo a pensar es que esto de dar vida a otro ser es lo más hermoso y mágico que puede pasar. El hecho de sentir como se mueve, su cuerpo, que sin duda alguna ya puedo sentir, sus pompis, su columna, sus piecitos. Y ver esos movimientos a veces tan alocados que tiene.

Y lo que me da más emoción es llegar a verlo, a ver si tal como sale en el ultrasonido en 3D, se parecerá a su padre, El mejor que la vida y Dios le pudo haber dado.

Sin duda alguna, algo que sin pedir me dieron y tendré, en Dios espero, toda mi vida.