ADORDD FAQs

User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Este caso este también reportado aquí pero paso la prueba que acabo de hacer
http://fivetechsupport.com/forums/viewt ... &start=255

Codigo para adoddr SET

Code: Select all

-------------------------------------------------------
function Main()
     local oErr

   SET RESOURCES TO "OBRAS32.DLL"

   INI oIni FILE ".\Obras32.ini"

       GET IniPath SECTION "Archivos" ENTRY "Path"   OF oIni
       GET cRddDrv SECTION "Archivos" ENTRY "RddDrv" OF oIni
       GET cCopias SECTION "Archivos" ENTRY "Copias" OF oIni

   RddRegister("ADORDD",1)
   RddSetDefault("ADORDD")

   SET ADO TEMPORAY NAMES INDEX LIST TO {"TMP","TEMP"}    
   SET ADO DEFAULT RECNO FIELD TO "id"

   Try
     SET ADO DEFAULT DATABASE TO "empre01" SERVER TO "localhost" ENGINE TO "MYSQL" USER TO "obras" PASSWORD TO "angel"
     MsgInfo( ADOVERSION() )
   Catch oErr
     Alert ("No puedo abrir MySql")
   End

   cEmpresa := "APUNTES"

   SELE 0
   Alert ("Antes de use")
   USE  (cEmpresa) alias  "APUNTES" 
   SELE APUNTES
   Alert ("Despues de use")

   browse()
   Alert ("Despues de browse")

//   
-----------------------------------------------
 
Resultado de error.log
------------------------------------------------
Application
===========
Path and name: D:\OBRAS32\Obras32.exe (32 bits)
Size: 3,695,616 bytes
Compiler version: Harbour 3.2.0dev (r1601050904)
FiveWin Version: FWH 16.03
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 2 secs
Error occurred at: 04/19/16, 17:53:40
Error description: Warning /0

Stack Calls
===========
Called from: .\SOURCE\adordd.PRG => ADO_OPEN( 0 )
Called from: => DBUSEAREA( 0 )
Called from: .\SOURCE\Obras32.PRG => MAIN( 0 )

System
======
CPU type: AMD Turion(tm) 64 X2 Mobile Technology TL-60 2000 Mhz
Hardware memory: 3839 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Windows total applications running: 6
1 ,
2 , C:\WINDOWS\SYSTEM32\shcore.dll
3 , C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.10240.16384_none_3bccb
4 , D:\OBRAS32\Obras32.exe
5 DDE Server Window, C:\WINDOWS\SYSTEM32\OLE32.DLL
6 GDI+ Window, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.10240.16603_none_d15a3826af6dc

Variables in use
================
Procedure Type Value
==========================
ADO_OPEN
Param 1: O Class: ERROR
DBUSEAREA
Param 1: N 1
Param 2: A Len: 8
Local 1: A Len: 42
Local 2: U NIL
Local 3: A Len: 5
Local 4: U NIL
Local 5: N 0
Local 6: O Class: TOLEAUTO
Local 7: N 10
Local 8: N 11
MAIN
Param 1: L .F.
Param 2: U NIL
Param 3: C "APUNTES"
Param 4: C "APUNTES"
Param 5: U NIL
Param 6: L .F.

Linked RDDs
===========
DBF
DBFFPT
DBFBLOB
DBFNTX
ADORDD

DataBases in use
================

Classes in use:
===============
1 ERROR
2 HBCLASS
3 HBOBJECT
4 TINI
5 WIN_OLEAUTO
6 TOLEAUTO
7 TFONT
8 TWINDOW
9 TDIALOG
10 TBRUSH
11 TCONTROL
12 TICON
13 TMULTIGET
14 TBUTTON
15 TRECT
16 TREG32

Memory Analysis
===============
1810 Static variables

Dynamic memory consume:
Actual Value: 0 bytes
Highest Value: 0 bytes
--------------------------------------------

Pantallazos de la versión MsgInfo( ADOVERSION() ) y de la tabla en MySql con la estructura contenido etc...
-------------------------------------
aquí vemos la versión con la que se ha ejecutado y el error que da

Image

