Cuando ejecuto el Sistema en una máquina que tiene Windows 10 con el MySql instalado con la aplicación XAMPP no me arroja error, pero cuando lo ejecuto en un Servidor que tiene Windows Server 2008 me arroja el error de clave duplicada.
A continuación pongo el código:
- Code: Select all Expand view RUN
- PROCEDURE EditDeu(lAppend)
Local vCod:=0, lSave:=.F., oCDeu, oLoca, oProvi, oCodPos, oTele
Public cNomDeu :=Space(30), nNumDoc :=0
If lAppend
oQryDeu:GetBlankRow(.F.)
Else
oQryDeu:GetRow()
EndIf
DEFINE DIALOG UDlgE RESOURCE "DATOSDEUDOR" ;
TITLE If( lAppend, "AGREGAR DEUDOR", "MODIFICAR DEUDOR" )
REDEFINE SAY oCDeu VAR oQryDeu:Codigo ID 21 OF UDlgE
REDEFINE DBCOMBO oTipoDoc VAR oQryDeu:TipoDoc ID 22 OF UDlgE ;
ALIAS oQryDocu ITEMFIELD "coddocu" LISTFIELD "nomdocu" ;
UPDATE
REDEFINE GET oQryDeu:NroDoc ID 23 OF UDlgE picture '999,999,999'
REDEFINE DBCOMBO oTipoIva VAR oQryDeu:t_cuit ID 4003 OF UDlgE ;
ALIAS oQryIva ITEMFIELD "codiva" LISTFIELD "nomiva" ;
UPDATE
REDEFINE GET oQryDeu:n_cuit ID 4005 OF UDlgE picture '99-99999999-9'
REDEFINE DBCOMBO oTipoCiv VAR oQryDeu:esta_civil ID 4006 OF UDlgE ;
ALIAS oQryCivil ITEMFIELD "codcivil" LISTFIELD "nomcivil" ;
UPDATE
REDEFINE GET oQryDeu:Nombres ID 32 OF UDlgE picture '@!' //;
// VALID BusNom(lAppend,oQryDeu:Nombres,oQryDeu:NroDoc)
REDEFINE GET oQryDeu:Direc ID 25 OF UDlgE picture '@!'
REDEFINE DBCOMBO oBarru VAR oQryDeu:CodBarr ID 26 OF UDlgE ;
ALIAS oQryBarr ITEMFIELD "ccodigo" LISTFIELD "nombre" ;
ON CHANGE (ActuBarrio(3,oQryDeu:CodBarr), oLoca:Refresh(), oProvi:Refresh(), oCodPos:Refresh()) ;
UPDATE
REDEFINE GET oLoca VAR oQryDeu:Locali ID 27 OF UDlgE picture '@!'
REDEFINE GET oProvi VAR oQryDeu:Provi ID 28 OF UDlgE picture '@!'
REDEFINE GET oCodPos VAR oQryDeu:CodPos ID 30 OF UDlgE
REDEFINE GET oTele VAR oQryDeu:Telefono ID 31 OF UDlgE
REDEFINE GET oQryDeu:Trabaja ID 36 OF UDlgE
REDEFINE GET oQryDeu:Ocupa ID 34 OF UDlgE
REDEFINE GET oQryDeu:Ult_Act ID 33 OF UDlgE
REDEFINE GET oQryDeu:Obser ID 35 OF UDlgE
REDEFINE GET oQryDeu:email ID 4002 OF UDlgE
REDEFINE BTNBMP oBtnA ID 250 OF UDlgE MESSAGE "Graba el Deudor..." ;
FILE "./BmpN/Grabar_24.PNG" PROMPT "Grabar" LEFT ;
ACTION (MsgAlert(oQryDeu:Nombres),lSave:=.T., UDlgE:End());
REDEFINE BTNBMP oBtnC ID 240 OF UDlgE MESSAGE "Cancela el Movimiento..." ;
FILE "./BmpN/Cancelar.bmp" PROMPT "Cancelar" LEFT ;
ACTION UDlgE:End()
ACTIVATE DIALOG UDlgE CENTERED
MsgAlert(oQryDeu:Nombres)
If lAppend
If !lCargaDeu
MsgAlert("Usuario no Autorizado para cargar Deudores...!")
lSave:=.F.
EndIf
Else
If !lModiDeu
MsgAlert("Usuario no Autorizado para Modificar Deudores...!")
lSave:=.F.
EndIf
EndIf
If lSave
If lAppend
oQryDeu:lAppend := .T.
EndIf
oQryDeu:Save()
oQryDeu:Refresh()
EndIf
Return Nil
Puse dos MsgAlert para ver la secuencia y en el primero me muestra El nombre de quien quiero dar de alta pero en el segundo me muestra el nombre del primer registro de la tabla, es como que cuando saliera del dialogo se ubicara al comienzo de la tabla.
Lo mas extraño es que con otras tablas funciona bien, por ejemplo el siguiente código
- Code: Select all Expand view RUN
- PROCEDURE EditEsta(lAppend)
Local oEstaDi, oEstaPa, oEstaVi, lSave:=.F.
oQryE2 := oServer:Query( "SELECT codigo, descrip FROM estados ORDER BY codigo ASC" )
DEFINE FONT oFont30 NAME "Times New Roman" SIZE 0,-30 BOLD
DEFINE FONT oFont20 NAME "Times New Roman" SIZE 0,-20 BOLD
DEFINE FONT oFont14 NAME "Times New Roman" SIZE 0,-14 BOLD
If lAppend
oQryEsta:GetBlankRow(.F.)
Else
oQryEsta:GetRow()
EndIf
DEFINE DIALOG UDlgE RESOURCE "DATOSESTA" ;
TITLE If( lAppend, "AGREGAR ESTADO", "MODIFICAR ESTADO" )
REDEFINE GET oQryEsta:Codigo ID 100 OF UDlgE picture '999' COLOR "N/W" FONT oFont20
REDEFINE GET oQryEsta:Descrip ID 101 OF UDlgE picture '@!' COLOR "N/W" FONT oFont20
REDEFINE RADIO oTipoEsta VAR oQryEsta:TEstado ID 102, 103 OF UDlgE
REDEFINE GET oQryEsta:Dia_Movi ID 104 OF UDlgE picture '999'
REDEFINE DBCOMBO oEstaDi VAR oQryEsta:Codigo_D ID 105 OF UDlgE ;
ALIAS oQryE2 ITEMFIELD "codigo" LISTFIELD "descrip"
REDEFINE DBCOMBO oEstaPa VAR oQryEsta:Codigo_P ID 106 OF UDlgE ;
ALIAS oQryE2 ITEMFIELD "codigo" LISTFIELD "descrip"
REDEFINE DBCOMBO oEstaVi VAR oQryEsta:Codigo_V ID 107 OF UDlgE ;
ALIAS oQryE2 ITEMFIELD "codigo" LISTFIELD "descrip"
REDEFINE BTNBMP oBtnA ID 250 OF UDlgE MESSAGE "Graba el Deudor..." ;
FILE "./BmpN/Grabar_24.PNG" PROMPT "Grabar" LEFT ;
ACTION (lSave:=.T., UDlgE:End());
REDEFINE BTNBMP oBtnC ID 240 OF UDlgE MESSAGE "Cancela el Movimiento..." ;
FILE "./BmpN/Cancelar.bmp" PROMPT "Cancelar" LEFT ;
ACTION UDlgE:End()
ACTIVATE DIALOG UDlgE CENTERED
If lSave
If lAppend
oQryEsta:lAppend := .T.
EndIf
oQryEsta:Save()
oQryEsta:Refresh()
EndIf
oQryE2:End()
oFont30:End()
oFont20:End()
oFont14:End()
Return Nil
funciona bien, muy raro el error....