build Import LIB from LibPQ.DLL

Re: build Import LIB from LibPQ.DLL

Postby Jimmy » Thu Jul 20, 2023 4:29 am

hi,

have try Sample c:\fwh\samples\pgre01.prg again
using my old PostgreSQL v9.5 Server and WIN1252 for Database

now i can "input", even German Umlaute, and "save" it :D

on same Server i try UTF8 Table but than it fail again ...
so i need to use ANSI Table for Fivewin Sample :idea:
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: build Import LIB from LibPQ.DLL

Postby nageswaragunupudi » Thu Jul 20, 2023 7:05 am

Thanks for the information.
How do you propose to proceed further now?
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: build Import LIB from LibPQ.DLL

Postby Jimmy » Thu Jul 20, 2023 8:20 am

hi,

i have read in PostgreSQL Manual and found
"SHOW SERVER_ENCODING"
"SHOW CLIENT_ENCODING"

it does show me UTF8 or WIN1252, depend on Server, on both Side

but i can change it to
Code: Select all  Expand view  RUN
  cQuery := 'SET CLIENT_ENCODING TO "WIN1252"'
   cENCODING := oPGU:QuickQuery( cQuery )

CONNECT2SRV( 207 ) cPGVersion = "PostgreSQL 14.1, compiled by Visual C++ build 1914, 64-bit"
CONNECT2SRV( 209 ) FWPG_ListSchemas( oPGU ) = {"pg_toast","pg_catalog","public","information_schema"}
CONNECT2SRV( 213 ) cENCODING = "UTF8"
CONNECT2SRV( 217 ) cENCODING = ""
CONNECT2SRV( 221 ) cENCODING = "WIN1252"

Code: Select all  Expand view  RUN
  cQuery := "SELECT version()"
   cPGVersion := oPGU:QuickQuery( cQuery )

   IF !EMPTY( cPGVersion )
      oPGU:cVersion := cPGVersion
   ENDIF
   fwlog cPGVersion

   fwlog FWPG_ListSchemas( oPGU )

   cQuery := "SHOW SERVER_ENCODING"
   cENCODING := oPGU:QuickQuery( cQuery )
   fwlog cENCODING

   cQuery := 'SET CLIENT_ENCODING TO "WIN1252"'
   cENCODING := oPGU:QuickQuery( cQuery )
   fwlog cENCODING

   cQuery := "SHOW CLIENT_ENCODING"
   cENCODING := oPGU:QuickQuery( cQuery )
   fwlog cENCODING

now it work perfect UTF8 <-> WIN1252 and no hb_translate() is need any more :D
! Note : SERVER_ENCODING Setting are default for Database ( Catalog ) ... but Table itself can be different

p.s. have use TGrid() but it should work with XBROWSE too
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: build Import LIB from LibPQ.DLL

Postby nageswaragunupudi » Thu Jul 20, 2023 5:58 pm

Thanks for sharing the information.
What is "WIN1252" ?
Is the German "Umlaute" issue is resolved now? ( by keeping FW_SetUnicode() to .F.)
Please also share the code for creating a table with WIN1252
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: build Import LIB from LibPQ.DLL

Postby Jimmy » Thu Jul 20, 2023 10:15 pm

hi,
nageswaragunupudi wrote:What is "WIN1252" ?

Manual PostgreSQL
22.3.3. Automatic Character Set Conversion Between Server and Client

i got WIN1252 Codepage from here
https://wiki.freepascal.org/Language_Codes
https://www.vbsedit.com/html/882ca1eb-8 ... 40bf70.asp
https://www.science.co.il/language/Locale-codes.php

nageswaragunupudi wrote:Is the German "Umlaute" issue is resolved now? ( by keeping FW_SetUnicode() to .F.)

no Problem with German "Umlaute" any more
do not need to use FW_SetUnicode(.T. / .F.)

nageswaragunupudi wrote:Please also share the code for creating a table with WIN1252

please Note : "Database" = "Catalog" does "hold" TABLE

you can use "Database" e.g Customer1 to "hold" all TABLE of Customer1
you can use "Database" e.g Customer2 to "hold" all TABLE of Customer2

"Database" default Setting work for TABLE

Code: Select all  Expand view  RUN
CREATE DATABASE name
[ [ WITH ] [ OWNER [=] user_name ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ LC_COLLATE [=] lc_collate ]
[ LC_CTYPE [=] lc_ctype ]
[ TABLESPACE [=] tablespace ]
[ CONNECTION LIMIT [=] connlimit ] ]


Code: Select all  Expand view  RUN
CREATE DATABASE mdidemo
    WITH
    OWNER = postgres
    ENCODING = 'WIN1252'
    LC_COLLATE = 'German_Germany.1252'
    LC_CTYPE = 'German_Germany.1252'
    TABLESPACE = pg_default
    CONNECTION LIMIT = -1;

Image

Code: Select all  Expand view  RUN
EATE DATABASE mdidemo
    WITH
    OWNER = postgres
    ENCODING = 'UTF8'
    LC_COLLATE = 'German_Germany.1252'
    LC_CTYPE = 'German_Germany.1252'
    TABLESPACE = pg_default
    CONNECTION LIMIT = -1;

Image
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: build Import LIB from LibPQ.DLL

Postby nageswaragunupudi » Fri Jul 21, 2023 3:40 am

Thanks for sharing the information.

Next.
You were getting errors while saving data with the pgre01.prg.
Now is that problem resolved?
If so what could be the reason for those errors?
Can you provide feedback on this issue please?
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: build Import LIB from LibPQ.DLL

Postby Jimmy » Sat Jul 22, 2023 11:15 pm

hi,
nageswaragunupudi wrote:You were getting errors while saving data with the pgre01.prg.
Now is that problem resolved?

when set "ENCODING" and FW_SetUnicode( .F. ) it work on both PostgreSQL Server and XBROWSEr :D

nageswaragunupudi wrote:If so what could be the reason for those errors?
Can you provide feedback on this issue please?

i can´t say why "edit" use wrong "Position" when NOT set "ENCODING" and FW_SetUnicode( .F. )

---

my "native" LibPQ.DLL Version, using TGrid() work also with FW_SetUnicode( .T. )
but TGrid() fail to "send" Notify Event and "Input" is wrong when use FW_SetUnicode( .T. )

---

is FW_SetUnicode() for hole App of for each Thread :?:
greeting,
Jimmy
User avatar
Jimmy
 
Posts: 1732
Joined: Thu Sep 05, 2019 5:32 am
Location: Hamburg, Germany

Re: build Import LIB from LibPQ.DLL

Postby nageswaragunupudi » Sun Jul 23, 2023 11:58 pm

is FW_SetUnicode() for hole App of for each Thread :?:

Yes, this setting is for the entire application.
This setting decides whether all Windows messages are 16-bit (UTF16) or 8-bit(ANSI)
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10646
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Previous

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 70 guests