Page 1 of 1
MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 8:20 am
by dutch
Dear Mr.Rao&Antonio,
Is it possible the make FWMARIADB to use all (MySql, MariaDB and PostgeSQL) with one code in the future?
It will be useful for user to choose RDBMS?
Regards,
Dutch
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 10:20 am
by nageswaragunupudi
With FWMARIADB we can work with either MySql server or MariaDB server with the same code and exe.
I started working with PostGreSQL now. Aim is what you asked. But it is too early for us to promise anything.
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 10:51 am
by dutch
Dear Mr.Rao,
Thank you so much, it is really good news today.
Dutch
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 10:58 am
by nageswaragunupudi
But please tell me why do you want postgresql?
Isn't mariadb enough?
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 2:49 pm
by fafi
nageswaragunupudi wrote:But please tell me why do you want postgresql?
Isn't mariadb enough?
Mr. Rao..
a litle faster than mysql for Insert command
Please test here :
Code: Select all
#include "fivewin.ch"
#include "dbstruct.ch"
#include "mysql.ch"
#include "DbStruct.ch"
#define _STRU_FIELDNAME 1
#define _STRU_FIELDTYPE 2
#define _STRU_FIELDLEN 3
#define _STRU_FIELDDEC 4
#define _STRU_TABLE 5
#define _STRU_TABLECOL 6
REQUEST DBFNTX
REQUEST DBFCDX
REQUEST DBFFPT
REQUEST DBFDBT
#define DB_ALIAS 1
#define DB_FILE 2
#define DB_QUERY 3
#define DB_ROW 4
#define DB_FETCH 5
function main()
mysqlservername := "192.168.1.2"
username := "simrs"
password := "8091016"
oserver:= TMySQLServer():New(mysqlservername,username,password)
IF oServer:NetErr()
?oServer:Error()
ENDIF
oServer:SelectDB( "blu" )
IF oServer:NetErr()
?oServer:Error()
ENDIF
cFileORIG := "customer.dbf"
cFileDEST := "mst_customer"
lAppend := .t.
ConvertToSQL(cFileORIG,cFileDEST,lAppend,oServer)
oserver:destroy()
return
static function ConvertToSQL(cFileORIG,cFileDEST,lAppend,oServer)
local cComm, apCode, cOut
local nErr, nPos
LOCAL vEmp := {}
Local nCnn, s,oSql
local aReturn := {}
local aReturnX := {}
cFileORIG := lower(alltrim(cFileORIG))
cFileDEST := lower(alltrim(cFileDEST))
define dialog oDlgStock from 1,1 to 40,400 pixel style nOR( WS_CAPTION ) title "Tunggu Sebentar"
activate dialog oDlgStock centered nowait
oDlgStock:cTitle := cFileDEST
SysRefresh()
dbCloseAll()
cSql := "DROP TABLE IF EXISTS "+cFileDEST
oQuery := oServer:Query( cSql )
IF oQuery:NetErr()
?oQuery:Error()
ENDIF
oQuery:Destroy()
dbCloseAll()
use (cFileORIG) new shared alias orig
aStruct := orig->(DbStruct())
cField := ""
for i := 1 to len(aStruct)
cFieldName := alltrim(aStruct[i][DBS_NAME])
if lower(cFieldName) == "index"
cFieldName := "XINDEX"
endif
cType := aStruct[i][DBS_TYPE]
cLen := alltrim(Str( aStruct[i][DBS_LEN ], 3 ))
cDec := alltrim(Str( aStruct[i][DBS_DEC ], 3 ))
cOke := ""
if cType == "C"
cOke := " "+cFieldName+" CHAR ("+cLen+") , "
endif
if cType == "M"
cOke := " "+cFieldName+" CHAR (150) , "
endif
if cType == "N"
if val(cDec) == 0
cOke := " "+cFieldName+" NUMERIC ( "+cLen+", 0) , "
else
cOke := " "+cFieldName+" NUMERIC ( "+cLen+", 2) , "
endif
endif
if cType == "D"
cOke := " "+cFieldName+" DATE, "
endif
if cType == "L"
cOke := " "+cFieldName+" BOOLEAN, "
endif
cField += cOke
next
cField := upper(cField)
cSql := "CREATE TABLE "+cFileDEST+" ( recno_key serial primary key, "
cSQL += cField
cSQL += " edited_date DATE, edited_time CHAR(8) "
cSQL += " );"
?cSql
oQuery := oServer:Query( cSql )
IF oQuery:NetErr()
?oQuery:Error()
ENDIF
oQuery:Destroy()
if lAppend
dbCloseAll()
use (cFileORIG) new shared alias orig
nMulai := 0
nPersen := 0
nRecord := orig->(lastrec())
orig->(dbGotop())
do while !orig->(eof())
++nMulai
nPersen := ( nMulai / nRecord ) * 100
oDlgStock:cTitle := cFileDEST +" "+str(nMulai,12)+"/"+str(nRecord,12)+"="+str(nPersen,12)+"%"
SysRefresh()
cFieldJalan := alltrim(orig->(FieldName(1)))
cDatanya := orig->&cFieldJalan
if valtype(cDatanya) == "N"
cDatanya := alltrim(str(cDatanya,14,2))
else
cDatanya := "'"+upper(alltrim(cDatanya))+"'"
endif
cSQL := "INSERT INTO "+alltrim(cFileDEST)+" ( "+cFieldJalan+" ) VALUES ( "+cDatanya+" )"
oQuery := oServer:Query( cSql )
IF oQuery:NetErr()
?oQuery:Error()
ENDIF
oQuery:Destroy()
for x := 2 to orig->(fcount())
cFieldJalan := alltrim(orig->(FieldName(x)))
cDatanya := orig->&cFieldJalan
if valtype(cDatanya) == "N"
cDatanya := alltrim(str(cDatanya,14,2))
endif
if valtype(cDatanya) == "D"
cTahun := strzero(year(cDatanya),4)
cBulan := strzero(month(cDatanya),2)
cTgl := strzero(day(cDatanya),2)
cDatanya := cTahun+"-"+cBulan+"-"+cTgl
endif
if valtype(cDatanya) == "L"
if cDatanya
cDatanya := "1"
else
cDatanya := "0"
endif
endif
if valtype(cDatanya) == "C"
cChar := ""
for xx := 1 to len(cDatanya)
cOke := subs(cDatanya,xx,1)
if cOke == "'"
cOke := ""
endif
cChar += cOke
next
cDatanya := "'"+upper(alltrim(cChar))+"'"
endif
if valtype(cDatanya) == "M"
cDatanya := "'"+upper(alltrim(cDatanya))+"'"
endif
cSql := "UPDATE "+alltrim(cFileDEST)+" SET "+cFieldJalan+" = "+cDatanya+" WHERE recno_key = "+alltrim(str(nMulai,12))
oQuery := oServer:Query( cSql )
IF oQuery:NetErr()
?oQuery:Error()
ENDIF
oQuery:Destroy()
next
orig->(dbSkip())
enddo
dbCloseAll()
endif
**********************
oDlgStock:End()
return nil
Fafi
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 2:58 pm
by nageswaragunupudi
a litle faster than mysql for Insert command
I am not sure.
Even then that alone can not be a reason to give up mysql. There should be other solid reasons.
Insert speeds depend on many factors including our database design. Even then it is considered a serious issue by organizations who have a hit rate of several transactions per second. Even there, there are several ways of fine tuning server and database performance.
When we are using extremely primitive libraries like tmysql, hbpgsql there is no point in discussing these issues.
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 6:19 pm
by Marcelo Via Giglio
Hola,
only a point of view, why PG, no instead of
The lincence
The features
The Reliablility
The Robusness
There is a company EnterpriseDB (
https://www.enterprisedb.com) who are developing an Oracle DataBase clone based on Postgres, it means to much.
Postgres is a RDMS is a OODB too, this can work like NoSql, GIS, .....
Yes, some people can say the same from MySQL or MariaDB, at the end is a personal election, but I think that PG borned with the idea to be a enterprise database, MySql no, then the pression obligate to add Innodb to resolve problems with integrity.... I don't want to say which is better, is only an opinion.
But I'm happy that FW has support to PG
Thanks and best regards
Marcelo Vía
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Wed May 31, 2017 9:06 pm
by nageswaragunupudi
Mr Marcelo
Thank you.
at the end is a personal election
I agree.
But I'm happy that FW has support to PG
We are only beginning by providing better compatibility with (x)Harbour's libraries hbpgsql and pgsql and also provide enhanced functionality. We are still far from providing our own library like our mariadb.
I have no opinion or bias against or in favour of PG. I am only trying to learn from other knowledgeable colleagues why do they consider PG to be better than MySql/MariaDB.
This also gives us an idea how many users will be interested if we invest our time to provide a better featured libraray for PG.
Licence: I think with Mariadb, licence is not an issue
Features: This is what I am interested in learning what are those extra features that are attracting our FWH users. This also gives us an idea where to focus more in our development.
NoSql and GIS are also available with MariaDB. I agree I did not compare the features in detail.
Though I am sure we are never going to use it, MariaDB is also coming up with Column Store in the lines of Oracle, which greatly enhances OLAP performance without sacrificing OLTP performance. All this is irrelevant for our volumes of data.
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Thu Jun 01, 2017 4:05 am
by dutch
Dear Mr.Rao,
nageswaragunupudi wrote:But please tell me why do you want postgresql?
Isn't mariadb enough?
I just think that, if FWMARIADB is compatible with all. It will be great and PostgreSQL is a good alternative choice, if the modification is not too complicated.
My prefer choice is still MySql and MariaDB.
Just idea and my opinion.
Thanks®ards,
Dutch
Re: MySql, MariaDB and PostgeSQL are FWMARIADB's compatible?
Posted: Fri Jun 02, 2017 4:35 pm
by sygecom
PostgreSQL
+1