aquí pongo la estructura de la tabla empre01.APUNTES y las librerías usadas en el prg y make
Image
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
AHF
Posts: 837
Joined: Fri Feb 10, 2006 12:14 pm

Re: ADORDD FAQs

Post by AHF »

Now its not anymore UR_SUPER_ADDFIELD(0).

Can you please check the adordd line where the error is occurring?
Regards
Antonio H Ferreira
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Hello Antonio.

How can I do that ?

Greetings
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ADORDD FAQs

Post by Antonio Linares »

No uses /l al llamar a harbour al compilar adordd.prg para que los números de línea aparezcan aqui:

Stack Calls
===========
Called from: .\SOURCE\adordd.PRG => ADO_OPEN( 0 )
Called from: => DBUSEAREA( 0 )
Called from: .\SOURCE\Obras32.PRG => MAIN( 0 )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Gracias Antonio, lo probaré a la tarde
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Muchas gracias a los dos Antonio's por vuestra ayuda , sin ella no lo habría conseguido.
gracias a la traza de las líneas he visto que es lo que sucedia

Prueba y falla en DEFAULT RECNO
1º default recno tiene que se en mayúsculas
Así esta bien
SET ADO DEFAULT RECNO FIELD TO "ID"
Así falla
SET ADO DEFAULT RECNO FIELD TO "id"


Pruebo de nuevo y falla un poco mas adelante en DEFAULT DELETED

2º Es obligatoria la columna con flag de DELETED , añado el SET y la columna

SET ADO DEFAULT DELETED FIELD TO "HBDELETE"
He alterado la tabla , he creado la columna HBDELETE et voilà :D

Image

Ahora toca dar forma al resto del proyecto

Repito muchas gracias
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ADORDD FAQs

Post by Antonio Linares »

Muy bien :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
AHF
Posts: 837
Joined: Fri Feb 10, 2006 12:14 pm

Re: ADORDD FAQs

Post by AHF »

Im glad you succeeded.

Can you post the error line number?
Regards
Antonio H Ferreira
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Buenos días Antonio (AHF)
Al principio me dio error porque el al activar SET HBRECNO puse 'id' en minúsculas, al poner "ID" en mayúsculas desapareció el error
SET ADO DEFAULT RECNO FIELD TO "id"

y luego active HBDELETED (como pone en el manual) :oops: y ya funcionó
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

AHF wrote:Im glad you succeeded.

Can you post the error line number?
He Migrando los .DBF que no tienen fechas correctamente, pero los que tiene fecha me da el error que pongo abajo
ya que la fecha la recoge en formato "0d19800103" ¿? (esto ya lo vi con el browse() de la tabla).
He probado a cambiar la fecha (SET DATE...) a AAAA-MM-DD etc... pero da siempre el mismo error.
He revidado adordd.prg pero no veo la manera de "engañarle"
Algo se me escapa :x , fechas hay por todos lados :shock:

Codigo
------------------------------------------

