Pada pembahasan kali ini saya akan membuat tutorial mengupload database ke sql server dengan menggunakan teknik SSIS, file yang diupload sourcenya berupa EXCEL
Spesifikasi yang digunakan adalah
- sql server 2000
- Excel 2003
- Visual Studio 2008
- Windows Server 2000
Yang perlu dipersiapkan
- tabel pada database
- file excel yang berisi data yang akan diupload
Saya asumsikan disini bahwa table untuk menyimpan datanya telah anda buat.
1. Membuat file DTS untuk job upload data
Pilih export & import data dari sql server
akan muncul tampilan DTS Export / Import Wizard
Lalu pilih Data Source anda, perlu dipastikan bahwa Path file yang digunakan nantinya akan sama.
Pada saat memilih specify table or query pilih " Copy table(s) and view(s) ... "
Pada Halaman Selanjutnya anda perlu memilih pada sheet berapa data yang ingin anda upload, dan akan di upload ke table mana
Lalu di bagian " Save , schedule replicate ... " Centang pilihan " save Dts Paket " dan pilih " Structured Storage File "
Pada tampilan " SAVE DTS Package " beri nama file anda , tentukan lokasi file anda dan jangan lupa memberi password untuk paket anda, Owner password dan user Password dapat disamakan.
Setelah menentukan tekan "Next " maka proses telah selesai dan file dts akan tersedia di path yang anda tentukan sebelumnya.
2. Membuat File BAT
Setelah selesai membuat file DTS selanjutnya kita akan membuat file bat yang berfungsi untuk menjalankan file DTS nantinya dari script yang kita buat.
Buka notepad dan ketikan berikut :
set PATH=%PATH%;"\Program Files\Microsoft SQL Server\80\Tools\Binn\" == Path ke folder dtexec.exe ==
D:
cd \SSIS\folder == path folder file dts anda ==
dtexec.exe /f [nama_file_dts] /De [password_file_dts]
Save file tersebut dalam bentuk .bat, dan letakan dalam folder yang sama dengan file DTS anda.
3. Membuat Aplikasi Untuk Mengupload
Persiapan telah selesai sekarang kita tinggal membuat aplikasi untuk mempermudah user mengupload file excel ke database, buatlah tampilan atau file aspx yang berisi Formupload dan Sebuah Button, atau kreasikan sesuka anda ( contoh )
Imports System.Data
Imports System.IO
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Text
Imports System.Diagnostics.Process
Script Trigger menjalankan upload file dan menjalankan bat.
1: If Not File_excel.HasFile = False Then 2: filepath1 = File_excel.PostedFile.FileName 3: pat1 = "(?:.+)\\(.+)\.(.+)" 4: r1 = New Regex(pat1) 5: 'run 6: m1 = r1.Match(filepath1) 7: file_ext1 = m1.Groups(2).Captures(0).ToString() 8: filename1 = m1.Groups(1).Captures(0).ToString() 9: file1 = filename1 & "." & file_ext1 10: filepath1Serv =
"\hdtest_temp\hdtest\Network profiling admin\DataNetwork/"
& file1 11: File_excel.SaveAs(MapPath("
~\Network profiling admin\DataNetwork/
") & file1) 12: If file_ext1 = "xls" Or file_ext1 = "xlsx" Then 14: Dim p As New System.Diagnostics.Process() 15: p.StartInfo.WorkingDirectory =
"
D:\SSIS\
"
16: p.StartInfo.FileName =
"D:\SSIS\network profiling\netprof_data.bat"
17: p.Start() 18: p.WaitForExit(10000) 19: 'p.CloseMainWindow() 20: p.Close() 21: Me.ClientScript.RegisterStartupScript(System.Type.GetType("System.String"), "alert", "window.alert('Upload DataBerhasil')", True) 22: btn_upload.Enabled = True 23: Exit Sub 24: Else 25: Me.ClientScript.RegisterStartupScript(System.Type.GetType("System.String"), "alert", "window.alert('Format File Extension harus berupa excel file.')", True) 26: btn_upload.Enabled = True 27: Exit Sub 28: End If 29: Me.ClientScript.RegisterStartupScript(System.Type.GetType("System.String"), "alert", "window.alert('Silakan pilih file yang ingin anda upload.')", True) 30: btn_upload.Enabled = True 31: Exit Sub 32: End If
Penjelasan.
filepath1Serv : Merupakan path tempat anda meletakan file excel yang anda tentukan pada saat pembuatan File DTS
File_excel.SaveAs : Path upload file excel anda
p.StartInfo.WorkingDirectory : merupakan path folder tempat anda meletakan file bat
p.StartInfo.FileName : merupakan path folder tempat anda meletakan file bat beseta nama bat nya.
Catatan : file excel harus memiliki header yang berisi nama - nama column pada table yang ingin anda upload, dan penamaan header tersebut haruslah sama.