[GUFA] Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT?
Norberto... Si bien trabajo en la versión 2008 R2, tengo entendido que se programa de la misma manera Abrís antes que nada el Microsoft Sql Server Management Studio y te conectas a tu instancia de servidor que tenga la base de datos en cuestion. Si bien podría adjuntarte los tres triggers y decirte como se ejecutan y se agregan, me parece mas educativo escribirtelos uno a uno y explicártelos para que domines la técnica, ya que cada base de datos es un mundo y el programador tiene que poder sobrevivir en cada uno de esos mundos... (A propósito si bien contesto todo lo que puedo por el foro puede que algún forista necesite una ayuda un poco mas personalizada para entender tal o cual cuestión, es por eso que te aclaro que la mayoría de mis clientes son programadores que necesitan esa mano extra... para que les explique como se hace tal o cual cosa... esto no significa que por aqui no te vaya a responder... pero por aquí respondo en el momento que tengo de respiro entre programa y programa... siempre y cuando este conectado) Pasemos a la explicación: Antes que nada un Trigger o Desencadenador es un método que ejecuta el motor de base de datos cuando se produce un determinado evento en una tabla determinada. Así que un *trigger es un programa*. Este es el aspecto que tiene un Trigger de alta de una tabla en particular: USE [ACE] GO /** Object: Trigger [dbo].[InsCarriers]Script Date: 06/19/2013 08:01:22 **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Trigger [dbo].[InsCarriers] On [dbo].[CARRIERS] For Insert As begin declare @IdPar int declare @IdTab int declare @IdAct int Select @IdPar=IdSucursal from PARAM Select @IdTab=IdSucOri from Inserted Set @IdAct=ISNULL(@IdTab,@IdPar) Insert into Replica (Tabla,Fecha,Operacion,Referencia,IdSucOri) Select 'Carriers',GETDATE(),'A',IdCarrier,@IdAct From Inserted end Ahora vamos con el análisis del código: Podemos ver que el código tiene 2 partes: - Una cabecera (antes del AS) donde se especifica en que lugar y ante que evento se va a aplicar el Trigger. - Un detalle (despues del AS y entre los delimitadores Begin y End) en el cual esta escrito el programa en sí. Cuando con botón derecho se le pide al Management Studio crear un nuevo trigger, nos pone la siguiente estructura que es genérica para cualquier tipo y que nos va a servir para estudiar el trigger de ejemplo. -- -- Template generated from Template Explorer using: -- Create Trigger (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below. -- -- See additional Create Trigger templates for more -- examples of different Trigger statements. -- -- This block of comments will not be included in -- the definition of the function. -- SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = -- Author: Author,,Name -- Create date: Create Date,, -- Description: Description,, -- = CREATE TRIGGER Schema_Name, sysname, Schema_Name.Trigger_Name, sysname, Trigger_Name ON Schema_Name, sysname, Schema_Name.Table_Name, sysname, Table_Name AFTER Data_Modification_Statements, , INSERT,DELETE,UPDATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here END GO Bien, comparando ahora podemos ver lo siguiente: En primer lugar especifico cual es la base de datos que contiene la tabla en cuestión. En este caso la base de datos es ACE, pero en forma genérica sería: USE [Nombre de la base de datos] El script maneja lineas de comentario que pueden hacer de la siguiente forma: - Antecediendo -- a la linea (se forma un comentario por linea como el * en VFP - Poniendo un grupo de lineas entre los delimitadores /* y */. Esto sirve para apartar rapidamente todo un código sin tener que tocarlo. Sigamos con el ejemplo, si el trigger existe se coloca la instrucción ALTER TRIGGER delante del nombre para poder modificarlo, si en cambio se trata de un trigger nuevo la instrucción será CREATE TRIGGER. El nombre del trigger (como todo objeto en la base de datos) esta formado por un esquema que lo contiene (generalmente dbo), un punto usado de separador y un nombre (se recomienda que el nombre sea lo suficientemente expeditivo para indicar para que se usa, aunque se le puede poner cualquier cosa). En este caso nuestro trigger se denomina [dbo].[InsCarriers] (que es lo mismo poner dbo.InsCarriers ya que los corchetes no son necesarios) En la misma linea se presenta el delimitador ON que nos indica exactamente a que tabla va a estar asociado el trigger. En este caso la tabla es [dbo].[CARRIERS] Finalmente en la misma linea se pueden presentar los siguientes delimitadores: - For o After: se activa cuando
[GUFA] ifox con Windows 8
Estimados Colisteros, yo uso bastante esta excelente herramienta IFOX, mi pregunta es la siguiente, casualmente no me funciona en la PC que tiene Windows 8, tengo que considerar algo u otra cosa, ya que no le encuentro la vuelta. Desde ya muchas Gracias. Norberto Alvarez Socio # 1892
[GUFA] RE: Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT?
Mil gracias. Te escribí desde la facultad hoy temprano pero no se si salió el mail porque entré a clase. Si aún esta en la mi netbook te lo reenvío. Está todo muy claro. Lo voy a implementar y te cuento. No se sin embargo donde se debe alojar el trigger. Se leer transac y estoy muy familiarizado con funciones. Manejo VBA para Access. Los artículos los estaré viendo en este feriado probando en la Master db de mi equipo. Gracias de nuevo. Te tengo al tanto. -Mensaje original- De: francisco prieto Enviado: 19/06/2013 09:22 Para: GUFA List Member Asunto: [GUFA] Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT? Norberto... Si bien trabajo en la versión 2008 R2, tengo entendido que se programa de la misma manera Abrís antes que nada el Microsoft Sql Server Management Studio y te conectas a tu instancia de servidor que tenga la base de datos en cuestion. Si bien podría adjuntarte los tres triggers y decirte como se ejecutan y se agregan, me parece mas educativo escribirtelos uno a uno y explicártelos para que domines la técnica, ya que cada base de datos es un mundo y el programador tiene que poder sobrevivir en cada uno de esos mundos... (A propósito si bien contesto todo lo que puedo por el foro puede que algún forista necesite una ayuda un poco mas personalizada para entender tal o cual cuestión, es por eso que te aclaro que la mayoría de mis clientes son programadores que necesitan esa mano extra... para que les explique como se hace tal o cual cosa... esto no significa que por aqui no te vaya a responder... pero por aquí respondo en el momento que tengo de respiro entre programa y programa... siempre y cuando este conectado) Pasemos a la explicación: Antes que nada un Trigger o Desencadenador es un método que ejecuta el motor de base de datos cuando se produce un determinado evento en una tabla determinada. Así que un *trigger es un programa*. Este es el aspecto que tiene un Trigger de alta de una tabla en particular: USE [ACE] GO /** Object: Trigger [dbo].[InsCarriers]Script Date: 06/19/2013 08:01:22 **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Trigger [dbo].[InsCarriers] On [dbo].[CARRIERS] For Insert As begin declare @IdPar int declare @IdTab int declare @IdAct int Select @IdPar=IdSucursal from PARAM Select @IdTab=IdSucOri from Inserted Set @IdAct=ISNULL(@IdTab,@IdPar) Insert into Replica (Tabla,Fecha,Operacion,Referencia,IdSucOri) Select 'Carriers',GETDATE(),'A',IdCarrier,@IdAct From Inserted end Ahora vamos con el análisis del código: Podemos ver que el código tiene 2 partes: - Una cabecera (antes del AS) donde se especifica en que lugar y ante que evento se va a aplicar el Trigger. - Un detalle (despues del AS y entre los delimitadores Begin y End) en el cual esta escrito el programa en sí. Cuando con botón derecho se le pide al Management Studio crear un nuevo trigger, nos pone la siguiente estructura que es genérica para cualquier tipo y que nos va a servir para estudiar el trigger de ejemplo. -- -- Template generated from Template Explorer using: -- Create Trigger (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below. -- -- See additional Create Trigger templates for more -- examples of different Trigger statements. -- -- This block of comments will not be included in -- the definition of the function. -- SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = -- Author: Author,,Name -- Create date: Create Date,, -- Description: Description,, -- = CREATE TRIGGER Schema_Name, sysname, Schema_Name.Trigger_Name, sysname, Trigger_Name ON Schema_Name, sysname, Schema_Name.Table_Name, sysname, Table_Name AFTER Data_Modification_Statements, , INSERT,DELETE,UPDATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here END GO Bien, comparando ahora podemos ver lo siguiente: En primer lugar especifico cual es la base de datos que contiene la tabla en cuestión. En este caso la base de datos es ACE, pero en forma genérica sería: USE [Nombre de la base de datos] El script maneja lineas de comentario que pueden hacer de la siguiente forma: - Antecediendo -- a la linea (se forma un comentario por linea como el * en VFP - Poniendo un grupo de lineas entre los delimitadores /* y */. Esto sirve para apartar rapidamente todo un código sin tener que tocarlo. Sigamos con el ejemplo, si el trigger existe se coloca la instrucción ALTER TRIGGER delante del nombre para poder modificarlo, si en cambio se trata de un trigger nuevo la instrucción será CREATE TRIGGER. El nombre del trigger (como todo objeto en la base de datos)
[GUFA] ifox con Windows 8
Podrías ver si cuando instalas tu aplicación la haces como administrador. Yo uso win8 y funciona todo. saludos El 19 de junio de 2013 11:57, Pablo Pioli ppi...@hotmail.com escribió: No deberia haber problemas, a menos que tengas algun lio 32 / 64 bits El 19/06/2013 10:30 a.m., Norberto Mario Alvarez escribió: Estimados Colisteros, yo uso bastante esta excelente herramienta IFOX, mi pregunta es la siguiente, casualmente no me funciona en la PC que tiene Windows 8, tengo que considerar algo u otra cosa, ya que no le encuentro la vuelta. Desde ya muchas Gracias. ** ** *Norberto Alvarez* *Socio # 1892* ** **
[GUFA] Re: [GUFA] Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT?
¡Che, qué buena explicación! Muchas gracias Rafael Copquin El 19/06/2013 09:22 a.m., francisco prieto escribió: Norberto... Si bien trabajo en la versión 2008 R2, tengo entendido que se programa de la misma manera Abrís antes que nada el Microsoft Sql Server Management Studio y te conectas a tu instancia de servidor que tenga la base de datos en cuestion. Si bien podría adjuntarte los tres triggers y decirte como se ejecutan y se agregan, me parece mas educativo escribirtelos uno a uno y explicártelos para que domines la técnica, ya que cada base de datos es un mundo y el programador tiene que poder sobrevivir en cada uno de esos mundos... (A propósito si bien contesto todo lo que puedo por el foro puede que algún forista necesite una ayuda un poco mas personalizada para entender tal o cual cuestión, es por eso que te aclaro que la mayoría de mis clientes son programadores que necesitan esa mano extra... para que les explique como se hace tal o cual cosa... esto no significa que por aqui no te vaya a responder... pero por aquí respondo en el momento que tengo de respiro entre programa y programa... siempre y cuando este conectado) Pasemos a la explicación: Antes que nada un Trigger o Desencadenador es un método que ejecuta el motor de base de datos cuando se produce un determinado evento en una tabla determinada. Así que un *trigger es un programa*. Este es el aspecto que tiene un Trigger de alta de una tabla en particular: USE [ACE] GO /** Object: Trigger [dbo].[InsCarriers]Script Date: 06/19/2013 08:01:22 **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Trigger [dbo].[InsCarriers] On [dbo].[CARRIERS] For Insert As begin declare @IdPar int declare @IdTab int declare @IdAct int Select @IdPar=IdSucursal from PARAM Select @IdTab=IdSucOri from Inserted Set @IdAct=ISNULL(@IdTab,@IdPar) Insert into Replica (Tabla,Fecha,Operacion,Referencia,IdSucOri) Select 'Carriers',GETDATE(),'A',IdCarrier,@IdAct From Inserted end Ahora vamos con el análisis del código: Podemos ver que el código tiene 2 partes: * Una cabecera (antes del AS) donde se especifica en que lugar y ante que evento se va a aplicar el Trigger. * Un detalle (despues del AS y entre los delimitadores Begin y End) en el cual esta escrito el programa en sí. Cuando con botón derecho se le pide al Management Studio crear un nuevo trigger, nos pone la siguiente estructura que es genérica para cualquier tipo y que nos va a servir para estudiar el trigger de ejemplo. -- -- Template generated from Template Explorer using: -- Create Trigger (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below. -- -- See additional Create Trigger templates for more -- examples of different Trigger statements. -- -- This block of comments will not be included in -- the definition of the function. -- SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = -- Author:Author,,Name -- Create date: Create Date,, -- Description:Description,, -- = CREATE TRIGGER Schema_Name, sysname, Schema_Name.Trigger_Name, sysname, Trigger_Name ON Schema_Name, sysname, Schema_Name.Table_Name, sysname, Table_Name AFTER Data_Modification_Statements, , INSERT,DELETE,UPDATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here END GO Bien, comparando ahora podemos ver lo siguiente: En primer lugar especifico cual es la base de datos que contiene la tabla en cuestión. En este caso la base de datos es ACE, pero en forma genérica sería: USE [Nombre de la base de datos] El script maneja lineas de comentario que pueden hacer de la siguiente forma: * Antecediendo -- a la linea (se forma un comentario por linea como el * en VFP * Poniendo un grupo de lineas entre los delimitadores /* y */. Esto sirve para apartar rapidamente todo un código sin tener que tocarlo. Sigamos con el ejemplo, si el trigger existe se coloca la instrucción ALTER TRIGGER delante del nombre para poder modificarlo, si en cambio se trata de un trigger nuevo la instrucción será CREATE TRIGGER. El nombre del trigger (como todo objeto en la base de datos) esta formado por un esquema que lo contiene (generalmente dbo), un punto usado de separador y un nombre (se recomienda que el nombre sea lo suficientemente expeditivo para indicar para que se usa, aunque se le puede poner cualquier cosa). En este caso nuestro trigger se denomina [dbo].[InsCarriers] (que es lo mismo poner dbo.InsCarriers ya que los corchetes no son necesarios) En la misma linea se presenta el delimitador ON que nos indica exactamente a que tabla va a estar asociado el trigger. En
[GUFA] Re: [GUFA] Re: [GUFA] Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT?
Pancho, te ganaste un asado, este finde no, pero el otro voy para Capilla. Te llamo. Abrazo! El 19 de junio de 2013 16:45, Rafael Copquin rcopq...@fibertel.com.arescribió: ¡Che, qué buena explicación! Muchas gracias Rafael Copquin El 19/06/2013 09:22 a.m., francisco prieto escribió: Norberto... Si bien trabajo en la versión 2008 R2, tengo entendido que se programa de la misma manera Abrís antes que nada el Microsoft Sql Server Management Studio y te conectas a tu instancia de servidor que tenga la base de datos en cuestion. Si bien podría adjuntarte los tres triggers y decirte como se ejecutan y se agregan, me parece mas educativo escribirtelos uno a uno y explicártelos para que domines la técnica, ya que cada base de datos es un mundo y el programador tiene que poder sobrevivir en cada uno de esos mundos... (A propósito si bien contesto todo lo que puedo por el foro puede que algún forista necesite una ayuda un poco mas personalizada para entender tal o cual cuestión, es por eso que te aclaro que la mayoría de mis clientes son programadores que necesitan esa mano extra... para que les explique como se hace tal o cual cosa... esto no significa que por aqui no te vaya a responder... pero por aquí respondo en el momento que tengo de respiro entre programa y programa... siempre y cuando este conectado) Pasemos a la explicación: Antes que nada un Trigger o Desencadenador es un método que ejecuta el motor de base de datos cuando se produce un determinado evento en una tabla determinada. Así que un *trigger es un programa*. Este es el aspecto que tiene un Trigger de alta de una tabla en particular: USE [ACE] GO /** Object: Trigger [dbo].[InsCarriers]Script Date: 06/19/2013 08:01:22 **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Trigger [dbo].[InsCarriers] On [dbo].[CARRIERS] For Insert As begin declare @IdPar int declare @IdTab int declare @IdAct int Select @IdPar=IdSucursal from PARAM Select @IdTab=IdSucOri from Inserted Set @IdAct=ISNULL(@IdTab,@IdPar) Insert into Replica (Tabla,Fecha,Operacion,Referencia,IdSucOri) Select 'Carriers',GETDATE(),'A',IdCarrier,@IdAct From Inserted end Ahora vamos con el análisis del código: Podemos ver que el código tiene 2 partes: - Una cabecera (antes del AS) donde se especifica en que lugar y ante que evento se va a aplicar el Trigger. - Un detalle (despues del AS y entre los delimitadores Begin y End) en el cual esta escrito el programa en sí. Cuando con botón derecho se le pide al Management Studio crear un nuevo trigger, nos pone la siguiente estructura que es genérica para cualquier tipo y que nos va a servir para estudiar el trigger de ejemplo. -- -- Template generated from Template Explorer using: -- Create Trigger (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below. -- -- See additional Create Trigger templates for more -- examples of different Trigger statements. -- -- This block of comments will not be included in -- the definition of the function. -- SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = -- Author: Author,,Name -- Create date: Create Date,, -- Description: Description,, -- = CREATE TRIGGER Schema_Name, sysname, Schema_Name.Trigger_Name, sysname, Trigger_Name ON Schema_Name, sysname, Schema_Name.Table_Name, sysname, Table_Name AFTER Data_Modification_Statements, , INSERT,DELETE,UPDATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here END GO Bien, comparando ahora podemos ver lo siguiente: En primer lugar especifico cual es la base de datos que contiene la tabla en cuestión. En este caso la base de datos es ACE, pero en forma genérica sería: USE [Nombre de la base de datos] El script maneja lineas de comentario que pueden hacer de la siguiente forma: - Antecediendo -- a la linea (se forma un comentario por linea como el * en VFP - Poniendo un grupo de lineas entre los delimitadores /* y */. Esto sirve para apartar rapidamente todo un código sin tener que tocarlo. Sigamos con el ejemplo, si el trigger existe se coloca la instrucción ALTER TRIGGER delante del nombre para poder modificarlo, si en cambio se trata de un trigger nuevo la instrucción será CREATE TRIGGER. El nombre del trigger (como todo objeto en la base de datos) esta formado por un esquema que lo contiene (generalmente dbo), un punto usado de separador y un nombre (se recomienda que el nombre sea lo suficientemente expeditivo para indicar para que se usa, aunque se le puede poner cualquier
[GUFA] Re: [GUFA] Re: [GUFA] Re: [GUFA] Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT?
El jueves 27 estoy en Cordoba, en un evento cerca del Buen Pastor... si bien no voy a tener tiempo de comer un asado ese dia bien podriamos juntarnos a tomar un café. Saludos, Pancho El 19 de junio de 2013 17:07, Ale Paciotti alejandro.pacio...@gmail.comescribió: Pancho, te ganaste un asado, este finde no, pero el otro voy para Capilla. Te llamo. Abrazo! El 19 de junio de 2013 16:45, Rafael Copquin rcopq...@fibertel.com.arescribió: ¡Che, qué buena explicación! Muchas gracias Rafael Copquin El 19/06/2013 09:22 a.m., francisco prieto escribió: Norberto... Si bien trabajo en la versión 2008 R2, tengo entendido que se programa de la misma manera Abrís antes que nada el Microsoft Sql Server Management Studio y te conectas a tu instancia de servidor que tenga la base de datos en cuestion. Si bien podría adjuntarte los tres triggers y decirte como se ejecutan y se agregan, me parece mas educativo escribirtelos uno a uno y explicártelos para que domines la técnica, ya que cada base de datos es un mundo y el programador tiene que poder sobrevivir en cada uno de esos mundos... (A propósito si bien contesto todo lo que puedo por el foro puede que algún forista necesite una ayuda un poco mas personalizada para entender tal o cual cuestión, es por eso que te aclaro que la mayoría de mis clientes son programadores que necesitan esa mano extra... para que les explique como se hace tal o cual cosa... esto no significa que por aqui no te vaya a responder... pero por aquí respondo en el momento que tengo de respiro entre programa y programa... siempre y cuando este conectado) Pasemos a la explicación: Antes que nada un Trigger o Desencadenador es un método que ejecuta el motor de base de datos cuando se produce un determinado evento en una tabla determinada. Así que un *trigger es un programa*. Este es el aspecto que tiene un Trigger de alta de una tabla en particular: USE [ACE] GO /** Object: Trigger [dbo].[InsCarriers]Script Date: 06/19/2013 08:01:22 **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Trigger [dbo].[InsCarriers] On [dbo].[CARRIERS] For Insert As begin declare @IdPar int declare @IdTab int declare @IdAct int Select @IdPar=IdSucursal from PARAM Select @IdTab=IdSucOri from Inserted Set @IdAct=ISNULL(@IdTab,@IdPar) Insert into Replica (Tabla,Fecha,Operacion,Referencia,IdSucOri) Select 'Carriers',GETDATE(),'A',IdCarrier,@IdAct From Inserted end Ahora vamos con el análisis del código: Podemos ver que el código tiene 2 partes: - Una cabecera (antes del AS) donde se especifica en que lugar y ante que evento se va a aplicar el Trigger. - Un detalle (despues del AS y entre los delimitadores Begin y End) en el cual esta escrito el programa en sí. Cuando con botón derecho se le pide al Management Studio crear un nuevo trigger, nos pone la siguiente estructura que es genérica para cualquier tipo y que nos va a servir para estudiar el trigger de ejemplo. -- -- Template generated from Template Explorer using: -- Create Trigger (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below. -- -- See additional Create Trigger templates for more -- examples of different Trigger statements. -- -- This block of comments will not be included in -- the definition of the function. -- SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = -- Author: Author,,Name -- Create date: Create Date,, -- Description: Description,, -- = CREATE TRIGGER Schema_Name, sysname, Schema_Name.Trigger_Name, sysname, Trigger_Name ON Schema_Name, sysname, Schema_Name.Table_Name, sysname, Table_Name AFTER Data_Modification_Statements, , INSERT,DELETE,UPDATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here END GO Bien, comparando ahora podemos ver lo siguiente: En primer lugar especifico cual es la base de datos que contiene la tabla en cuestión. En este caso la base de datos es ACE, pero en forma genérica sería: USE [Nombre de la base de datos] El script maneja lineas de comentario que pueden hacer de la siguiente forma: - Antecediendo -- a la linea (se forma un comentario por linea como el * en VFP - Poniendo un grupo de lineas entre los delimitadores /* y */. Esto sirve para apartar rapidamente todo un código sin tener que tocarlo. Sigamos con el ejemplo, si el trigger existe se coloca la instrucción ALTER TRIGGER delante del nombre para poder modificarlo, si en cambio se trata de un trigger nuevo la instrucción será CREATE TRIGGER. El nombre del trigger
[GUFA] Seleccionar texto
Norberto para hacer eso tendrías que poner un RichText dentro de la grilla, porque el Text que tiene la grilla solo puede mostrar un color de frente o de fondo para todo el contenido... Si te interesa la idea te la desarrollo con un ejemplo. Saludos, Pancho Córdoba El 19 de junio de 2013 21:12, Norberto Mario Alvarez n...@nmasystems.com.ar escribió: Estimados Colisteros, estoy utilizando una grilla de búsqueda cuya fuente es una vista que solo me muestra todos los registros que contengan un determinado texto, lo que no encuentro la manera es de que me quede seleccionado en cada registro de la mencionada grilla el texto que yo le pedi marcar, como por ejemplo: ** ** ESTOY BUSCANDO LA SIGUIENTE PALABRA EL SIGUIENTE TEMA ES EL SIGUIENTE TEXTO ** ** Donde la palabra que estoy buscando es siguiente. ** ** Desde ya muchas gracias. ** ** ** ** * * *Norberto Alvarez* *Socio # 1892* * * ** **
[GUFA] Re: [GUFA] Re: [GUFA] Re: [GUFA] Re: [GUFA] Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT?
Un link interesante para estudiar es este... http://www.aulaclic.es/sqlserver/index.htm Saludos a todos, Pancho Córdoba El 19 de junio de 2013 17:22, francisco prieto fajpri...@gmail.comescribió: El jueves 27 estoy en Cordoba, en un evento cerca del Buen Pastor... si bien no voy a tener tiempo de comer un asado ese dia bien podriamos juntarnos a tomar un café. Saludos, Pancho El 19 de junio de 2013 17:07, Ale Paciotti alejandro.pacio...@gmail.comescribió: Pancho, te ganaste un asado, este finde no, pero el otro voy para Capilla. Te llamo. Abrazo! El 19 de junio de 2013 16:45, Rafael Copquin rcopq...@fibertel.com.arescribió: ¡Che, qué buena explicación! Muchas gracias Rafael Copquin El 19/06/2013 09:22 a.m., francisco prieto escribió: Norberto... Si bien trabajo en la versión 2008 R2, tengo entendido que se programa de la misma manera Abrís antes que nada el Microsoft Sql Server Management Studio y te conectas a tu instancia de servidor que tenga la base de datos en cuestion. Si bien podría adjuntarte los tres triggers y decirte como se ejecutan y se agregan, me parece mas educativo escribirtelos uno a uno y explicártelos para que domines la técnica, ya que cada base de datos es un mundo y el programador tiene que poder sobrevivir en cada uno de esos mundos... (A propósito si bien contesto todo lo que puedo por el foro puede que algún forista necesite una ayuda un poco mas personalizada para entender tal o cual cuestión, es por eso que te aclaro que la mayoría de mis clientes son programadores que necesitan esa mano extra... para que les explique como se hace tal o cual cosa... esto no significa que por aqui no te vaya a responder... pero por aquí respondo en el momento que tengo de respiro entre programa y programa... siempre y cuando este conectado) Pasemos a la explicación: Antes que nada un Trigger o Desencadenador es un método que ejecuta el motor de base de datos cuando se produce un determinado evento en una tabla determinada. Así que un *trigger es un programa*. Este es el aspecto que tiene un Trigger de alta de una tabla en particular: USE [ACE] GO /** Object: Trigger [dbo].[InsCarriers]Script Date: 06/19/2013 08:01:22 **/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Trigger [dbo].[InsCarriers] On [dbo].[CARRIERS] For Insert As begin declare @IdPar int declare @IdTab int declare @IdAct int Select @IdPar=IdSucursal from PARAM Select @IdTab=IdSucOri from Inserted Set @IdAct=ISNULL(@IdTab,@IdPar) Insert into Replica (Tabla,Fecha,Operacion,Referencia,IdSucOri) Select 'Carriers',GETDATE(),'A',IdCarrier,@IdAct From Inserted end Ahora vamos con el análisis del código: Podemos ver que el código tiene 2 partes: - Una cabecera (antes del AS) donde se especifica en que lugar y ante que evento se va a aplicar el Trigger. - Un detalle (despues del AS y entre los delimitadores Begin y End) en el cual esta escrito el programa en sí. Cuando con botón derecho se le pide al Management Studio crear un nuevo trigger, nos pone la siguiente estructura que es genérica para cualquier tipo y que nos va a servir para estudiar el trigger de ejemplo. -- -- Template generated from Template Explorer using: -- Create Trigger (New Menu).SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter -- values below. -- -- See additional Create Trigger templates for more -- examples of different Trigger statements. -- -- This block of comments will not be included in -- the definition of the function. -- SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- = -- Author: Author,,Name -- Create date: Create Date,, -- Description: Description,, -- = CREATE TRIGGER Schema_Name, sysname, Schema_Name.Trigger_Name, sysname, Trigger_Name ON Schema_Name, sysname, Schema_Name.Table_Name, sysname, Table_Name AFTER Data_Modification_Statements, , INSERT,DELETE,UPDATE AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for trigger here END GO Bien, comparando ahora podemos ver lo siguiente: En primer lugar especifico cual es la base de datos que contiene la tabla en cuestión. En este caso la base de datos es ACE, pero en forma genérica sería: USE [Nombre de la base de datos] El script maneja lineas de comentario que pueden hacer de la siguiente forma: - Antecediendo -- a la linea (se forma un comentario por linea como el * en VFP - Poniendo un grupo de lineas entre los delimitadores /* y */. Esto sirve para apartar rapidamente todo un código sin tener que tocarlo. Sigamos con el ejemplo, si
[GUFA] Seleccionar texto
Gracias Pancho, te agradezco y si me interesa mucho. Desde ya muchas gracias. Norberto De: GUFA@mug.org.ar [mailto:GUFA@mug.org.ar] En nombre de francisco prieto Enviado el: miércoles, 19 de junio de 2013 09:19 p.m. Para: GUFA List Member Asunto: [GUFA] Seleccionar texto Norberto para hacer eso tendrías que poner un RichText dentro de la grilla, porque el Text que tiene la grilla solo puede mostrar un color de frente o de fondo para todo el contenido... Si te interesa la idea te la desarrollo con un ejemplo. Saludos, Pancho Córdoba El 19 de junio de 2013 21:12, Norberto Mario Alvarez n...@nmasystems.com.ar escribió: Estimados Colisteros, estoy utilizando una grilla de búsqueda cuya fuente es una vista que solo me muestra todos los registros que contengan un determinado texto, lo que no encuentro la manera es de que me quede seleccionado en cada registro de la mencionada grilla el texto que yo le pedi marcar, como por ejemplo: ESTOY BUSCANDO LA SIGUIENTE PALABRA EL SIGUIENTE TEMA ES EL SIGUIENTE TEXTO Donde la palabra que estoy buscando es siguiente. Desde ya muchas gracias. Norberto Alvarez Socio # 1892