FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Dbf/cdx to sql changing
Posts: 253
Joined: Wed May 25, 2016 01:04 AM
Re: Dbf/cdx to sql changing
Posted: Fri Jul 19, 2024 12:06 PM
vilian wrote:Yes, you can. Are you using maria01.prg by this way?

oCn := maria_Connect( aStr[ 1 ], .t. )

What is aStr's content ? I think your content is out of date.
Thank you, maria01.prg it was old.
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Dbf/cdx to sql changing
Posted: Fri Jul 19, 2024 08:26 PM
Otto

Look in the \samples .. compile Adorick.prg and the associated .rc .. you will notice that the program creates the SQL Table "Rick.mdb" and I create the table Customer and I append 4 records .. you can certainly create more records with the code ... would be a lot of code ... I have no problem with thousands of records .. the SQL Filter code is extremely fast ..


Code (fw): Select all Collapse
If .not. File( cDefa+"\Rick.mdb" )

   Ferase( cDefa+"\Rick.mdb" )

   // create the adox object
   Try
      catNewDB := CreateObject("ADOX.Catalog")
   Catch
      MsgInfo( "Could not Create ADOX object")
      Return(.f.)
   End try

   // create the table Rick.mdb
   Try
     catNewDB:Create('Provider='+xProvider+';Data Source='+xSource+';Jet OLEDB:Engine Type=5' )
   Catch
     MsgInfo( "Could not create the table "+xSource )
     Return(.f.)
   End Try

   Try
     oCn  := CREATEOBJECT( "ADODB.Connection" )
   Catch
     MsgInfo( "Could not create the ADO object for connection")
   End Try

   TRY
     oCn:Open( xCONNECT )
   CATCH oErr
     MsgInfo( "Could not open a Connection to Database "+xSource )
     RETURN(.F.)
   END TRY


   cSQL := "CREATE TABLE CUSTOMER"
   cSQL += "( "
   cSQL += "[CUSTOMEREID] char(18) NOT NULL, "
   cSQL += "[LAST NAME] char(30) NULL, "
   cSQL += "[FIRST NAME] char(30) NULL, "
   cSQL += "[MID INIT] char(30) NULL, "
   cSQL += "[ADDRESS1] char(30) NULL, "
   cSQL += "[CITY] char(30) NULL, "
   cSQL += "[STATE] char(30) NULL, "
   cSQL += "CONSTRAINT PK_USERINFO PRIMARY KEY ( CUSTOMEREID )"
   cSQL += " )"

   Try
      oCn:Execute( cSQL )
   Catch
      MsgInfo( "Table CUSTOMER Failed" )
      Return(.f.)
   End try

   oCn:Close()
   oCn := nil

Endif

xLOGIN := UPPER( WNetGetuser() )+space(8) // fivewin
xLOGIN := SUBSTR(xLOGIN,1,8)

oRsCust := TOleAuto():New( "ADODB.Recordset" )
oRsCust:CursorType     := 1        // opendkeyset
oRsCust:CursorLocation := 3        // local cache
oRsCust:LockType       := 3        // lockoportunistic

// check for very first user

cSQL := "SELECT * FROM CUSTOMER"
TRY
   oRsCust:Open( cSQL, xCONNECT )
CATCH oErr
   MsgInfo( "Error in Opening CUSTOMER table here" )
   RETURN(.F.)
END TRY

If oRsCust:eof

   oRsCust:AddNew()
   oRsCust:Fields("CustomerEid"):Value  := "011111111111111111"
   oRsCust:Fields("Last Name"):Value    := "Lipkin"
   oRsCust:Fields("First Name"):Value   := "Richard"
   oRsCust:Fields("Mid Init"):Value     := "M"
   oRsCust:Fields("Address1"):Value     := "123 Anywhere"
   oRsCust:Fields("City"):Value         := "Columbia"
   oRsCust:Fields("State"):Value        := "SC"
   oRsCust:Update()

   oRsCust:AddNew()
   oRsCust:Fields("CustomerEid"):Value  := "011111111111111112"
   oRsCust:Fields("Last Name"):Value    := "Lipinsky"
   oRsCust:Fields("First Name"):Value   := "Jason"
   oRsCust:Fields("Mid Init"):Value     := "S"
   oRsCust:Fields("Address1"):Value     := "123 Arborgate"
   oRsCust:Fields("City"):Value         := "Columbia"
   oRsCust:Fields("State"):Value        := "SC"
   oRsCust:Update()

   oRsCust:AddNew()
   oRsCust:Fields("CustomerEid"):Value    := "011111111111111113"
   oRsCust:Fields("Last Name"):Value    := "Lipkin"
   oRsCust:Fields("First Name"):Value   := "Beth"
   oRsCust:Fields("Mid Init"):Value     := "  "
   oRsCust:Fields("Address1"):Value     := "123 Lake Murray Blvd"
   oRsCust:Fields("City"):Value         := "Lexington"
   oRsCust:Fields("State"):Value        := "SC"
   oRsCust:Update()

   oRsCust:AddNew()
   oRsCust:Fields("CustomerEid"):Value    := "011111111111111114"
   oRsCust:Fields("Last Name"):Value    := "Lizzarous"
   oRsCust:Fields("First Name"):Value   := "Tim"
   oRsCust:Fields("Mid Init"):Value     := "J"
   oRsCust:Fields("Address1"):Value     := "456 Broad River"
   oRsCust:Fields("City"):Value         := "Irmo"
   oRsCust:Fields("State"):Value        := "SC"
   oRsCust:Update()


Endif


// you can add many more records to the Customer table here.  The CustomerEID field is the primary key and unique.

