Configuration Manager umumnya menggunakan pattern singleton yang artinya dia
tidak bisa di new dan tidak bisa diassign.
Singleton ini hanya bisa ada 1 object di seluruh applikasi.
Pattern ini sulit diimplementasikan dengan vb6. Di java dan .net
pattern ini sangat dipakai.
Karena itu di vb6 hanya bisa menggunakan variable global dengan class tertentu
dan hanya ada 1 tempat yang boleh membuatnya.
contoh configurationmanager
class configurationmanager
public sub new
end sub
function ConnectionString as string
'baca dari file atau registry
return hasilpembacaan
end function
function MaxCacheSize as integer
'baca dari file atau registry
return hasilpembacaan
end function
end class
Untuk password sebaiknya menggunakan integrated security saja jadi lebih aman
dan mudah diubah dari server. Kalo dihardcode
ada perubahan susah.
untuk terminate gracefully dan error handling kira-kira begini
public sub shrinkdata
on error goto onerror
Dim cnn As New ADODB.Connection
Dim strConnect As String
strConnect = "DRIVER={SQL SERVER};SERVER= PC_ANESS; DATABASE=
DB_ANESS;
UID=USER_ SQL_SERVER_ ANESS;PWD= PASSWORD_ ANESS"
cnn.Open
cnn.Execute "DBCC SHRINKDATABASE( NAMA_DBMU)", False, True
cnn.close()
set cnn =nothing
return
onerror:
dim desc as string
dim number as integer
dim source as string
set desc= Err.Description
set number = err.Number
set source= Err.Source
Err.Number, Err.Source, Err.Description
if not cnn is nothing then
cnn.close()
set cnn =nothing
end if
Err.Raise Number,Source,Desc
end sub
Cara ini menjamin koneksi selalu ditutup kapanpun even ketika
ada masalah ditengah jalan.
Kedua error tetap terpropagasi ke depan untuk ditindak lanjuti
misal memberikan error message ke user.
Error message hanya boleh ditampilkan di layer ui tidak boleh ditempat lain.
Lebih bagus kalo errormesssge di log dulu agar ada catatan .
Untuk timeout ada 2 jenis.
Timeout untuk mencoba koneksi dan timeout untuk menjalan sebuah query.
Untuk time out mencoba koneksi silahkan liat bagaimana membuat sebuah
connectionstring yang benar lengkap dengan timeout dan pagepooling.
Untuk timeout menjalankan sebuah query saya kurang tahu di vb 6 bagaimana
melaksanakannya.
untuk yang thread saya sudah lama nggak bikin program pake vb6 lagi jadi lupa.
Maaf.
________________________________
From: Edy WIYONO <[email protected]>
To: [email protected]
Sent: Thu, June 17, 2010 6:50:05 PM
Subject: RE: [programmer-vb] Compact Sql Server 2005
Masukan yang sangat bagus.
Undelinenya memang sekadar jalan saja.
Kalau mau di optimasi ya itu lain lagi masalahnya.
Btw, bagaimana optimasi koding saya yang sekadar jalan
Itu sehingga masuk standar best practice?
Kalau tidak keberatan, revisinya silahkan di sharing untuk
Pembelajaran bagi saya juga bagi yang lain.
Salam Hangat dan Jabat Erat
EdyWiyono
________________________________________
From: [email protected] [mailto:[email protected]]
On Behalf Of johan max
Sent: Thursday, June 17, 2010 16:12
To: [email protected]
Subject: Re: [programmer-vb] Compact Sql Server 2005
Sekedar komentar kode dibawah ditekankan untuk sekedar jalan tapi tidak
mendukung best practices :
1. tidak ada configuration manager (sql connection dihardcode)
2. password disimpan dalam plain text
3. tidak terminate gracefully.
Connectionnya tidak ditutup dalam kondisi apapun
(baik error atau tidak)
4. timeout tidak diset
5. ui akan frezee dengan kode ini. harus pake thread
________________________________________
From: Edy WIYONO <edy.wiy...@yahoo. co.id>
To: programmer-vb@ yahoogroups. com
Sent: Wed, June 16, 2010 10:52:58 PM
Subject: RE: [programmer- vb] Compact Sql Server 2005
Mungkin seperti ini:
Dim cnn As New ADODB.Connection
Dim strConnect As String
strConnect = "DRIVER={SQL SERVER};SERVER= PC_ANESS; DATABASE= DB_ANESS;
UID=USER_ SQL_SERVER_ ANESS;PWD= PASSWORD_ ANESS"
‘contohnya
‘strConnect=DRIVER= (SQL SERVER);SERVER= PS001;DATABASE= DB_LATIHAN;
UID=sa;PWD=’’”
cnn.ConnectionStrin g = strConnect
cnn.Open
cnn.Execute "DBCC SHRINKDATABASE( NAMA_DBMU)", False, True
Set cnn = Nothing
Ganti PC_ANESS dengan nama SERVER
DB_ANESS dgn nama DATABASE
UID_SQL_SERVER_ ANESS dgn nama login ke SQL Server , misalnya sa
PASSWORD_ANESS dgn password dari login tsb.
Salam Hangat dan Jabat Erat
EdyWiyono
________________________________________
From: programmer-vb@ yahoogroups. com [mailto: programmer-vb@ yahoogroups.
com ] On Behalf Of Anez Story
Sent: Thursday, June 17, 2010 10:10
To: programmer-vb@ yahoogroups. com
Subject: Re: [programmer- vb] Compact Sql Server 2005
dear johan max,
iya ada. pesan nya :
compile error :
sub or function not defined
tapi kalau saya coba jalankan di query analyzer di sql server 2005 sukses..
________________________________________
From: johan max <johans...@yahoo. com>
To: programmer-vb@ yahoogroups. com
Sent: Wed, June 16, 2010 7:45:57 PM
Subject: Re: [programmer- vb] Compact Sql Server 2005
Ada pesan kesalahan ?
________________________________________
From: Anez Story <anez_st...@yahoo. com>
To: programmer-vb@ yahoogroups. com
Sent: Thu, June 17, 2010 8:02:26 AM
Subject: Re: [programmer- vb] Compact Sql Server 2005
dear johan max,
terima kasih atas tanggapan nya..
saya sudah coba jalanin lewat vb 6 kok ga bs ya?
mohon pencerahan nya..
________________________________________
From: johan max <johans...@yahoo. com>
To: programmer-vb@ yahoogroups. com
Sent: Wed, June 16, 2010 12:20:55 PM
Subject: Re: [programmer- vb] Compact Sql Server 2005
DBCC SHRINKDATABASE( NAMADATABASE) ,.
harus dba atau sysadmin atau storageadmin
________________________________________
From: Anez Story <anez_st...@yahoo. com>
To: Programmer VB <programmer-vb@ yahoogroups. com>
Sent: Wed, June 16, 2010 10:17:36 AM
Subject: [programmer- vb] Compact Sql Server 2005
dear all,
ada yang tau cara compact database sql server 2005 melalui coding vb 6?
thanks
best regrads,
story