Page 4 of 4

Re: Dbf/cdx to sql changing

Posted: Fri Jul 19, 2024 12:06 pm
by wartiaga
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.

Re: Dbf/cdx to sql changing

Posted: Fri Jul 19, 2024 8:26 pm
by Rick Lipkin
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: Select all | Expand

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

Re: Dbf/cdx to sql changing

Posted: Fri Jul 19, 2024 9:01 pm
by Otto
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

Re: Dbf/cdx to sql changing

Posted: Sat Jul 20, 2024 1:15 pm
by Rick Lipkin
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

Re: Dbf/cdx to sql changing

Posted: Sat Jul 20, 2024 5:06 pm
by Otto
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.

Re: Dbf/cdx to sql changing

Posted: Wed Jul 24, 2024 3:50 pm
by acuellar
wartiaga wrote:
nageswaragunupudi wrote:Please use this revised maria01.prg

Code: Select all | Expand

#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

Re: Dbf/cdx to sql changing

Posted: Sun Jul 28, 2024 3:51 pm
by nageswaragunupudi
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.

Re: Dbf/cdx to sql changing

Posted: Mon Jul 29, 2024 7:40 pm
by acuellar
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

Re: Dbf/cdx to sql changing

Posted: Wed Jul 31, 2024 3:23 pm
by nageswaragunupudi
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: Select all | Expand

echo %fwh%\lib\FiveH32.lib %fwh%\lib\FiveHC32.lib %fwh%\lib\libmysql32.lib  >> msvc.tmp
change this line as

Code: Select all | Expand

echo %fwh%\lib\FiveH32.lib %fwh%\lib\FiveHC32.lib %fwh%\lib\mysqlclient.lib  >> msvc.tmp
Now test "buildh32 maria01"
Working fine.