Rick Lipkin
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
Re: Dbf/cdx to sql changing
Posted: Fri Jul 19, 2024 09:01 PM

Hello Rick,

yes, I believe so. You are using a Microsoft Access database.

When I received the task of creating the online booking system for a vacation region in 2004, we got the job only because we had the fastest access time.

At that time, we switched from MS_SQL to JetEngine on short notice.

I was always very satisfied.

Even when I worked with VB6, I used the ACCESS database. However, when the JETENGINE was discontinued and no longer installed by hosting companies, I switched to MariaDB on the web.

But I am a visual type, and therefore I like the file system as a framework for a database and I simply want the data there and not in a container again.

I now have clear ideas on how a database should be for my purposes and have delved deeply into it. I like the DBF system, which for me is practically just a directory.

If you observe how people organize their data on the hard drive or desktop, you can see what is needed. A rigid framework is not ideal.


I have often thought that the ACCESS support in FIVEWIN should be much more emphasized in the advertising for FIVEWIN.

The acquisition of new customers would then proceed logically.

EXCEL -> ACCESS -> FIVEWIN

Best regards,

Otto

Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Dbf/cdx to sql changing
Posted: Sat Jul 20, 2024 01:15 PM

Otto

ADO does all the work and it is part of FW .. Rao has created a set of functions that leverage ADO .. have a look at \source\function\adofuncs.prg.

Rick Lipkin

Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
Re: Dbf/cdx to sql changing
Posted: Sat Jul 20, 2024 05:06 PM
Thank you Rick.
But I am working on an own solution now.
I have clear ideas on how a database should be for my purposes and have delved deeply into it. I like the DBF system, which for me is practically just a directory.
If you observe how people organize their data on the hard drive or desktop, you can see what is needed. A rigid framework is not ideal.
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Dbf/cdx to sql changing
Posted: Wed Jul 24, 2024 03:50 PM
wartiaga wrote:
Please use this revised maria01.prg
Code (fw): Select all Collapse
#include "fivewin.ch"

REQUEST DBFCDX

static aStr := { "208.91.198.197:3306,fwhdemo,gnraofwh,Bharat@1950", ;
                 "209.250.245.152,fwh,fwhuser,FiveTech@2022" }
static oCn

function Main()

   local aTables

   SET DATE ITALIAN
   SET CENTURY ON

   FW_SetUnicode( .t. )

   CursorWait()
   oCn      := maria_Connect( aStr[ 1 ], .t. )
   aTables  := oCn:ListTables()

   XBROWSER oCn:ListTables() ;
      TITLE "Dbl-Click to View Table" ;
      SHOW RECID ;
      SETUP ( ;
      oBrw:aCols[ 1 ]:bLDClickData := { |r,c,f,o| ShowTable( o:Value ) }, ;
      oBrw:bDropFiles := { |aFiles| xbrowse( aFiles ) } )

   oCn:Close()

return nil


function ShowTable( cTable )

   local oRs, nSecs  := SECONDS()

   if cTable == "custbig"
      MsgRun( "Reading " + cTable, "Please wait", { || oRs   := oCn:RecSet( cTable, -100 ) } )
   else
      MsgRun( "Reading " + cTable, "Please wait", { || oRs   := oCn:RowSet( cTable ) } )
   endif
   nSecs    := SECONDS() - nSecs

   XBROWSER oRs TITLE cTable + " (" + cValToChar( nSecs ) + ") seconds" ;
      FASTEDIT NOMODAL SHOW RECID

return nil
Mr Rao
With oCn:= maria_Connect( aStr[ 1 ], .t. ) OK Compiling with VS2022 and mysqlclient.lib or libmariadb32.lib

For this Server "209.250.245.152,fwh,fwhuser,FiveTech@2022"
With oCn:= maria_Connect( aStr[ 2 ], .t. ) Error 2026 SSL Connection.... Compiling with VS2022 and mysqlclient.lib
With oCn:= maria_Connect( aStr[ 2 ], .t. ) Error 2019 Can't initialize character.... Compiling with VS2022 and libmariadb32.lib

I think this Error 2026 SSL Connection.... It's because of the new version of MariaBD greater than 11.4.0

Thanks for the help
Saludos,



Adhemar C.
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Dbf/cdx to sql changing
Posted: Sun Jul 28, 2024 03:51 PM

First, please try building using "buildh.bat" or "buildh32.bat" in the fwh\samples folder.

Build??.bat files use the correct lib to be linked.

Both servers work.

Regards



G. N. Rao.

Hyderabad, India
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Dbf/cdx to sql changing
Posted: Mon Jul 29, 2024 07:40 PM

Thanks Mr. Rao

With libmysql32.lib and libmysql.dll works

But I need it to work with mysqlclient.lib so it doesn't use libmysql.dll. To make the EXE portable

You can try with mysqlclient.lib

Thank you very much for the help

Saludos,



Adhemar C.
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Dbf/cdx to sql changing
Posted: Wed Jul 31, 2024 03:23 PM
You can try with mysqlclient.lib
This library works with msvc32 only.

Tested and working with mysqlclient.lib.

Change this line in buildh32.bat
Code (fw): Select all Collapse
echo %fwh%\lib\FiveH32.lib %fwh%\lib\FiveHC32.lib %fwh%\lib\libmysql32.lib  >> msvc.tmp
change this line as
Code (fw): Select all Collapse
echo %fwh%\lib\FiveH32.lib %fwh%\lib\FiveHC32.lib %fwh%\lib\mysqlclient.lib  >> msvc.tmp
Now test "buildh32 maria01"
Working fine.
Regards



G. N. Rao.

Hyderabad, India

Continue the discussion