Repository local Ubuntu 9.04 di ICT Center Rembang

ketik pada terminal dengan sebagai root
cp /etc/apt/sources.list /home/
gedit /etc/apt/sources.list

hapus semua yang ada di gantikan dengan dibawah ini

deb http://118.98.162.203/ubuntu/repo1 jaunty main restricted
deb http://118.98.162.203/ubuntu/repo2 jaunty main multiverse restricted
deb http://118.98.162.203/ubuntu/repo3 jaunty universe
deb http://118.98.162.203/ubuntu/repo4 jaunty universe
deb http://118.98.162.203/ubuntu/repo5 jaunty universe
deb http://118.98.162.203/ubuntu/repo6 jaunty universe



Create file Cab dan Expand with VB6

jika kita akan merubah file setup windows jika file themeui.dll dibuat menjadi themeui.dl_
Program ini saya buat guna menyingkat waktu dalam mengekstrak file windows yang berektensi *.dl_ , *.cp_, *.ex_ dan lain-lainnya kemudian mengembalikan file tersebut ke bentuk semula.
Kenapa kog harus di ekstrak padahal file tersebut kan sudah ada di file windows yang sudah terinstall tinggal pakai ambil aja di c:\windows\system32 kan ga repot. He..he..
Tapi kalau anda pengin membuat modifikasi file windows tersebut dari file setup pada CD windows pasti anda akan kebingungan. Sebenarnya bisa pakai command prompt yang disediakan oleh windows tapi akan memperlama anda dalam mengetik di command prompt.
Kemudian karena aku terinspirasi dengan perintah-perintah di command prompt sehingga aku membuat program ini. Mungkin aja para master akan tertawa melihat source code yang saya kirim ini maklum newbie dalam penulisan bahasa program.

File terdiri dari
frmMain (4 label, 4 commandbutton)
modMakeFolder
CommonDialog (User Control)
Langsung aja ya. Kita tuliskan codenya
Untuk frmMain.frm
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = -1&
Dim FileNama As String
Private Sub ShellAndWait(ByVal program_name As String)
Dim process_id As Long
Dim process_handle As Long

process_id = Shell(program_name, vbHide)
DoEvents
' tunggu sampai program selesai
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If
End Sub

Private Sub cmdAbout_Click()
MsgBox "Program dibuat oleh Sodikin" + Chr(13) + _
"Email : hack.chin@gmail.com" + Chr(13) + _
"Site :http://s0dikin.blogspot.com" + Chr(13) + _
"Thank for :" + Chr(13) + _
"------------------------------------------" + Chr(13) + _
"Allah SWT" + Chr(13) + _
"Bokap n Nyokap" + Chr(13) + _
"Istri Tercinta" + Chr(13) + _
"All Frinds" + Chr(13) + _
"------------------------------------------" + Chr(13) + _
"Forum : www.xcode.co.id; www.vb-bego.net", vbInformation + vbOKOnly, "About Me?"

End Sub

Private Sub cmdExit_Click()
End
End Sub

Private Sub cmdExpand_Click()
With CD
.Filter = "*.sy_, *.dl_, *.ex_, *.cp_|*.sy_;*.dl_;*.ex_;*.cp_|"
.DialogTitle = "Buka File Xwaja"
.ShowOpen
End With
txtSource.Text = CD.FileName
Label2.Caption = CD.FileTitle
txtHasil.Text = Left(CD.FileName, Len(txtSource.Text) - Len(Label2.Caption)) + "HasilExpand"
CreateDirectory txtHasil.Text, Keamanan
'buat file BAT untuk melakukan Expand
FileNama = GetSystemPath + "chungchin.bat"
Open FileNama For Output As #1
Print #1, Tab(1); "expand.exe -r " + txtSource.Text + " " + txtHasil.Text
Close #1
'Jalankan file BAT yang telah dibuat
ShellAndWait FileNama
'Hapus file BAT yang telah dibuat
Kill FileNama
MsgBox "expand file : " + txtSource.Text + Chr(13) + _
"silahkan di lihat di " + txtHasil.Text
End Sub

Private Sub cmdMakeCab_Click()
With CD
.Filter = "*.sys, *.dll, *.exe|*.sys;*.dll;*.exe|"
.DialogTitle = "Buka File BM@"
.ShowOpen
End With
txtSource.Text = CD.FileName
Label2.Caption = CD.FileTitle
Label3.Caption = Left(CD.FileName, Len(txtSource.Text) - Len(Label2.Caption)) + "HasilCab"
txtHasil.Text = Label3.Caption + "\" + Left(CD.FileTitle, Len(Label2.Caption) - 1) + "_"
CreateDirectory Label3.Caption, Keamanan
'buat file BAT untuk melakukan MakeCAB
FileNama = GetSystemPath + "chungchin.bat"
Open FileNama For Output As #1
Print #1, Tab(1); "makecab.exe " + txtSource.Text + " " + txtHasil.Text
Close #1
'Jalankan file BAT yang telah dibuat
ShellAndWait FileNama
'Hapus file BAT yang telah dibuat
Kill FileNama
MsgBox "MakeCAB file : " + txtSource.Text + Chr(13) + _
"silahkan di lihat di " + txtHasil.Text

End Sub

Kemudian anda ketikkan code ini untuk Module (modMakeFolder)
Option Explicit
Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Public Declare Function NdamelAnak Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Public Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Keamanan As SECURITY_ATTRIBUTES
Public Sub GaweAnakManeh(Ibu As String, Anak As String)
NdamelAnak Ibu, Anak, 0
End Sub


Public Function GetSystemPath() As String

On Error Resume Next
Dim Buffer As String * 255
Dim x As Long
x = GetSystemDirectory(Buffer, 255)
GetSystemPath = Left(Buffer, x) & "\"

End Function

Yang terakhir anda buat Usercontrol kemudian beri nama CommonDialog (sebernarnya bisa pakai comdlg.ocx yang sudah terinstall, tapi program ga akan portable karena harus menyertakan comdlg.ocx. tapi kalau kita buat sendiri maka program yang kita buat bisa di jalankan di semua komputer (tapi yang berbasis windows tentunya)
Langsung aja setelah buat UserControl langsung tuliskan code berikut:

Option Explicit
Private Declare Function GetOpenFileName Lib _
"COMDLG32.DLL" Alias "GetOpenFileNameA" _
(pOpenfilename As OPENFILENAME) As Long
Private Declare Function GetSaveFileName Lib _
"COMDLG32.DLL" Alias "GetSaveFileNameA" _
(pOpenfilename As OPENFILENAME) As Long

Private cdlg As OPENFILENAME
Private LastFileName As String

Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type

Private Const OFN_ALLOWMULTISELECT = &H200
Private Const OFN_CREATEPROMPT = &H2000
Private Const OFN_ENABLEHOOK = &H20
Private Const OFN_ENABLETEMPLATE = &H40
Private Const OFN_ENABLETEMPLATEHANDLE = &H80
Private Const OFN_EXPLORER = &H80000
Private Const OFN_EXTENSIONDIFFERENT = &H400
Private Const OFN_FILEMUSTEXIST = &H1000
Private Const OFN_HIDEREADONLY = &H4
Private Const OFN_LONGNAMES = &H200000
Private Const OFN_NOCHANGEDIR = &H8
Private Const OFN_NODEREFERENCELINKS = &H100000
Private Const OFN_NOLONGNAMES = &H40000
Private Const OFN_NONETWORKBUTTON = &H20000
Private Const OFN_NOREADONLYRETURN = &H8000
Private Const OFN_NOTESTFILECREATE = &H10000
Private Const OFN_NOVALIDATE = &H100
Private Const OFN_OVERWRITEPROMPT = &H2
Private Const OFN_PATHMUSTEXIST = &H800
Private Const OFN_READONLY = &H1
Private Const OFN_SHAREAWARE = &H4000
Private Const OFN_SHAREFALLTHROUGH = 2
Private Const OFN_SHARENOWARN = 1
Private Const OFN_SHAREWARN = 0
Private Const OFN_SHOWHELP = &H10

Public Enum DialogFlags
ALLOWMULTISELECT = OFN_ALLOWMULTISELECT
CREATEPROMPT = OFN_CREATEPROMPT
ENABLEHOOK = OFN_ENABLEHOOK
ENABLETEMPLATE = OFN_ENABLETEMPLATE
ENABLETEMPLATEHANDLE = OFN_ENABLETEMPLATEHANDLE
EXPLORER = OFN_EXPLORER
EXTENSIONDIFFERENT = OFN_EXTENSIONDIFFERENT
FILEMUSTEXIST = OFN_FILEMUSTEXIST
HIDEREADONLY = OFN_HIDEREADONLY
LONGNAMES = OFN_LONGNAMES
NOCHANGEDIR = OFN_NOCHANGEDIR
NODEREFERENCELINKS = OFN_NODEREFERENCELINKS
NOLONGNAMES = OFN_NOLONGNAMES
NONETWORKBUTTON = OFN_NONETWORKBUTTON
NOREADONLYRETURN = OFN_NOREADONLYRETURN
NOTESTFILECREATE = OFN_NOTESTFILECREATE
NOVALIDATE = OFN_NOVALIDATE
OVERWRITEPROMPT = OFN_OVERWRITEPROMPT
PATHMUSTEXIST = OFN_PATHMUSTEXIST
ReadOnly = OFN_READONLY
SHAREAWARE = OFN_SHAREAWARE
SHAREFALLTHROUGH = OFN_SHAREFALLTHROUGH
SHARENOWARN = OFN_SHARENOWARN
SHAREWARN = OFN_SHAREWARN
ShowHelp = OFN_SHOWHELP
End Enum

Private CFm_CancelError As Boolean
Private CFm_DialogTitle As String
Private CFm_DefaultExt As String
Private CFm_FileName As String
Private CFm_FileTitle As String
Private CFm_Filter As String
Private CFm_Flags As DialogFlags
Private CFm_InitDir As String

Public Property Get CancelError() As Boolean
CancelError = CFm_CancelError
End Property

Public Property Let CancelError(PropVal As Boolean)
CFm_CancelError = PropVal
End Property

Public Property Get DialogTitle() As String
DialogTitle = CFm_DialogTitle
End Property

Public Property Let DialogTitle(PropVal As String)
CFm_DialogTitle = PropVal
End Property

Public Property Get DefaultExt() As String
DefaultExt = CFm_DefaultExt
End Property

Public Property Let DefaultExt(PropVal As String)
CFm_DefaultExt = PropVal
End Property

Public Property Get FileName() As String
FileName = CFm_FileName
End Property

Public Property Let FileName(PropVal As String)
CFm_FileName = PropVal
End Property

Public Property Get FileTitle() As String
FileTitle = CFm_FileTitle
End Property

Public Property Let FileTitle(PropVal As String)
CFm_FileTitle = PropVal
End Property

Public Property Get Filter() As String
Filter = CFm_Filter
End Property

Public Property Let Filter(PropVal As String)
CFm_Filter = PropVal
End Property

Public Property Get Flags() As DialogFlags
Flags = CFm_Flags
End Property

Public Property Let Flags(PropVal As DialogFlags)
CFm_Flags = PropVal
End Property

Public Property Get InitDir() As String
InitDir = CFm_InitDir
End Property

Public Property Let InitDir(PropVal As String)
CFm_InitDir = PropVal
End Property


Private Sub UserControl_Initialize()
UserControl.Height = 32 * 15
UserControl.Width = 32 * 15
End Sub

Private Sub UserControl_Resize()
UserControl.Height = 32 * 15
UserControl.Width = 32 * 15
End Sub

Public Sub ShowOpen()
Dim i As Integer
Dim flt As String, idir As String, trez As String
On Error Resume Next
flt = Replace(Filter, "|", Chr(0))

If Len(flt) = 0 Then flt = Replace("All Files (*.*)|*.*|", _
"|", Chr(0))
If Right(flt, 1) <> Chr(0) Then flt = flt & Chr(0)
If Len(InitDir) = 0 Then idir = FileName Else idir = InitDir

cdlg.hwndOwner = UserControl.Parent.hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = flt
cdlg.lpstrFile = FileName & String(255 - Len(FileName), _
Chr(0))
cdlg.nMaxFile = 256
cdlg.lpstrFileTitle = String(255, Chr(0))
cdlg.nMaxFileTitle = 256
cdlg.lpstrInitialDir = idir
cdlg.lpstrTitle = DialogTitle
cdlg.Flags = Flags
cdlg.lStructSize = Len(cdlg)
trez = IIf(GetOpenFileName(cdlg), Trim(cdlg.lpstrFile), "")

If Len(trez) > 0 Then FileName = trez: FileTitle = _
cdlg.lpstrFileTitle Else If CancelError Then _
Err.Raise -1, "CDL control", "Cancel"

End Sub

Public Sub ShowSave()

Dim i As Integer
Dim flt As String, idir As String, trez As String
On Error Resume Next
flt = Replace(Filter, "|", Chr(0))

If Len(flt) = 0 Then flt = Replace("All Files (*.*)|*.*|", _
"|", Chr(0))
If Right(flt, 1) <> Chr(0) Then flt = flt & Chr(0)
If Len(InitDir) = 0 Then idir = FileName Else idir = InitDir

cdlg.hwndOwner = UserControl.Parent.hWnd
cdlg.hInstance = App.hInstance
cdlg.lpstrFilter = flt
cdlg.lpstrFile = FileName & String(255 - Len(FileName), _
Chr(0))
cdlg.nMaxFile = 256
cdlg.lpstrFileTitle = String(255, Chr(0))
cdlg.nMaxFileTitle = 256
cdlg.lpstrInitialDir = idir
cdlg.lpstrTitle = DialogTitle
cdlg.Flags = Flags
cdlg.lStructSize = Len(cdlg)
trez = IIf(GetSaveFileName(cdlg), Trim(cdlg.lpstrFile), "")

If Len(trez) > 0 Then FileName = trez: FileTitle = _
cdlg.lpstrFileTitle Else If CancelError Then _
Err.Raise -1, "CDL control", "Cancel"

End Sub

Sudah selesai dalam penulisan silahkan aja di jalankan.
'|<<<<<<<<<<<<<..:: Programmer ::..>>>>>>>>>>>>>>|
'| Name : Sodikin |
'| site : http://s0dikin.blogspot.com |
'| email : hack.chin@gmail.com |
'| mr_hack77@yahoo.com |
'| chung_chin@joomlaku.info |
'| forum : www.xcode.or.id |
'| www.vb-bego.net |
'|<<<<<<<<<<<<<..:: End of File ::..>>>>>>>>>>>>>|

Buat server Repository Ubuntu 9.04

Hari ini suntuk sekali karena ya ga ada kerjaan. akhirnya yang berupaya membuat webserver berbasis ubuntu kemudian biar ga repot untuk mengupdate ubuntu sekalian deh aku buatkan reponya dan repo ini bisa diakses di LAN dan kedepannya bisa diakses ke public.
untuk persyaratan tersebut aku pakai xampp for linux digunakan sebagai web server dan reponya.
silahkan siapkan aja bahan-bahannya. Repo ubuntu 9.04 sebanyak 6 DVD aku sih donlot di repo.ugm.ac.id hehe... (1 minggu untuk donlot tu repo)
kalau yang beli silahkan dibuat file ISO aja, kalau yang donlot ya tinggal pakai aja. kemudian anda sediakan lampp nya

setelah xampp for linux (lampp) silahkan aja di install tu xampp
tutorialnya banyak kog cari aja deh
setelah install lammpp berhasil jalankan aja lammp tersebut, sehingga anda mempunyai webserver sendiri.
sekarang cara membuat reponya
letakkan hasil donlotan repo kamu di /home/[namauser]/
[namauser] adalah user yang kamu buat pada waktu istall ubuntu
setelah itu rename iso repo kamu menjadi repo1 dan seterusnya sampai repo6
oke langsung aja
anda buka terminal
kemudian anda masuk sebagai root
dengan perintah sudo su

kemudian anda ketikkan

mkdir -p /opt/lampp/htdocs/jaunty/repo1
mkdir -p /opt/lampp/htdocs/jaunty/repo2
mkdir -p /opt/lampp/htdocs/jaunty/repo3
mkdir -p /opt/lampp/htdocs/jaunty/repo4
mkdir -p /opt/lampp/htdocs/jaunty/repo5
mkdir -p /opt/lampp/htdocs/jaunty/repo6


diatas merupakan script untuk membuat direktori /opt/lampp/htdocs beserta sub directorinya (dengan perintah -p)

masukan perintah pengeditan pada /etc/fstab
dengan perintah

gedit /etc/fstab


masukkan script berikut di paling bawah

/home/[namauser]/iso1.iso /opt/lampp/htdocs/jaunty/repo1 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso2.iso /opt/lampp/htdocs/jaunty/repo2 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso3.iso /opt/lampp/htdocs/jaunty/repo3 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso4.iso /opt/lampp/htdocs/jaunty/repo4 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso5.iso /opt/lampp/htdocs/jaunty/repo5 iso9660 ro,loop,auto 0 0
/home/[namauser]/iso6.iso /opt/lampp/htdocs/jaunty/repo6 iso9660 ro,loop,auto 0 0


sekarang kita edit /etc/rc.local untuk menjalankan lammp secara otomatis jika restart
dengan perintah

gedit /etc/rc/local

masukkan script berikut sebelum exit o

sudo /opt/lampp/lampp start


kemudian restart komputer anda

sekarang anda jalankan web browser kemudian anda ketikkan localhost/jaunty
jika ada folder dan didalam folder2 tersebut ada isinya berarti pembuatan repo berhasil (kalau belum berhasil silahkan di lihat dulu script2 yang telah anda masukkan sudah benar atau tidak atau mungkin aja xampp nya belum jalan0
sekarang kita masukkan script untuk perubahan repository yang telah kita buat
buka terminal lagi sebagai root
kita anda source list repo dalam ubuntu akan tetepi terlebih dahulu kita backup dulu yang ada di system (biar kalau salah bisa kita restore kembali)
perintah backup

cp /etc/apt/sources.list /etc/apt/source.list-backup


perintah mengedit

gedit /etc/apt/sources.list


hilangkan semua tulisan yang ada kemudian kita ganti menjadi

deb http://192.168.0.1/jaunty/repo1 jaunty main restricted
deb http://192.168.0.1/jaunty/repo2 jaunty main restricted multiverse
deb http://192.168.0.1/jaunty/repo3 jaunty universe
deb http://192.168.0.1/jaunty/repo4 jaunty universe
deb http://192.168.0.1/jaunty/repo5 jaunty universe
deb http://192.168.0.1/jaunty/repo6 jaunty universe


dengan syarat ip 192.168.0.1 adalam ip dimana komputer yang ada repo (atau komputer yang sekarang kamu buat repo)

kemudian kamu coba jalan aplications/add/remove
silahkan kamu coba menginstall aplikasi yang belum ada jika berhasil berarti repository sudah berhasil di install pada komputer kamu.

sekiaan dulu semoga bermanfaat

Chung Chin

Backup mySQL dengan mysqldump

Kalau yang terdahulu saya bahas dengan membackup mysql dengan script di Visual basic sekarang akan saya bahas membackup database mysql dengan bantuan program mysqldump.exe yang merupakan bawaan dari mysql server. namun juga digabungkan dengan script2 di visual basic. Langsung aja anda kita bahas, anda harus menginstall mysql server (pati sudah terinstall kan udah punya database), kemudian anda cari program mySQLdump dan anda copykan ke folder tempat penyimpanan visual basic anda. kalau sudah langsung aja anda buat project nya.

project terdiri dari 1 project dan 1 form dan 1 commandbutton
silahkan anda copas nih kode

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = -1&
Dim FileNama As String
Sub BuatBAT()
Open App.Path + "\Backup.bat" For Output As #1
Print #1, Tab(1); "mysqldump.exe --user=root --password=dikosongi --host=localhost --databases kkpi --opt --quote-names --allow-keywords --complete-insert --add-drop-database --hex-blob> c:\kkpi.sql"
Close #1

End Sub
Private Sub ShellAndWait(ByVal program_name As String)
Dim process_id As Long
Dim process_handle As Long

process_id = Shell(program_name, vbHide)
DoEvents
' Wait for the program to finish.
' Get the process handle.
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If
' Reappear.
End Sub
Private Sub Command1_Click()
BuatBAT
ShellAndWait App.Path + "\Backup.bat"
kill App.Path + "\Backup.bat"
End Sub


sekian dulu semoga aja bermanfaat

chung chin

Backup dan Restore mySQL

ini merupakan source yang saya ambil dari www.pscode.com yang mana digunakan untuk membackup dan merestore database dengan mySQL sehingga bisa untuk memindahkan data mySQL. tentunya dengan visual basic juga.
silahkan lanjutkan aja

silahkan aja di copas ni kode pada module

Option Explicit

'Translate the literals if you want...
Const MSG_01 = "Dibuat Oleh: " 'created by
Const MSG_02 = "NamaDatabase: " 'database name
Const MSG_03 = "Tanggal/Waktu: " 'Data and time
Const MSG_04 = "DD/MM/YY HH:MM:SS" 'Your prefered format to display dates
Const MSG_05 = "DBMS: MySQL v"
Const MSG_06 = "Struktur Tabel " 'Table structure
Const MSG_07 = "Data Tabel " 'Table data
Const MSG_08 = "Akhir dari Backup: " 'End of backup
Public Sub MySQLBackup(ByVal strFileName As String, cnn As ADODB.Connection)
' strFileName contains the filename where you want to backup to go...
' It will overwrite the file if it exists...
' cnn is the current conection with the database...
On Error Resume Next

Dim rss As ADODB.Recordset
Dim rssAux As ADODB.Recordset

Dim X As Long, i As Integer

Dim strTableName As String
Dim strCurLine As String
Dim strBuffer As String
Dim strDBName As String

X = FreeFile
Open strFileName For Output As X

Print #X, ""
Print #X, "#"

Print #X, "# " & MSG_01 & App.Title & " v" & App.Major & "." & App.Minor & "." & App.Revision

'Looking for the database name
strDBName = Mid(cnn.ConnectionString, InStr(cnn.ConnectionString, "DATABASE=") + 9)
strDBName = Left(strDBName, InStr(strDBName, ";") - 1)
Print #X, "# " & MSG_02 & strDBName

Set rss = New ADODB.Recordset
Set rssAux = New ADODB.Recordset

'Looking for the version of MySQL
Print #X, "# " & MSG_03 & Format(Now, MSG_04)
rss.Open "show variables like 'version';", cnn
If Not rss.EOF Then
Print #X, "# " & MSG_05 & rss.Fields(1)
End If
rss.Close

'Preventing errors by foreign key violation during the restoring process
Print #X, "#"
Print #X, ""
Print #X, "SET FOREIGN_KEY_CHECKS=0;"
Print #X, ""

strTableName = ""

With rss
.Open "SHOW TABLE STATUS", cnn

'For each table...
Do While Not .EOF
strTableName = .Fields.Item("Name").Value
With rssAux
.Open "SELECT * FROM " & strTableName & "", cnn
If Not .EOF Then
Print #X, "INSERT INTO `" & strTableName & "` VALUES "

Do While Not .EOF
strCurLine = ""
For i = 0 To .Fields.Count - 1
strBuffer = .Fields.Item(i).Value

If .Fields.Item(i).Type = 131 Then
strBuffer = Replace(Format(strBuffer, "0.00"), ",", ".")
End If

'Some safe replacements...
strBuffer = Replace(strBuffer, "\", "\\")
strBuffer = Replace(strBuffer, "'", "\'")
strBuffer = Replace(strBuffer, Chr(10), "")
strBuffer = Replace(strBuffer, Chr(13), "\r\n")

If strCurLine <> "" Then
strCurLine = strCurLine & ", "
End If
strCurLine = strCurLine & "'" & strBuffer & "'"
Next i
.MoveNext

strCurLine = "(" & strCurLine & ")"
If .EOF Then
Print #X, strCurLine & ";"
Else
Print #X, strCurLine & ","
End If
Loop

End If

.Close
End With

Print #X, "unlock tables;"
Print #X, "#--------------------------------------------"

.MoveNext
Loop

'Setting the DB to its normal behavior...
Print #X, ""
Print #X, "SET FOREIGN_KEY_CHECKS=1;"
Print #X, ""
Print #X, "# " & MSG_08 & Format(Now, MSG_04)

.Close
End With

Close #X
End Sub
Public Sub MySQLRestore(ByVal strFileName As String, cnn As ADODB.Connection)
' strFileName contains the filename of the backup...
' cnn is the current conection with the database...

Dim lngTotalBytes As Long, lngCurrentBytes As Long
Dim X As Integer, strCurLine As String, strAux As String
Dim blnPassLines As Boolean
Dim blnAnalizeIt As Boolean

X = FreeFile

On Error GoTo ErrDrv

Open strFileName For Input As #X
lngTotalBytes = LOF(X)

blnPassLines = False
Do While Not EOF(X)
Line Input #X, strCurLine
lngCurrentBytes = lngCurrentBytes + Len(strCurLine)

'If you want to inform the user about the progress of the restoring process...
' do so with UpdateProgressBar (or whatever name you gave it to this function).
'Call UpdateProgressBar(lngTotalBytes, lngCurrentBytes)
'DoEvents

'Avoiding comments...
blnAnalizeIt = True
strCurLine = Trim(strCurLine)
If Not blnPassLines Then
If Left(strCurLine, 1) = "#" Then
blnAnalizeIt = False
ElseIf Left(strCurLine, 2) = "/*" Then
blnAnalizeIt = False
blnPassLines = True
End If
ElseIf Right(Trim(strCurLine), 2) = "*/" Then
blnPassLines = False
blnAnalizeIt = False
End If

'if the line should be proccessed...
If blnAnalizeIt And strCurLine <> "" Then

'Do it... Searching for a whole SQL statment
' (those with a trailing semicolon)
While Mid(strCurLine, Len(strCurLine), 1) <> ";"
strAux = strCurLine
Line Input #X, strCurLine
lngCurrentBytes = lngCurrentBytes + Len(strCurLine)
strCurLine = Trim(strCurLine)

'Call UpdateProgressBar(lngTotalBytes, lngCurrentBytes)
'DoEvents

strCurLine = strAux & strCurLine
Wend

'Execute the sentence...
cnn.Execute strCurLine
End If

'Call MyDoEvents
Loop

Close #X
'Call UpdateProgressBar(lngTotalBytes, lngTotalBytes)
HackPesan "Penambahan OK"
Exit Sub
ErrDrv:

Debug.Print "ERROR:" & Err.Number & vbNewLine & Err.Description & vbNewLine, vbCritical
Err.Clear

End Sub


nah kalau ini di taruh pada command
Call MySQLBackup(App.Path + "\Backup\backup" + Format(Now, "hhmmss") + ".sql", cn)


demikian semoga bermanfaat

Pelatihan Kepala Sekolah SMP se-Kab Rembang

pada tanggal 14 sampai 15 Juli kemarin diadakan pelatihan kepala sekolah SMP se-Kabupaten Rembang di SMP 1 Pamotan dengan materi Internet dan Powerpoint. saya dan teman saya Irawan karyo Utomo di tunjuk sebagai pemakalah dalam acara tersebut. berikut aku beri Modul Pelatihan tersebut. silahkan klik disini


Windows Seven X-Waja

ni windows yang udah aku modified bagi yang pengin bisa copy ke saya
Photobucket


didalamnya sudah include
Office 2009 (pakainya KingSoft Office mirip office 2003)
7zip
winrar
Smadav 2009 rv5.1
CorelDraw 11
Nero
FoxitReader
Yahoo Messenger
Mozilla Firefox 3.7
Client dan Server (untuk warnet)
ViStart
Viglance
KLite MegaCodec
IDM 5.14
GadGet

Buat Program dengan tampilan pakai ribbon office2007

Udah lama ga posting karena ngoprek buat source code dengan aplikasi codejock, setelah sekian lama ngoprek akhirnya berhasil buat tampilan yang sesuai dengan keinginan.
berikut akan aku sertakan tampilannya biar semua lihat. dan untuk source codenya menyusul.



source code akan aku berikan jika ada min 10 komentar di posting ini
sebenernya nunggu sampai 10 komentar, tapi aku ga tega karena mungkin akan lama aku ga bisa OL karena sekolah udah liburan jadi ikutan libur deh. biar ga di uber2 utang ama temen-teman aku posting source codenya deh. lihat di bawah.
ni source code nya beserta ocxnya : klik disini

Buat DSN untuk database mySQL

Posting ini saya buat karena pada waktu aku buat suatu project kesulitan gimana cara memanggil database mySQL untuk di taruh report sehingga report bisa menggunakan database tersebut. akan tetapi pada waktu buat DSN di komputer langsung maka setelah aku pidah project kita di komputer lain maka DSN juga ga ikut sehingga report tidak bisa memanggil database kita.
DSN bisa dibuat dengan sendirinya. setelah gogling dan membongkar source code yang aku miliki sehingga mendapatkan source create DSn dengan fungsi API.
kali ini akan aku share source code yang telah aku buat.

pertama-tama buat dulu module yang berisi fungsi untuk menuliskan ke registry
ni sourcenya silahkan di copas

Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Enum REG
HKEY_CURRENT_USER = &H80000001
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_CONFIG = &H80000005
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
End Enum
Public Const READ_CONTROL = &H20000
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20

'Tipe Reg Key ROOT ...
Public Const ERROR_SUCCESS = 0
Public dsnDriver As String
Enum TypeStringValue
REG_SZ = 1
REG_EXPAND_SZ = 2
REG_MULTI_SZ = 7
End Enum
Enum TypeBase
TypeHexadecimal
TypeDecimal
End Enum
Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Public Declare Function NdamelAnak Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Public Keamanan As SECURITY_ATTRIBUTES
Public Sub GaweAnakManeh(Ibu As String, Anak As String)
NdamelAnak Ibu, Anak, 0
End Sub
Public Function NdamelTulisan(hKey As REG, Subkey As String, RTypeStringValue As TypeStringValue, strValueName As String, strData As String) As Long

On Error Resume Next
Dim ret As Long

RegCreateKey hKey, Subkey, ret
NdamelTulisan = RegSetValueEx(ret, strValueName, 0, RTypeStringValue, ByVal strData, Len(strData))
RegCloseKey ret

End Function
Public Sub GaweDSN(dsnName As String, dsnServer As String, dsnPort As String, dsnUser As String, dsnPass As String)
If Not cekDrivermySQL(dsnDriver) Then
MsgBox "Tidak ada driver mySQL silahkan di install dulu", vbOKOnly + vbCritical, "Error.!!"
MsgBox "Program sementara di tutup", vbOKOnly + vbCritical, "Error.!!"
End
End If
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Description", "MySQL for Education"
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Database", dsnName
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Server", dsnServer
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Port", dsnPort
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "User", dsnUser
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Password", dsnPass
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Server", dsnServer
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Driver", dsnDriver
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Stmt", ""
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & dsnName, REG_SZ, "Option", ""
NdamelTulisan HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", REG_SZ, dsnName, "MySQL ODBC 3.51 Driver"
End Sub
Public Function AdaDriver(RegKeyPath As String, _
RegKeyName As String, _
ByRef RegKeyValue As String) As Boolean
Dim DoesIt As Boolean
Dim Result As Long
Dim hKey As Long
Result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, RegKeyPath, 0&, KEY_QUERY_VALUE, hKey)
If Result <> ERROR_SUCCESS Then
AdaDriver = False
Exit Function
End If
Result = RegQueryValueEx(hKey, RegKeyName, 0&, REG_SZ, ByVal RegKeyValue, Len(RegKeyValue))
RegCloseKey (hKey)


If Result <> ERROR_SUCCESS Then
AdaDriver = False
Exit Function
End If
AdaDriver = True
End Function


Public Function cekDrivermySQL(ByRef dsnDriver As String) As Boolean
Dim RegKeyPath As String
Dim RegKeyName As String
Dim RegKeyValue As String
Dim DoesIt As Boolean


DoesIt = False
'edit here to change the driver information
RegKeyPath = "SOFTWARE\ODBC\ODBCINST.INI\MySQL ODBC 3.51 Driver"
RegKeyName = "Driver"
RegKeyValue = String(255, Chr(32))



If AdaDriver(RegKeyPath, RegKeyName, RegKeyValue) Then
dsnDriver = RegKeyValue
DoesIt = True
Else
DoesIt = False
End If

cekDrivermySQL = DoesIt
End Function