Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duplicates not allowed (https://www.clubdelphi.com/foros/showthread.php?t=93551)

identsoft 08-11-2018 12:52:13

Duplicates not allowed
 
Un saludo para todos.
Al iniciar un ejecutable me sale este error "DUPLICATES NOT ALLOWED" y no permite la ejecución.
¿A alguien le ha pasado esto?.¿Sabéis a que puede ser debido?
Esto solo pasa en el ordenador del cliente(Windows 7). En el mio (Windows 10 ) no pasa y en un portátil al que llevé el ejecutable(Windows 8) tampoco pasa.
He buscado en google y no he encontrado nada.
Muchas gracias a todos.

Casimiro Notevi 08-11-2018 14:18:06

Sigue tu programa paso a paso, es imposible adivinar qué es.
Por decir algo... al iniciar el programa guardas algo en una tabla de una base de datos y estás intentado guardar un campo clave o "unike" que no permite duplicados.
Pero esto es por decir algo.

identsoft 08-11-2018 14:43:51

Gracias por contestar Casimiro pero en mi ordenador (donde tengo el IDE) funciona prefectamente. No da ningún tipo de error.
El problema me lo da en el cliente en cuanto pincho sobre el icono del ejecutable. No da tiempo ni a conectar con la base de datos(por cierto firebird 2.1).
Lo único que hago al principio es cargar los parámetros de conexion con la BD desde un fichero INI y los cargo de esta forma:
Código Delphi [-]
   

     Params.values['Database'] := INIFile.ReadString('FBISSEGUROS','Database','');
     Params.Values['DriverName'] :=  INIFile.ReadString('FBISSEGUROS','DriverName','');
     Params.Values['User_Name'] := INIFile.ReadString('FBISSEGUROS','User_Name','');
     Params.Values['Password'] := INIFile.ReadString('FBISSEGUROS','Password','');
     Params.Values['sqldialect'] := INIFile.ReadString('FBISSEGUROS','sqldialect','');
     Params.Values['HostName'] := INIFile.ReadString('FBISSEGUROS','HostName','');
     ConnectionName := 'FBISSEGUROS';
     DriverName := 'FIREBIRDCONNECTION';
     GetDriverFunc := 'getSQLDriverFIREBIRD';
     LibraryName := 'dbx4fb.dll';
     VendorLib := 'fbclient.dll';
     LoginPrompt := False;
     Connected := True;


Pueden ir por ahí los tiros?
por si sirve de ayuda la propiedad LoadParamsOnConnect la tengo a false.


De todas formas, insisto en que en el ordenador en el que hizo la aplicacion funciona correctamente.

Casimiro Notevi 08-11-2018 21:01:20

Ya te digo, habría que seguir el código paso a paso para comprobarlo, o al menos tener el código fuente.
Así, a ciegas, es casi imposible poder ayudarte.
Sobre todo prque ese es un mensaje muy "general", no tiene código de error, ni nada para poder hacer búsqueda y ver al menos a qué programa pertenece.

Neftali [Germán.Estévez] 09-11-2018 13:18:41

Ese error me suena de cuando intentas añadir valores a un TStringList que tiene la propiedad Dupicates a valor dupError (

http://docwiki.embarcadero.com/Libra...ist.Duplicates) o también cuando intentas añadir duplicados a un diccionario de la clase TDictionary (http://docwiki.embarcadero.com/Libra...Dictionary.Add)

Si tú no usas ninguna de esas clases, es posible que sea algún componente de los que estás utilizando.



Más de aquí no creo que se pueda llegar si no concretas más. Qué estás utilizando, qué componentes, qué hacer al iniciar la app,...

Si tú no consigues reproducirlo y sólo pasa en un cliente, lo habitual es añadir logs a tu aplicación (sobre todo la parte inicial), pasarle esa versión al cliente para que la ejecute y luego recoger los logs para añalizarlos. Repetir este paso hasta que consigas saber qué es lo que está generando ese error.

identsoft 12-11-2018 12:43:04

Gracias por vuestra ayuda.
No podía daros más información porque creía que el error se producía al abrir la aplicación (por eso pasé los parámetros de conexión), cuando el error lo da,realmente, al cerrar la aplicación.
Cuando cierro, grabo en un fichero de bd una serie de datos(usuario, hora, fecha, etc...). Me he dado cuenta ahora, que el problema viene porque no accede a la base de datos, entonces se genera un registro sin datos y ahí era cuando me daba el error "Duplicates not allowed".
Ahora el problema viene porque no puedo acceder a la base de datos (Firebird 2.5) a través de dbexpress (Sqlconnection). La base de datos está en local(localhost). He probado también a desactivar firewall y compartir carpeta donde está la bd.
Como os decía, en mi ordenador y en otros ordenadores funciona bien. Debe ser algo del Ordenador del cliente.
Gracias Casimiro y Neftali por vuestra ayuda.

Casimiro Notevi 12-11-2018 14:16:45

Cita:

Empezado por identsoft (Mensaje 529488)
Gracias por vuestra ayuda.
No podía daros más información porque creía que el error se producía al abrir la aplicación (por eso pasé los parámetros de conexión), cuando el error lo da,realmente, al cerrar la aplicación.
Cuando cierro, grabo en un fichero de bd una serie de datos(usuario, hora, fecha, etc...). Me he dado cuenta ahora, que el problema viene porque no accede a la base de datos, entonces se genera un registro sin datos y ahí era cuando me daba el error "Duplicates not allowed".
Ahora el problema viene porque no puedo acceder a la base de datos (Firebird 2.5) a través de dbexpress (Sqlconnection). La base de datos está en local(localhost). He probado también a desactivar firewall y compartir carpeta donde está la bd.
Como os decía, en mi ordenador y en otros ordenadores funciona bien. Debe ser algo del Ordenador del cliente.
Gracias Casimiro y Neftali por vuestra ayuda.


Estás dando información que no tiene sentido, deberías precisar lo que ocurre, porque de otra forma es imposible ayudar.
Es muy distinto abrir la aplicación a cerrar la aplicación.
Dices que "no accede a la BD, por eso se genera un registro sin datos", eso es imposible, porque si no accede a la BD entonces no puede generar ningún registro, le leer, ni borrar, ni nada de nada.
Luego dices que "el problema viene porque no puede acceder a la bd", lo mismo de antes, no puede intentar duplicar nada si no está conectada.
Dices que has compartido la carpeta donde está la BD, ¿eso para qué?, eso no sirve para nada, además de que no hay que hacer eso nunca.
Dices que funciona en tu ordenador, por lo que el problema debe ser del ordenador del cliente. Pues seguro que no es por eso, el problema es de tu programa.

Céntrate en lo que haces, sigue paso a paso el programa, asegúrate de saber exactamente qué está pasando, porque para solucionar un problema, primero hay que saber cuál es ese problema.


La franja horaria es GMT +2. Ahora son las 11:23:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi