Generate SQL Script MySQL menggunakan Visual Foxpro

SQL Script pada MySQL biasanya berguna untuk mem-backup tabel maupun database MySQL sehingga bagi pengembang aplikasi akan sangat dibutuhkan. Berikut ini adalah kode program Visual Foxpro yang dapat men-generate script sql untuk MySQL :

DBname=”" && nama database

Server=”" && alias / IP server

Username=”" && user mysql

Passwd=”" && password user

DSN=”DRIVER={MySQL ODBC 3.51 Driver};DESC=;DATABASE=”;
+DBname+”;SERVER=”+Server+”;UID=”+Username+;
“;PASSWORD=”+Passwd+”;PORT=;OPTION=2056;STMT=;”

PUBLIC koneksi, xstatuser && variabel koneksi
koneksi=SQLSTRINGCONNECT(DSN)

SQLEXEC(koneksi, “show tables”, “crtables”)
nm=”tables_in_”+ALLTRIM(db)

txtsql=”"
DO WHILE NOT EOF()

xtabel=ALLTRIM(crtables.&nm)

xteks=”DROP TABLE IF EXISTS &xtabel”+”;”+CHR(13)+CHR(13)

**** buat script create table

SQLEXEC(koneksi, “show create table &xtabel”,”crtb”)

xteks=xteks+ALLTRIM(crtb.create_table)+”;”+CHR(13)+CHR(13)

txtsql=txtsql+xteks

**** Ambil rincian field (row)

SQLEXEC(koneksi, “describe &xtabel”,”crdesc”)

n=0

DO WHILE NOT EOF()

n=n+1

xfield=ALLTRIM(crdesc.field)

vfld(n)=xfield

SELECT crdesc

SKIP 1

ENDDO

**** Buat Script INSERT

SQLEXEC(koneksi, “select * from &xtabel”, “crb”)

SELECT crb
DO WHILE NOT EOF()

txt=”INSERT INTO “+xtabel+” VALUES (“

FOR w=1 TO n

IF alltype(crb.&vfld(w))=’N’

txt=txt+ALLTRIM(STR(crb.&vfld(w)))+”, “
ENDIF
IF alltype(crb.&vfld(w))=’C’

txt=txt+’”‘+ALLTRIM(crb.&vfld(w))+’”‘+”, “
ENDIF
IF alltype(crb.&vfld(w))=’D’

xtglnya=ALLTRIM(DTOC(crb.&vfld(w)))

IF ISNULL(xtglnya)

xtglnya=”
ELSE

xtglnya=RIGHT(xtglnya,4)+”-”+SUBSTR(xtglnya,4,2)+”-”+LEFT(xtglnya,2)
ENDIF
txt=txt+’”‘+xtglnya+’”‘+”, “

ENDIF
NEXT w

txt=ALLTRIM(txt)
txt=SUBSTR(txt, 1, LEN(txt)-1)
txt=txt+”);”+CHR(13)

txtsql=txtsql+txt
SELECT crb
SKIP 1

ENDDO

SELECT crtables
SKIP 1

ENDDO

sqlscript=txtsql && hasil script

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.