PDA

Ver la Versión Completa : error 'Key violation'


Ksiopea
02-07-2010, 15:00:46
Hola a todos, es la primera vez que entro acá y no se si lo estoy haciendo correctamente. mi consulta es la siguiente: estoy haciendo una aplicación en delphi y me genera un error de 'key violation' el procedimiento que tengo es el siguiente:

procedure TForm15.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
If e is EDBEngineError then
If EDBEngineError(e).Errors[0].ErrorCode = DBIERR_KEYVIOL then
DataBaseError('El código ya existe');
end;

lo he usado varias veces y funciona correctamente, pero, ahora tengo instalado windows 7 y he tenido algunos problemas con delphi, lo extraño es que con el win 7 genera el error y se cuelga la aplicación, pero el mismo ejecutable lo corro en otra pc con xp y funciona correctamente. alguien podra ayudarme y decirme si hay algún codigo que se estará manejando distinto en win7 o que podra ser el error. DESDE YA MUCHAS GRACIAS A TODOS.

marcoszorrilla
02-07-2010, 15:22:36
¿Dónde tienes instalado el BDE? Calculo que sea un problema de permisos, si así fuera quita el BDE y vuelve a instalarlo por ejemplo en una carpeta dentro de la aplicación que se supone tiene permisos de escritura.

Un Saludo.

ecfisa
02-07-2010, 15:56:38
Hola Ksiopea y bienvenido.

No tengo W7 y desconozco que versíon de Delphi estés usando.
Asumiendo que sea Delphi 7:

http://www.clubdelphi.com/foros/showthread.php?t=67331
http://www.clubdelphi.com/foros/showthread.php?t=43414
http://www.taringa.net/posts/ebooks-tutoriales/4612674/How-to-Instalar-Delphi-7-en-Windows-7.html

Espero que te sirva.

Saludos.

Ksiopea
02-07-2010, 15:59:34
el DBE esta en C:\Program Files (x86)\Common files\borland Shared\DBE

me habian comentado que tenia que poner permiso de administrador en un par de carpetas, que lo hice y en realidad no recuerdo bien por donde entre, soy nueva en win 7 y me cuesta encontrar algunas cosas

ecfisa
02-07-2010, 16:25:31
Hola de nuevo.

Esto funciona para Delphi 7 en Windows Vista , tendrías que probar si lo hace en W7.

PERMISOS
1. Ejecutar: regedit
2. Abrir HKEY_LOCAL_MACHINE
3. Abrir SOFTWARE
4. Sobre la entrada "Borland" click con el botón derecho
5. Elegir "Permisos"
6. Click sobre "Usuarios"
7. Bajo "Permisos de usuarios", seleccionar Permitir "Control total"
8. Click sobre "Aceptar"
9. Salir de regedit

CONFIGURAR EL BDE
1. Botón inicio -> Panel de control -> BDE Adminstrator
2. Debajo de "All Database Aliases" click sobre pestaña "Configuration"
3. Click sobre "Drivers" -> "Native" -> "PARADOX"
4. La entrada "NET DIR" aparece como "C:\", cambiarla por otra,
puede ser cualquiera existente o creada al efecto, "C:\BDEShare" como ejemplo

Saludos.

Ksiopea
02-07-2010, 17:30:42
Hola de nuevo, cambie las configuraciones que me han pasado y ahora está funcionando, siempre que corra la aplicación desde el ejecutable "BIEEENNN", pero si lo hago desde el delphi "sigue con el error", pero al menos se que puedo ejecurar la aplicación y el código funciona, supongo que habrá alguna otra configuración que retocar, el delphi no me lo instalo del todo bien de entrada, por ejemplo no me dejaba guardar en el repositorio, entre otras cosas, gracias a todos. ah, estoy trabajando con delphi 6. gracias.

GerTorresM
10-07-2010, 00:59:28
No se ajuste a tu problema pero te planteo la siguiente solución:

ubícate el BDE, paso a seguir en propiedades busca compatibilidad y le seccionas compatible con winxp service pack 2 o 3 el que sea de tu gusto y finalmente seleccionar ejecutar como administrador.

Adicionalemente prueba este código


procedure TDMPrediosMilenium.TInteresPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
MessageDlg('No se puede Grabar el Registro',mtInformation,[mbOk],0);
Action := daAbort;
end;



gertorresm
Colombia