[GUFA] Re: [GUFA] RE: [GUFA] Re: [GUFA] Error 3626 al víncular tabla SQL en Access - ¿OT?

2013-06-19 Por tema francisco prieto
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

2013-06-19 Por tema Norberto Mario Alvarez
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?

2013-06-19 Por tema Norberto
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

2013-06-19 Por tema Ariel Arrebola
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?

2013-06-19 Por tema Rafael Copquin

¡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?

2013-06-19 Por tema Ale Paciotti
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?

2013-06-19 Por tema francisco prieto
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

2013-06-19 Por tema francisco prieto
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?

2013-06-19 Por tema francisco prieto
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

2013-06-19 Por tema Norberto Mario Alvarez
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