problem with fw_adoexporttodbf function

User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

problem with fw_adoexporttodbf function

Post by max »

I think there is a bug in FW_AdoExportToDbf function. When it meets a SQL field type "varchar(MAX)", the output dbf is created with a character field (instead of "memo" field) length=0, and without content. To fix this problem, need to declare interactively the structure of dbf at runtime moving ".T." in the third parameter of the function. But in this way the program stops execution asking name and field attributes to the operator, and it is not always possible.
Detected with FWH version 1807 and exporting a table of a MSSQL database.
There is a way to solve? Thank you.
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: problem with fw_adoexporttodbf function

Post by nageswaragunupudi »

This is taken care of in later versions of FWH.

Try making this modification in \fwh\source\function\adofuncs.prg
Locate the function function FWAdoFieldStruct( oRs, n )
Add these lines towards the end of the function just before "return"

Code: Select all

if cType == "C" .and. nLen <= 0
   cType := "M"
   nLen := 10
endif
 
Please let us know if this works.
Regards

G. N. Rao.
Hyderabad, India
User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

Re: problem with fw_adoexporttodbf function

Post by max »

Afther this change i have to recompile adofuncs.prg, right? How? Thank you.
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: problem with fw_adoexporttodbf function

Post by nageswaragunupudi »

After this change, you add the revise adofuncs.prg to your project as one of your prg files.
Regards

G. N. Rao.
Hyderabad, India
User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

Re: problem with fw_adoexporttodbf function

Post by max »

Linking adofuncs.obj to my project now i receive these errors linking:

c:\myproject> if gtgui == gtgui c:\bcc7\bin\ilink32 -Gn -aa -Tpe -s -v @b32.bc

Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
Error: Unresolved external '___CPPdebugHook' referenced from C:\BCC7\LIB\CW32.LIB|xx
Error: Unresolved external '__hInstance' referenced from C:\BCC7\LIB\CW32.LIB|_fastmm
Error: Unresolved external '___System__GetTls' referenced from C:\BCC7\LIB\CW32.LIB|xxv
Error: Unable to perform link
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: problem with fw_adoexporttodbf function

Post by Antonio Linares »

Max,

Have you recently modified your bcc7 files ?

Please check that you are using the right bcc7 libraries
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: problem with fw_adoexporttodbf function

Post by Antonio Linares »

Max,

Please post here your make file or batch file that you use to build your app, thanks
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

Re: problem with fw_adoexporttodbf function

Post by max »

No Antonio, i have not modify my BCC7 files (far from me! :) ) . And all other my projects without link to adofuncs.prg are ok with this batch for compile and linking. Perhaps I've been doing something wrong since I added adofuncs(!?). This is the batch i use:

Code: Select all

@ECHO OFF
ECHO Compiling...
TSKILL MARGINI
if "%FWDIR%" == "" set FWDIR=c:\fwh
if "%XHDIR%" == "" set XHDIR=c:\xharbour
SET HARBOURCMD=/a /es2 /gc0 /m /n /q
set GT=gtgui

set hdir=%XHDIR%
set hdirl=%hdir%\lib
set bcdir=c:\bcc7
set fwh=%FWDIR%

%hdir%\bin\harbour main /i%fwh%\include;%hdir%\include > comp.log 2> warnings.log
%hdir%\bin\harbour adofuncs /i%fwh%\include;%hdir%\include > comp.log 2> warnings.log
IF ERRORLEVEL 1 GOTO COMPILEERRORS
@type comp.log
@type warnings.log
echo -O2 -emain.exe -I%hdir%\include -I%bcdir%\include main.c adofuncs.c > b32.bc
%bcdir%\bin\bcc32 -M -c -v @b32.bc
:ENDCOMPILE

IF EXIST main.rc %bcdir%\bin\brc32 -r -I%bcdir%\include main