Code: Select all

   SET DATE  ITALIAN // FORMAT TO "YYYYMMDD"  // //
   SET CENTURY ON
   SetHandleCount(120)

   If Upper(cRddDrv) = "CDX"
      Request DBFCDX
      RddSetDefault("DBFCDX")
   EndIf

   RddRegister("ADORDD",1)
   RddSetDefault("ADORDD")

   SET ADO TEMPORAY NAMES INDEX LIST TO {"TMP","TEMP"}    
   SET ADO DEFAULT RECNO   FIELD TO "ID"
   SET ADO DEFAULT DELETED FIELD TO "HBDELETE"
   SET ADODBF TABLES INDEX LIST TO { ;
..............
                                   }
    SET ADO TABLES LOGICAL FIELDS LIST TO { { "IVACABE", { "IV_PAGADA" } } } 
    
    SET AUTOPEN OFF //can be on

   Try
     SET ADO DEFAULT DATABASE TO "EMPRE02" SERVER TO "localhost" ENGINE TO "MYSQL" USER TO "obras" PASSWORD TO "angel"
     // MsgInfo( ADOVERSION() ) 
   Catch oErr
     Alert ("No puedo abrir MySql")
   End

   Alert ("Comienzo de Upload")

    hb_AdoUpload( "D:\CONTA\EMPRE01\", "DBFCDX", "MYSQL", .T. )

   Alert ("Fin      de Upload")

El contenido de error.log veo que es en la línea 1944 (tratamiento de fechas),
--------------------------------------------------------------------------------------

Code: Select all

Application
===========
   Path and name: D:\OBRAS32\Obras32.exe (32 bits)
   Size: 3,783,168 bytes
   Compiler version: Harbour 3.2.0dev (r1601050904)
   FiveWin  Version: FWH 16.03
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 2 secs 
   Error occurred at: 2016-04-22, 20:43:20
   Error description: (DOS Error -2147352567) WINOLE/1007  [MySQL][ODBC 5.3(a) Driver][mysqld-5.7.12-log]Incorrect date value: '0d19800103' for column 'OB_FECINI' at row 1 (0x80004005): Microsoft OLE DB Provider for ODBC Drivers
   Args:
     [   1] = C   UPDATE OBRAS SET `OB_FECINI` = '0d19800103' WHERE `ID` = 1
     [   2] = U   NIL
     [   3] = N          128

Stack Calls
===========
   Called from:  => TOLEAUTO:EXECUTE( 0 )
   Called from: .\SOURCE\adordd.PRG => ADO_PUTVALUE( 1944 )
   Called from:  => __DBCOPY( 0 )
   Called from: .\SOURCE\adordd.PRG => HB_ADOUPLOAD( 6398 )
   Called from: .\SOURCE\Obras32.PRG => MAIN( 102 )

System
======
   CPU type: AMD Turion(tm) 64 X2 Mobile Technology TL-60 2750 Mhz
   Hardware memory:       3839 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 3
      1 ,                                                                                                     
      2 , D:\OBRAS32\Obras32.exe                                                                              
      3 GDI+ Window, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.10586.20_none_22adb5eaa762c7fa 

Variables in use
================
   Procedure     Type   Value
   ==========================
   TOLEAUTO:EXECUTE
     Param   1:    O    Class: ERROR
   ADO_PUTVALUE
     Param   1:    C    "UPDATE OBRAS SET `OB_FECINI` = '0d19800103' WHERE `ID` = 1"
     Param   2:    U    NIL
     Param   3:    N           128
     Local   1:    U    NIL
     Local   2:    U    ???:U
   __DBCOPY
     Param   1:    N             2
     Param   2:    N             7
     Param   3:    D    0d19800103
     Local   1:    A    Len:   42
     Local   2:    O    Class: TOLEAUTO
     Local   3:    N             1
     Local   4:    U    NIL
     Local   5:    C    "DD-MM-YYYY"
     Local   6:    A    Len:    7
     Local   7:    U    NIL
     Local   8:    A    Len:    0
     Local   9:    U    NIL
     Local  10:    U    NIL
     Local  11:    U    NIL
   HB_ADOUPLOAD
     Param   1:    C    "D:\CONTA\EMPRE01\OBRAS.DBF"
     Param   2:    A    Len:    0
     Param   3:    U    NIL
     Param   4:    B    {|| ... }
     Param   5:    U    NIL
     Param   6:    U    NIL
     Param   7:    L    .F.
     Param   8:    C    "ADORDD"
     Param   9:    U    NIL
     Param  10:    U    NIL
   MAIN
     Param   1:    C    "D:\CONTA\EMPRE01\"
     Param   2:    C    "DBFCDX"
     Param   3:    C    "MYSQL"
     Param   4:    L    .T.
     Local   1:    A    Len:    1
     Local   2:    A    Len:    5
     Local   3:    U    NIL
     Local   4:    O    Class: TOLEAUTO
     Local   5:    U    NIL
     Local   6:    U    NIL
     Local   7:    C    ""
     Local   8:    U    NIL
     Local   9:    C    ""
     Local  10:    L    .F.
     Local  11:    U    NIL
     Local  12:    A    Len:    5
     Local  13:    N             1

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX
   ADORDD

DataBases in use
================

  1: => ORIG                               RddName: DBFCDX
     ==============================
     RecNo    RecCount    BOF   EOF
          1          398      .F.   .F.

     Indexes in use                        TagName

     Relations in use

  2:    OBRASCP                            RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
          1            1      .F.   .F.

     Indexes in use                        TagName

     Relations in use

Classes in use:
===============
     1 ERROR
     2 HBCLASS
     3 HBOBJECT
     4 TINI
     5 WIN_OLEAUTO
     6 TOLEAUTO
     7 TFONT
     8 TWINDOW
     9 TDIALOG
    10 TBRUSH
    11 TCONTROL
    12 TICON
    13 TMULTIGET
    14 TBUTTON
    15 TRECT
    16 TREG32

Memory Analysis
===============
      1810 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Al final he migrado los datos con la utilidad FW_AdoImportFromDBF

pero cada vez que quiero modificar una fecha en la app se repite el mismo error, no se por donde seguir con el tema de las fechas, alguna idea ¿?

Code: Select all

Application
===========
   Path and name: D:\OBRAS32\Obras32.exe (32 bits)
   Size: 3,778,560 bytes
   Compiler version: Harbour 3.2.0dev (r1601050904)
   FiveWin  Version: FWH 16.03
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 38 secs 
   Error occurred at: 2016-04-23, 08:27:48
   Error description: (DOS Error -2147352567) WINOLE/1007  [MySQL][ODBC 5.3(a) Driver][mysqld-5.7.12-log]Incorrect date value: '0d20000830' for column 'AP_FECHA' at row 1 (0x80004005): Microsoft OLE DB Provider for ODBC Drivers
   Args:
     [   1] = C   UPDATE APUNTES SET `AP_FECHA` = '0d20000830' WHERE `ID` = 3916
     [   2] = U   NIL
     [   3] = N          128

Stack Calls
===========
   Called from:  => TOLEAUTO:EXECUTE( 0 )
   Called from: .\SOURCE\adordd.PRG => ADO_PUTVALUE( 1944 )
   Called from: .\SOURCE\abmapu.PRG => IMPORTE( 727 )
   Called from: .\SOURCE\abmapu.PRG => (b)LINEA( 150 )
   Called from: .\source\classes\TGET.PRG => TGET:LVALID( 1352 )
   Called from: .\source\classes\CONTROL.PRG => TGET:FWLOSTFOCUS( 1138 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1708 )
   Called from: .\source\classes\TGET.PRG => TGET:HANDLEEVENT( 667 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3278 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1041 )
   Called from: .\SOURCE\Obras32.PRG => MAIN( 188 )

System
======
   CPU type: AMD Turion(tm) 64 X2 Mobile Technology TL-60 2000 Mhz
   Hardware memory:       3839 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 5
      1 ,                                                                                                     
      2 , C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.10586.0_none_d3c2e4e96 
      3 , D:\OBRAS32\OBRAS32.DLL                                                                              
      4 , D:\OBRAS32\Obras32.exe                                                                              
      5 GDI+ Window, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.10586.20_none_22adb5eaa762c7fa 

Variables in use
================
   Procedure     Type   Value
   ==========================
   TOLEAUTO:EXECUTE
     Param   1:    O    Class: ERROR
   ADO_PUTVALUE
     Param   1:    C    "UPDATE APUNTES SET `AP_FECHA` = '0d20000830' WHERE `ID` = 3916"
     Param   2:    U    NIL
     Param   3:    N           128
     Local   1:    U    NIL
     Local   2:    U    ???:U
   IMPORTE
     Param   1:    N             7
     Param   2:    N             4
     Param   3:    D    0d20000830
     Local   1:    A    Len:   42
     Local   2:    O    Class: TOLEAUTO
     Local   3:    N          3916
     Local   4:    U    NIL
     Local   5:    C    "DD-MM-YYYY"
     Local   6:    A    Len:    7
     Local   7:    U    NIL
     Local   8:    A    Len:    0
     Local   9:    U    NIL
     Local  10:    U    NIL
     Local  11:    U    NIL
   (b)LINEA
     Local   1:    D    0d20000830
     Local   2:    U    NIL
   TGET:LVALID
     Param   1:    O    Class: TGET
   TGET:FWLOSTFOCUS
     Local   1:    L    .T.
   TCONTROL:HANDLEEVENT
     Param   1:    N       1442510
     Local   1:    U    NIL
   TGET:HANDLEEVENT
     Param   1:    N          2057
     Param   2:    N       1442510
     Param   3:    N             0
     Local   1:    U    NIL
   _FWH
     Param   1:    N          2057
     Param   2:    N       1442510
     Param   3:    N             0
     Local   1:    U    NIL
   WINRUN
     Param   1:    N             0
     Param   2:    N          2057
     Param   3:    N       1442510
     Param   4:    N             0
     Param   5:    N            37
     Local   1:    O    Class: TGET
   TWINDOW:ACTIVATE
     Param   1:    N       2099736
   MAIN
     Param   1:    C    "MAXIMIZED"
     Param   2:    U    NIL
     Param   3:    U    NIL
     Param   4:    U    NIL
     Param   5:    U    NIL
     Param   6:    U    NIL
     Param   7:    U    NIL
     Param   8:    B    {|| ... }
     Param   9:    U    NIL
     Param  10:    U    NIL
     Param  11:    U    NIL
     Param  12:    U    NIL
     Param  13:    U    NIL
     Param  14:    U    NIL
     Param  15:    U    NIL
     Param  16:    U    NIL
     Param  17:    B    {|| ... }
     Param  18:    U    NIL
     Param  19:    U    NIL
     Param  20:    L    .F.
     Local   1:    O    Class: TWINDOW
     Local   2:    U    NIL
     Local   3:    U    NIL

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX
   ADORDD

DataBases in use
================

  1:    CONCEP                             RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
          1           57      .F.   .F.

     Indexes in use                        TagName
        => CP_CODI                            CONIND01

     Relations in use

  2:    EMPRE                              RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
          1           28      .F.   .F.

     Indexes in use                        TagName

     Relations in use

  3:    CUE                                RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
        321          458      .F.   .F.

     Indexes in use                        TagName
        => CU_CODI                            CUEIND01
           SUBSTR(CU_CODI,1,2)+SUBSTR(CU_NOMB,CUEIND02

     Relations in use

  4:    CON                                RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
         32           57      .F.   .F.

     Indexes in use                        TagName
        => CP_CODI                            CONIND01

     Relations in use

  5:    OBR                                RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
        396          398      .F.   .F.

     Indexes in use                        TagName
        => OB_CODI                            OBRIND01

     Relations in use

  6:    LIVA                               RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
        653          677      .F.   .F.

     Indexes in use                        TagName
           IL_CUENTA+DTOS(IL_FECHA)+IL_DOCUM  IVLIND01
        => IL_OBRA+IL_NUMASI                  IVLIND02

     Relations in use

  7: => APU                                RddName: ADORDD
     ==============================
     RecNo    RecCount    BOF   EOF
       3916         3921      .F.   .F.

     Indexes in use                        TagName
        => AP_OBRA+DTOS(AP_FECHA)             APUIND01
           AP_OBRA+AP_CUENTA+DTOS(AP_FECHA)   APUIND02
           AP_OBRA+AP_CODCON+DTOS(AP_FECHA)   APUIND03
           AP_OBRA+AP_CUENTA+DTOS(AP_FECHA)   APUIND04

     Relations in use

Classes in use:
===============
     1 ERROR
     2 HBCLASS
     3 HBOBJECT
     4 TINI
     5 TWINDOW
     6 TCONTROL
     7 TICON
     8 TBRUSH
     9 WIN_OLEAUTO
    10 TOLEAUTO
    11 TMENU
    12 TMENUITEM
    13 TFONT
    14 TIMAGELIST
    15 TBITMAP
    16 TTOOLBAR
    17 TMSGBAR
    18 TRECT
    19 TMSGITEM
    20 TTIMER
    21 TDIALOG
    22 TBTNBMP
    23 TWBROWSE
    24 TBUTTON
    25 TSCROLLBAR
    26 TSAY
    27 TGET
    28 GET
    29 TCLIPGET
    30 TREG32

Memory Analysis
===============
      1810 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ADORDD FAQs

Post by Antonio Linares »

Puedes copiar aqui el código que hay en adordd.prg function ADO_PUTVALUE( 1944 ) ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Es el programa original adordd.prg , sacado de github, de todas formas lo coloco aquí
falla en las UPDATE con fechas, por lo demás el resto NAVEGACION, LISTADOS etc todo PERFECTO
lo he marcado como
--------- línea 1944

Code: Select all

STATIC FUNCTION ADO_PUTVALUE( nWA, nField, xValue )

   LOCAL aWAData := USRRDD_AREADATA( nWA )
   LOCAL oRecordSet := aWAData[ WA_RECORDSET ]
   LOCAL nRecNo,oError,cDateFormat
   //10.08.15
   LOCAL aStruct ,xBook
   LOCAL aBookMarks := {}, bForExp, nPos, cValue

   IF !ADOCON_CHECK()
      RETURN HB_FAILURE

   ENDIF

   IF nField < 1 .OR. nField > FCOUNT()
      xValue := NIL
      RETURN HB_FAILURE
   ENDIF

   aStruct := ADO_FIELDSTRUCT( oRecordSet, nField-1, nWA )

  IF (nField-1 = aWAData[WA_FIELDRECNO])
      RETURN HB_SUCCESS
   ENDIF

   //DELETED FIELD ONLY UPDATABLE BY RECALL OR DBDELETE
   IF (nField-1 = aWAData[WA_FIELDDELETED] .AND.( PROCNAME(1) <> "ADO_DELETE";
          .AND. PROCNAME(1) <> "ADO_RECALL") )
      RETURN HB_SUCCESS
   ENDIF

   IF aStruct[2] = "L"
      IF VALTYPE( oRecordSet:Fields( nField - 1 ):Value ) = "N"
         IF !xValue
            xValue := 0
         ELSE
            xValue := 1
         ENDIF

      ENDIF

   ENDIF

   IF !aWAData[ WA_EOF ] .AND. !( oRecordSet:Fields( nField - 1 ):Value == xvalue )

      IF aStruct[6]
         IF aStruct[2] = "N" .AND. !VALTYPE( xValue ) = "L"
            IF LEN( ALLTRIM( CVALTOCHAR( xValue ) ) ) > FIELDLEN( nField )
               //round to the numericscale
               xValue := ROUND(xValue, FIELDDEC( nField ))

               IF LEN(CVALTOCHAR(xValue)) > FIELDLEN( nField )
                  oError := ErrorNew()
                  oError:GenCode := EG_DATAWIDTH
                  oError:SubCode := 1021
                  oError:subSystem := "ADORDD"
                  oError:Description := oRecordSet:Fields( nField - 1 ):Name + hb_langErrMsg( EG_DATAWIDTH )
                  oError:FileName := aWAData[ WA_TABLENAME]
                  oError:OsCode := 0 /* TODO */
                  oError:CanDefault := .T.
                  UR_SUPER_ERROR( nWA, oError )
                  RETURN HB_SUCCESS //TO CONTINUE WITH PROCESS
               ENDIF

            ENDIF

         ENDIF

         ADO_RECID(nWa,@nRecNo)

         IF ADO_ISLOCKED(aWAData[ WA_TABLENAME],nRecNo,aWAData)
            //DEFAULT DBF BEHAVIOUR TRUNCATE EXCCEDING CHARATERS
            IF aStruct[2] = "C" .OR. aStruct[2] = "M"
               xValue := SUBSTR(xValue,1,oRecordSet:Fields( nField - 1 ):DefinedSize)
            ENDIF

            IF aStruct[2] $ "DT" .AND. (EMPTY(xValue) .OR. FW_TTOD( xValue ) == {^ 1899/12/30 })
               //IF DATE IS EMPTY FIELD VALUE CAN BE "U" UPDATING IT IN THIS STATE ERRORS
               IF EMPTY(xValue) .AND. VALTYPE( oRecordSet:Fields( nField - 1 ):Value ) == "U"
                  RETURN HB_SUCCESS
               ENDIF

               xValue := ADONULL()

            ENDIF

            IF xValue == NIL
               xValue := ADONULL()
            ENDIF

            IF aStruct[2] $ "DT"
               cDateFormat := SET( _SET_DATEFORMAT )
               //IF oRecordSet:Fields( nField - 1 ):Type = adDBDate
               SET DATE FORMAT TO "YYYY-MM-DD"
               //ENDIF
            ENDIF

            //XhARBOUR HAS SOME PROBLEMS WITH DATES WITH THIS 100% OK VALTYPE( xValue )   <> "O" //ADONULL
            //VERSION XHARBOUR
            IF aStruct[2] $ "DT" //14.6.15 .AND.  VALTYPE( xValue )   <> "O"
               aWAData[ WA_CONNECTION ]:Execute( "UPDATE "+aWAData[ WA_TABLENAME ]+" SET "+;
               ADOQUOTEDCOLSQL( Trim( oRecordSet:Fields( nField - 1 ):Name ), ;
                                aWAData[ WA_ENGINE ] ) + " = " +;
               IF( VALTYPE( xValue )   <> "O", "'"+CVALTOCHAR( xValue )+"'", 'NULL' )+;
                   " WHERE " + ADOQUOTEDCOLSQL( Trim( oRecordSet:Fields(aWAData[WA_FIELDRECNO]):Name ),;
---------   línea 1944                                            aWAData[ WA_ENGINE ] )+" = "+ALLTRIM( STR( nRecNo, 10, 0 ) ),,adExecuteNoRecords  )
               //22.08.15
               //if we are in a diferent record of what we should ex was deleted by others
               // if we are with lock on it an not in :update
               // otherwise it woulnt be updated with UPDATE it do nothing
               IF PROCNAME( 1 ) <> "__DBCOPY"
                  ADO_RESYNC( nWA, oRecordSet )
               ENDIF
 
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
gautxori
Posts: 69
Joined: Thu Feb 25, 2010 12:44 pm
Location: Plentzia (Bizkaia)

Re: ADORDD FAQs

Post by gautxori »

Bueno ya he terminado con el cambio de equipo, que me ha tenido liado
Revisando mensaje por ahí no veo como hacer la conversión de la fecha que me viene en formato 0dYYYMMDD a YYYY-MM-DD
que es como me funcione en mYSQL si hago esta update a "pelo"

---Mysql
UPDATE EMPRE01.APUNTES SET `AP_FECHA` = "1994/12/31" WHERE `ID` = 570
0 row(s) affected Rows matched: 1 Changed: 0 Warnings: 0
---
pero si lo hago por programa me da este error

******************************************************************
Application
===========
Path and name: D:\OBRAS32\Obras32.exe (32 bits)
Size: 3,779,584 bytes
Compiler version: Harbour 3.2.0dev (r1601050904)
FiveWin Version: FWH 16.03
Windows version: 6.2, Build 9200

Time from start: 0 hours 0 mins 11 secs
Error occurred at: 02-05-2016, 21:08:27
Error description: Error BASE/1070 Argument error: ==
Args:
[ 1] = D 0d19941231
[ 2] = C 1994-12-30

Stack Calls
===========
Called from: .\SOURCE\adordd.PRG => ADO_PUTVALUE( 1882 )
Called from: .\SOURCE\abmapu.PRG => IMPORTE( 732 )

Estoy en un bucle con esto, y no veo como solucionarlo, hay discrepancia entre el
argumento de entrada [ 1 ] = D (date)
y el de salida [ 2] = C 1994-12-30


en el programa esta asi, pero ya he probado de varias maneras, estoy un pelin "desesperado", quiero conseguir un dFecha = "1994/12/31" o "1994-12-31" el WORKBENCH de Mysql acepta los dos,

Code: Select all

         cfecha :=cValToStr( dFecha, 'yyyy-mm-dd' )
         msginfo(cFecha)
         Apu->Ap_Fecha :=cFecha
 
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: ADORDD FAQs

Post by Antonio Linares »

Veamos si AHF o Rao pueden ayudarnos en esto

Tal vez a otro usuario de SQL le haya ocurrido algo parecido
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply