FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour build Import LIB from LibPQ.DLL
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Fri Jun 30, 2023 09:59 PM
Jimmy wrote:hi,

yes ,,, but only using (old v9) 32 Bit LibPQ.DLL Interface

i want to use 64 Bit App so i need 64 Bit LibPQ.DLL / LibPQ.LIB
it would be nice if Fivewin 64 Bit Version include "external" 64 Bit LIBs like in 32 bit Version
We are going to provide soon.
Regards



G. N. Rao.

Hyderabad, India
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: build Import LIB from LibPQ.DLL
Posted: Sun Jul 02, 2023 10:17 PM
hi,
nageswaragunupudi wrote:We already have programs to use PostGre in our samples which use some extensions created by FWH already
you mean c:\fwh\samples\testpgre.prg, based on TPQServer from hbPSQL.LIB, and those FWPG_* Function :?:

my Problem : Sample crash
Error description: Error BASE/1004 Message not found: TXBROWSE:NDATADEC

Stack Calls
===========
Called from: .\source\function\HARBOUR.PRG => _CLSSETERROR( 247 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:NDATADEC( 11834 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:SETPOSTGRECOL( 7191 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:SETPOSTGRE( 7134 )
Called from: .\source\classes\XBROWSE.PRG => XBRWSETDATASOURCE( 17832 )
Called from: .\source\function\XBROWSER.PRG => XBROWSE( 144 )
Called from: .\HBPGU.PRG => SHOWTABLE( 226 )
p.s. i have try different Table but all crash

---

next "Problem" when try to open BIG Table

as Table was open without LIMIT
Code (fw): Select all Collapse
   oRs   := oServer:Query( "select * from " + cTable )
it does create a BIG "Result" ... too much for 32 Bit OS

---

now i have build 64 Bit LIB so it would be not Problem without LIMIT ... but it "can" take a long Time
i can´t say how XBROWSE will run as i got the Error above
greeting,

Jimmy
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Mon Jul 03, 2023 04:56 AM
We regret that there is one small bug while setting up postgrecol inside xbrowse.
Kindly fix this. I think no one reported till now due to lack of postgre users.
I noticed the bug a few days back when I was testing postgre samples.
From now, we will pay equal attention to postgre support. It is really a wonderful RDBMS

This is the bugfix:
In xbrowse.prg, inside the method SetPostGreCol(...) please locate this line:
Code (fw): Select all Collapse
            :cFooterPicture   := NumPict( :nDataLen + 2, ::nDataDec )
Please change it as
Code (fw): Select all Collapse
            :cFooterPicture   := NumPict( :nDataLen + 2, :nDataDec )
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Mon Jul 03, 2023 05:04 AM
After this fix, running fwh\samples\pgre01.prg:
Regards



G. N. Rao.

Hyderabad, India
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: build Import LIB from LibPQ.DLL
Posted: Mon Jul 03, 2023 09:39 PM
hi,

thx for Answer
nageswaragunupudi wrote:I think no one reported till now due to lack of postgre users.
as Xbase++ use Postgre there might be "more" User how want to use Postgre
nageswaragunupudi wrote: This is the bugfix:
In xbrowse.prg, inside the method SetPostGreCol(...) please locate this line:
Code (fw): Select all Collapse
            :cFooterPicture   := NumPict( :nDataLen + 2, ::nDataDec )
Please change it as
Code (fw): Select all Collapse
            :cFooterPicture   := NumPict( :nDataLen + 2, :nDataDec )
i can "see" what you mean, but "how" to "rebuild" LIB :?:

... or can i "just" override METHOD SetPostGreCol( ... ) CLASS TXBrowse

Question : is XBROWSE "hardcode" ( IsKindOf() ) in Source :?:
greeting,

Jimmy
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Tue Jul 04, 2023 04:53 AM
i can "see" what you mean, but "how" to "rebuild" LIB :?:
Easier way is:
Keep the modified xbrowse.prg in a separate folder.
Include this modified xbrowse.prg in your project link script as one of your source files.

I advise you to download and use the latest FWH2304.
In that case, we can send revised libs to you depending on your requirements so that your development will not stop.
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Tue Jul 04, 2023 04:56 AM
Question : is XBROWSE "hardcode" ( IsKindOf() ) in Source
To be honest, I did not understand the question.

IsKindOf is a method that is available to all Harbour classes.
oObj:IsKindOf( "someclass" ) means the oObj is of class "someclass" or is derived from that class.
What is has to do with "hardcode" ?
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Tue Jul 04, 2023 04:57 AM
... or can i "just" override METHOD SetPostGreCol( ... ) CLASS TXBrowse
Can do this also.
Regards



G. N. Rao.

Hyderabad, India
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: build Import LIB from LibPQ.DLL
Posted: Wed Jul 05, 2023 12:41 AM
hi
nageswaragunupudi wrote:
i can "see" what you mean, but "how" to "rebuild" LIB :?:
Easier way is:
Keep the modified xbrowse.prg in a separate folder.
Include this modified xbrowse.prg in your project link script as one of your source files.
that i did now, thx
nageswaragunupudi wrote:
... or can i "just" override METHOD SetPostGreCol( ... ) CLASS TXBrowse
Can do this also.
can you please show some CODE "how" to begin
greeting,

Jimmy
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: build Import LIB from LibPQ.DLL
Posted: Tue Jul 11, 2023 09:49 PM
hi,
nageswaragunupudi wrote:After this fix, running fwh\samples\pgre01.prg:
i have "import" Customer.DBF into PostgreSQL and can XBROWSER it
when "dblclick" to "edit" and want "save" it i got this Error Message

but it is "wrong" :
Code (fw): Select all Collapse
... SET married = `Homer 2` WHERE id = Springfield
it must be
Code (fw): Select all Collapse
... SET first = `Homer 2` WHERE id = 1
---

when using sample pgre01.prg and "edit" the "Name" and "save" it,

than Field "Image" change to what i have type as "Name"


---

Question : "where" do i find CODE for "Update" :?:
greeting,

Jimmy
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Wed Jul 12, 2023 07:02 AM
Question : "where" do i find CODE for "Update" :?:
TDataRow class

Anyway we are going to look into the issue and get back to you
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: build Import LIB from LibPQ.DLL
Posted: Wed Jul 12, 2023 01:47 PM
When we tried here, it is working well.
Regards



G. N. Rao.

Hyderabad, India
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: build Import LIB from LibPQ.DLL
Posted: Thu Jul 13, 2023 10:03 PM
hi
nageswaragunupudi wrote:When we tried here, it is working well.
interesting ...
which PostgreSQL Server Version are you using :?:
greeting,

Jimmy
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: build Import LIB from LibPQ.DLL
Posted: Thu Jul 13, 2023 11:31 PM
hi,

i have try again to build PGRE01.EXE
but it crash with
Error description: Error BASE/1004 Message not found: TXBROWSE:NDATADEC
ok, that is still "old" LIB while i do not know how to build new LIB ...

---

so i copy xbrowse.prg into \Sample, modify it and made PGRE01.MAK
Code (fw): Select all Collapse
HBDIR=c:\harbour
BCDIR=c:\BCC7
FWDIR=c:\fwh

#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH  = $(FWDIR)\include;$(HBDIR)\include;$(BCDIR)\include\windows
.path.C   = .\
.path.rc  = .\

#important: Use Uppercase for filenames extensions, in the next two rules!

PRG = \
PGRE01.PRG \
XBROWSE.PRG

PROJECT    : PGRE01.EXE

PGRE01.EXE  : $(PRG:.PRG=.OBJ) PGRE01.RES
   @echo off
   echo $(BCDIR)\lib\c0w32.obj + > b32.bc
   echo obj\PGRE01.obj obj\XBROWSE.obj , + >> b32.bc
   echo PGRE01.EXE, + >> b32.bc
   echo PGRE01.MAP, + >> b32.bc
   echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbrtl.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbvmmt.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\gtgui.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hblang.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbmacro.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbrdd.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddntx.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddcdx.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\rddfpt.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbsix.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbdebug.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcommon.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbpp.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbwin.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcpage.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbct.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbpcre.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcplr.lib + >> b32.bc
   echo $(HBDIR)\lib\win\bcc\xhb.lib + >> b32.bc

   echo $(HBDIR)\lib\win\bcc\hbziparc.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbmzip.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbzlib.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\minizip.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\png.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbusrrdd.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbtip.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbzebra.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbcurl.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\libcurl.lib +  >> b32.bc
   echo $(HBDIR)\lib\win\bcc\hbxpp.lib +  >> b32.bc

   echo $(FWDIR)\lib\dolphin.lib +  >> b32.bc
   echo $(FWDIR)\lib\hbpgsql.lib +  >> b32.bc
   echo $(FWDIR)\lib\libpq.lib +  >> b32.bc

   echo $(BCDIR)\lib\cw32mt.lib + >> b32.bc
   echo $(BCDIR)\lib\uuid.lib + >> b32.bc
   echo $(BCDIR)\lib\ws2_32.lib +  >> b32.bc
   echo $(BCDIR)\lib\psdk\gdiplus.lib +  >> b32.bc
   echo $(BCDIR)\lib\import32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\msimg32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\psapi.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\rasapi32.lib + >> b32.bc
   echo $(BCDIR)\lib\psdk\shell32.lib,  >> b32.bc

   IF EXIST PGRE01.res echo PGRE01.res >> b32.bc
   $(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
   del b32.bc

.PRG.OBJ:
  $(HBDIR)\bin\harbour $< /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include;$(BCDIR)\include\windows

  $(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -oobj\$& obj\$&.c

.C.OBJ:
  echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
  echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
  $(BCDIR)\bin\bcc32 -oobj\$& @tmp $&.c
  del tmp

PGRE01.RES : PGRE01.RC
  $(BCDIR)\bin\brc32.exe -r PGRE01.RC
i try "same Way" as you have show but my Result IS still bad :cry:


p.s. this is 32 Bit Version
greeting,

Jimmy
Posts: 1772
Joined: Thu Sep 05, 2019 05:32 AM
Re: build Import LIB from LibPQ.DLL
Posted: Tue Jul 18, 2023 09:28 PM
hi,

i have now try Sample with FWH 23/04 but still got same Problem

i wonder as i can "see" your Sample is working like my "native" Version
but why is Sample fwh\samples\pgre01.prg:not working on my PC ... :(

so i like to ask again : which PostgreSQl Server do you use :?:
greeting,

Jimmy