martes, 19 de marzo de 2024

REGISTROS REPETIDOS

 

Se infringe la unicidad del índice empresa1

Síntomas

Durante la reparación de índices o durante la actualización aparece el mensaje

Se infringe la unicidad del índice empresa1

Causas

Cuando aparece el mensaje de error Se infringe la unicidad del índice -nombre del índice- quiere decir que en la tabla existen registros repetidos incorrectos, puesto que el índice principal debe ser único. Por ejemplo:

  • No puede haber dos artículos con el mismo código (tabla Articulo, índice principal "Codigo").
  • Ni dos albaranes de la misma empresa con el mismo número y letra (tabla C_albven, índice principal "Empresa+Numero+Letra").

Solución

Podemos solucionar este problema de dos formas:

  • En el apartado Procesos de las Utilidades del supervisor, programa Util.exe, se encuentra el proceso "Eliminar registros repetidos". Al ejecutar este proceso hay que seleccionar la base de datos de la tabla, la tabla y escribir la expresión del índice. Por ejemplo, para la tabla D_albcom la expresión del índice principal es "Empresa+Proveedor+Numero+STR(Linia, 7)". Aparecerán los registros repetidos. Con el botón "Borrar todos" podremos borrar los registros incorrectos.
  • También, podemos hacer la reparación manualmente desde las Utilidades del supervisor con las indicaciones siguientes:
  1. Entrar en la opción Bases de datos y seleccionar la ruta de la base de datos a la que pertenece la tabla que vamos a reparar.
  2. Marcar la tabla y pulsar el botón Contenido. Activar la opción Ventana de comandos en la parte inferior de la pantalla.
  3. Para ver los registros repetidos hay que ejecutar la siguiente instrucción:

SELECT empresa + proveedor + numero + STR(linia, 7) as clave, COUNT(*) as conta FROM d_albcom WHERE !DELETED() GROUP BY 1 HAVING conta > 1 TO PRINTER NOCONSOLE

# Con la cláusula TO PRINTER NOCONSOLE se realiza la impresión del resultado en papel.

Esta consulta mostrará la lista de claves repetidas. Después para cada clave deberemos realizar un filtro de la tabla para examinar los registros repetidos y borrar los que no procedan.

SET FILTER TO Empresa+Proveedor+Numero+STR(Linia, 7) = "clave"

viernes, 18 de junio de 2021

Tallas y colores no se activa

 


Por tablas poner a True la opcion 9004 :


SELECT empresa, tipo_opc, estado FROM [2009i1].dbo.opcemp WHERE empresa='01' and tipo_opc=9004

viernes, 26 de marzo de 2021

Cambiar la empresa stock de una empresa

 

  • Desde las Utilidades del supervisor (programas Util.exe o Utilcs.exe), entrar en la opción "Bases de datos" y seleccionar la base de datos del ejercicio.
  • Abrir la tabla FACTUCNF.
  • Introducir el código de la empresa stock en el campo emp_stock de la empresa que queremos modificar. Lo podemos hacer manualmente o con la siguiente instrucción en la tabla factucnf :

 REPLACE emp_stock with "SS" FOR empresa = "EE"


donde SS es el código de la empresa stock y EE es el código de la empresa a la que cambiaremos el stock.

  • Después vaciar las tablas stocks y stocks2 desde las utilidades del supervisor.
  • Y realizar un recálculo de stock desde EUROWIN en la empresa a la que hemos cambiado la empresa stock.

martes, 23 de marzo de 2021