echo %bcdir%\lib\c0w32.obj + > b32.bc
echo adofuncs.obj + > b32.bc
echo main.obj, + >> b32.bc
echo MARGINI.exe, + >> b32.bc
echo MARGINI.map, + >> b32.bc
echo %fwh%\lib\Fivehx.lib %fwh%\lib\FiveHC.lib + >> b32.bc
echo %hdirl%\rtl.lib + >> b32.bc
echo %hdirl%\vm.lib + >> b32.bc
echo %hdirl%\%GT%.lib + >> b32.bc
echo %hdirl%\lang.lib + >> b32.bc
echo %hdirl%\macro.lib + >> b32.bc
echo %hdirl%\rdd.lib + >> b32.bc
echo %hdirl%\dbfntx.lib + >> b32.bc
echo %hdirl%\dbfcdx.lib + >> b32.bc
echo %hdirl%\dbffpt.lib + >> b32.bc
echo %hdirl%\hbsix.lib + >> b32.bc
echo %hdirl%\debug.lib + >> b32.bc
echo %hdirl%\common.lib + >> b32.bc
echo %hdirl%\pp.lib + >> b32.bc
echo %hdirl%\pcrepos.lib + >> b32.bc
echo %hdirl%\ct.lib + >> b32.bc
echo %hdirl%\zlib.lib + >> b32.bc
echo %hdirl%\hbzip.lib + >> b32.bc
echo %hdirl%\libmisc.lib + >> b32.bc
echo %hdirl%\tip.lib + >> b32.bc
echo %hdirl%\png.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\Ace32.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\uuid.lib + >> b32.bc
echo %bcdir%\lib\ws2_32.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\psapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\gdiplus.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\shell32.lib, >> b32.bc

IF EXIST main.res echo main.res >> b32.bc

rem uncomment this line to use the debugger and comment the following one
if %GT% == gtwin %bcdir%\bin\ilink32 -Gn -Tpe -s -v @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
if %GT% == gtgui %bcdir%\bin\ilink32 -Gn -aa -Tpe -s -v @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
CALL MARGINIS.BAT
GOTO EXIT
ECHO

rem delete temporary files
@del main.c

:COMPILEERRORS
@type comp.log
ECHO * Compile errors *
pause
GOTO EXIT

:LINKERROR
ECHO * Linking errors *
pause
GOTO EXIT

:SINTAX
ECHO    SYNTAX: Build [Program]     {-- No especifiques la extensi¢n PRG
ECHO                                {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG main does not exist

:EXIT
User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

Re: problem with fw_adoexporttodbf function

Post by max »

And this is the content of my c:\BCC7\LIB folder:

Code: Select all

 Directory di c:\BCC7\lib

15/05/2019  07:39    <DIR>          .
15/05/2019  07:39    <DIR>          ..
19/03/2015  05:55             2.761 c0d32.obj
19/03/2015  05:55             2.764 c0d32w.obj
19/03/2015  05:55             2.670 c0d32x.obj
19/03/2015  05:55             2.334 c0fmx32.obj
19/03/2015  05:55             2.339 c0fmx32w.obj
19/03/2015  05:55             2.305 c0w32.obj
19/03/2015  05:55             2.311 c0w32w.obj
19/03/2015  05:55             2.282 c0x32.obj
19/03/2015  05:55             2.307 c0x32w.obj
19/03/2015  05:55           213.504 cg32.lib
19/03/2015  05:55             2.560 cghelp.lib
19/03/2015  05:55         2.030.592 cp32mt.lib
19/03/2015  05:55           572.928 cp32mti.lib
19/03/2015  05:55         1.982.464 cw32.lib
19/03/2015  05:55           561.664 cw32i.lib
19/03/2015  05:55         2.037.760 cw32mt.lib
19/03/2015  05:55           570.368 cw32mti.lib
19/03/2015  05:55         1.384.960 import32.lib
19/04/2018  12:26    <DIR>          psdk
19/03/2015  05:55             2.048 uuid.lib
19/03/2015  05:55            21.504 wininet.lib
19/03/2015  05:55            13.312 ws2_32.lib
              22 File      9.415.737 byte
 
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: problem with fw_adoexporttodbf function

Post by nageswaragunupudi »

Please try to change this part

Code: Select all

echo %bcdir%\lib\c0w32.obj + > b32.bc
echo adofuncs.obj + > b32.bc
echo main.obj, + >> b32.bc
 
as

Code: Select all

echo %bcdir%\lib\c0w32.obj + > b32.bc
echo main.obj + > b32.bc
echo adofuncs.obj, + >> b32.bc
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

Re: problem with fw_adoexporttodbf function

Post by max »

modified and tried, but the same errors remain. Now my b32.bc file has this content:

Code: Select all

main.obj + 
adofuncs.obj, + 
MARGINI.exe, + 
MARGINI.map, + 
c:\fwh\lib\Fivehx.lib c:\fwh\lib\FiveHC.lib + 
c:\xharbour\lib\rtl.lib + 
c:\xharbour\lib\vm.lib + 
c:\xharbour\lib\gtgui.lib + 
c:\xharbour\lib\lang.lib + 
c:\xharbour\lib\macro.lib + 
c:\xharbour\lib\rdd.lib + 
c:\xharbour\lib\dbfntx.lib + 
c:\xharbour\lib\dbfcdx.lib + 
c:\xharbour\lib\dbffpt.lib + 
c:\xharbour\lib\hbsix.lib + 
c:\xharbour\lib\debug.lib + 
c:\xharbour\lib\common.lib + 
c:\xharbour\lib\pp.lib + 
c:\xharbour\lib\pcrepos.lib + 
c:\xharbour\lib\ct.lib + 
c:\xharbour\lib\zlib.lib + 
c:\xharbour\lib\hbzip.lib + 
c:\xharbour\lib\libmisc.lib + 
c:\xharbour\lib\tip.lib + 
c:\xharbour\lib\png.lib + 
c:\bcc7\lib\cw32.lib + 
c:\bcc7\lib\import32.lib + 
c:\bcc7\lib\uuid.lib + 
c:\bcc7\lib\ws2_32.lib + 
c:\bcc7\lib\psdk\odbc32.lib + 
c:\bcc7\lib\psdk\rasapi32.lib + 
c:\bcc7\lib\psdk\nddeapi.lib + 
c:\bcc7\lib\psdk\msimg32.lib + 
c:\bcc7\lib\psdk\psapi.lib + 
c:\bcc7\lib\psdk\gdiplus.lib + 
c:\bcc7\lib\psdk\iphlpapi.lib + 
c:\bcc7\lib\psdk\shell32.lib, 
main.res 
 
Compuin
Posts: 1017
Joined: Tue Dec 28, 2010 1:29 pm

Re: problem with fw_adoexporttodbf function

Post by Compuin »

Hello

I'm facing the same issue when I'm trying to attach a .C file to my project

echo ..\..\bcc710\lib\psdk\iphlpapi.lib + >> b32.bc
echo ..\..\bcc710\lib\psdk\shell32.lib, >> b32.bc
IF EXIST demo.res echo demo.res >> b32.bc
..\..\bcc710\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
Turbo Incremental Link 6.72 Copyright (c) 1997-2015 Embarcadero Technologies, Inc.
Error: Unresolved external '___CPPdebugHook' referenced from C:\BCC710\LIB\CW32.LIB|xx
Error: Unresolved external '__hInstance' referenced from C:\BCC710\LIB\CW32.LIB|_fastmm
Error: Unresolved external '___System__GetTls' referenced from C:\BCC710\LIB\CW32.LIB|xxv
Error: Unable to perform link

** error 2 ** deleting demo.exe

C:\demo>if exist demo.exe demo.exe
User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

Re: problem with fw_adoexporttodbf function

Post by max »

I still have the same unresolved problem today
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: problem with fw_adoexporttodbf function

Post by nageswaragunupudi »

In case you are using the next version immediately after this post, you need not recompile adofuncs.prg. You can use FWH libraries without any change.
Regards

G. N. Rao.
Hyderabad, India
User avatar
max
Posts: 122
Joined: Fri Jun 30, 2006 2:14 pm
Location: Ancona - Italy

Re: problem with fw_adoexporttodbf function

Post by max »

ok thanks Nages. In other words, I have to buy the updated version today to solve the problem reported here of FW_AdoExportToDbf with SQL field type varchar(max). Is it right?
Post Reply