Cambio de servidor con Eurowin 8.0 SQL con SQL Server


 Para cambiar el servidor de Eurowin hay que seguir estos pasos:

  1. Liberar la licencia de la instalación antigua. En el caso de trabajar con multiempresa hay que repetir la operación para todos los grupos.
  2. Realizar la copia de seguridad completa del servidor de Eurowin Ew800serv.
  3. Realizar copia de seguridad completa, con la herramienta Menrepa, incluyendo todos los ejercicios de gestión, todos los comunes, reports y módulos. Si está instalado el módulo Gestión Documental, NO marcar la opción "Incluir documentos", se copiarán manualmente.
  4. Instalar Eurowin en el nuevo servidor. No es necesario instalar módulos ni multiempresa.
  5. (opcional) Tomar nota de las bases de datos que se crean durante la instalación para borrar las que no se utilicen una vez finalizado el proceso.
  6. Restaurar las carpetas del servidor de Eurowin: INFORADI, PRGS_MOD, PRGS_ERR, MODULOS, UTIL, REPORTS, GRUPOS, MULTIEMPRESA.
  7. Restaurar copia de seguridad de los datos realizada con la herramienta Menrepa.
  8. (opcional recomendable) Actualizar toda la instalación de Eurowin con el CD de instalación.
  9. Hacer los cambios pertinentes en los ficheros de configuración config.ini, cfgclisrv.dbf y grupos.dbf para que las rutas hagan referencia a la nueva ubicación y las instancias sean las de la nueva máquina. En el caso de tener multiempresa se debe verificar que exista un registro para cada grupo. El código de grupo debe coincidir con los 4 últimos dígitos de la base de datos comunes del grupo. Recordar que hay una tabla CFGCLISRV.dbf en todos los GRUPOS y todos deben ser corregidos. En el módulo Gestión Documental también hay que corregir el campo PATHDOC de la tabla TIPO_DOC en la base de datos EWGESTDOC.
  10. Arrancar Eurowin y registrar licencia. Si trabaja con multiempresa, con la versión 8.37.54 del 02-03-2011 o posterior, entrando en el grupo principal se pueden registrar masivamente todos los grupos si en la tabla CODCOM de Comunes de todos los grupos existe el campo EFEC_REMC. Si no, el registro se hará individualmente.
  11. Compartir la carpeta del Ew800serv y configurar el firewall o cortafuegos.
  12. Cambiar las rutas del fichero Config.ini del resto de terminales.

martes, 20 de agosto de 2019

Crear el usuario Eurowin en el servidor de SQL Server


Entrar en el programa SQL Server Management Studio Express con el usuario "sa" y la clave correspondiente. Por defecto en Eurowin es 902211218 o ew#711203.
  • Explorador de objetos - Object explorer
    • Instancia Servidor\Sqlexpress
      • Seguridad - Security
        • Inicios de sesión - Logins
          • (con el botón derecho del ratón) Nuevo inicio de sesión - New login
            • Pantalla Inicio de sesión - Nuevo / Login - New
              • General - General
                • Nombre de inicio de sesión - Login name: Introducir el nombre del nuevo usuario 'Eurowin'
                • Autenticación de SQL Server - SQL Server authentication: Marcar esta opción
                • Contraseña - Password: En Eurowin es 902211218 o ew#211203 
                • Confirmar contraseña - Confirm password
                • Idioma predeterminado - Default language: Spanish
              • Pantalla Asignación de usuarios - User Mapping
                • Usuarios asignados a este inicio de sesión - Users mapped to this login: Marcar las bases de datos de la aplicación para el usuario Eurowin.
                • Asignar el usuario Eurowin como Propietario - Owner de todas las bases de datos de Eurowin (se explica en el siguiente punto). Como consecuencia, en el apartado "Miembros de la función de base de datos para - Database role membership for": (nombre de base de datos seleccionada en la parte superior), están marcadas las opciones siguientes para cada base de datos.
                  • db_owner
                  • public
Asignar el usuario Eurowin como Propietario de las bases de datos de Eurowin: Aceptar para volver a la pantalla principal y buscar las propiedades de las bases de datos que hemos seleccionado en el paso anterior:
  • Explorador de objetos - Object explorer
    • Instancia Servidor\Sqlexpress
      • Bases de datos - Databases
        • 2011i1
          • (con el botón derecho del ratón) Propiedades - Properties
            • Pantalla Propiedades de la base de datos 2005i1 - Database Properties 2011i1
              • Ficheros - Files
                • Propietario - Owner: Asignar como propietario al usuario 'Eurowin'.
              • General » Base de datos » Propietario - General » Database » Owner = Eurowin (comprobación).
Aceptar y repetir el proceso para todas las bases de datos del programa.

miércoles, 23 de mayo de 2018

Recuperar una base de datos cuando sólo se tiene el archivo MDF de una base de datos de SQL Server


Procedimiento

Este procedimiento es aplicable en SQL Server 2005 y en SQL Server 2008.
1. En SQL Server Management Studio iniciamos la sesión con el usuario "sa".
2. En el Explorador de objetos > basede datos, hacer clic en el nodo derecho y seleccionar la opción "Adjuntar …" de la lista desplegable.
3. Esto abre la ventana "Adjuntar basede datos" donde se encuentra el botón "Agregar …" que abre la ventana "Buscar archivos de basede datos".
4. En la ventana "Buscar archivos de basede datos" seleccionar el fichero MDF de la base de datos que carece de fichero LDF.5. En la ventana "Adjuntar basede datos", SQL Server informa de que el archivo de registro no se encuentra. Con el fin de adjuntar la base de datos sin el fichero de registro de transacciones LDF hay que pulsar sobre el registro del fichero LDF, pulsar el botón "Quitar" y, finalmente, hacer clic en "Aceptar" para adjuntar la base de datos sin el fichero deregistro de transacciones.
Hemos adjuntado una base de datos sin utilizar el archivo de registro de transacciones. SQL Server crea un nuevo archivo de registro de transacciones y lo coloca en la misma carpeta que el archivo de datos. Se recomienda ejecutar una instrucción DBCC CHECKDB sobre la base de datos adjuntada para comprobar su integridad.

Uso de T-SQL para adjuntar una base de datos de SQL Server sin un archivo de registro de transacciones

También puede adjuntar una base de datos de SQL Server sin un registro de transacciones con el siguiente código T-SQL.
En este script utilizamos la instrucción CREATE DATABASE con la opción de adjuntar y especificando el nombre y la ubicación del archivo MDF que tenemos de la base de datos.
USE [master]
GO
CREATE DATABASE [COMU] ON
(FILENAME=C:\Archivosdeprograma\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\COMU0001.mdf ')
FOR ATTACH
GO
Una vez ejecutado el script con éxito obtenemos un mensaje informando de que SQL Server ha creado un nuevo archivo de registro de transacciones de la base de datos. Se recomienda comprobar la integridad física y lógica de todos los objetos dentro de la base de datos mediante la ejecución de un DBCC CHECKDB.
Hay que tener en cuenta los siguientes puntos:
  • Si la base de datos tiene datos de múltiples archivos se puede utilizar este método, así como crear un nuevo archivo de registro de transacciones.
  • Si la base de datos tenía varios archivos de registro de transacciones emplearemos la opción ATTACH_REBUILD_LOG con el comando CREATE DATABASE.
  • Si pierde uno de sus archivos de datos para una base de datos no puede utilizar este procedimiento.



lunes, 12 de marzo de 2018

Cómo configurar el firewall de Windows para SQL Server

Para trabajar con Eurowin 8.0 SQL con SQL Server no hay que deshabilitar el cortafuegos sino que hay que configurarlo para los tres ámbitos de trabajo: privado, público y dominio.
Para ello, en el cortafuegos de Windows hay que crear una regla de entrada para los componentes de la aplicación SQL Server como una excepción:

1.- Obtener la ruta del ejecutable de SQL Server

Esta ruta se puede ver en las propiedades del servicio de SQL Server:
  1. Pulsar el botón derecho del ratón sobre el icono Mi PC del escritorio de Windows.
  2. Seleccionar la opción Administrar. Se abre la pantalla "Administración de equipos".
  3. Desplegar la opción "Servicios y aplicaciones" y seleccionar Servicios.
  4. Localizar y marcar el servicio SQL Server (SQLEXPRESS).
  5. Pulsar el botón derecho del ratón, seleccionar la opción Propiedades.
  6. En la opción "Ruta de acceso al ejecutable" de la pestaña "General" se encuentra la ruta.
     c:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe


2.- SQL Server Browser

Para el buen funcionamiento de Eurowin también hay que habilitar el permiso del servicio de SQL Server Browser. La ruta del servicio de SQL Server Browser se obtiene de la misma forma.
  c:\Archivos de programa\Microsoft SQL Server\90\Shared\sqlbrowser.exe

3.- Configurar el firewall

Ahora hay que configurar el cortafuegos de Windows 7 para que se pueda conectar al servicio a través de red.
  1. Panel de control
  2. Herramientas de administración
  3. Firewall de Windows con seguridad avanzada
  4. Opción "Reglas de entrada" (Inbound rules). (en la parte izquierda de la pantalla)
  5. "Nueva regla" (New rule). (a la derecha de la pantalla)
    • Tipo de regla: "Programa" [Botón Siguiente]
    • Ruta del programa: la localizada en el punto 1 para SQL Server (sqlservr.exe) [Botón Siguiente]
    • Marcar la opción "Permitir la conexión" (Allow the connection) [Botón Siguiente]
    • ¿Cuando aplicar esta regla? (when does this rule aply?): Marcar DominioPrivadoPublico [Botón Siguiente]
    • Escribir el nombre para la regla y la descripción. [Botón Finalizar]
  6. Crear otra regla igual para el programa SQL Server Browser (sqlbrowser.exe) en la ruta del punto 2.
De esta forma el Firewall de Windows 7 permite cualquier conexión de SQL Server que se produzca.