Top Banner
Memasukkan Data dari File Teks/Excel ke Database By rumono May 12, 2010Posted in: Database Biasanya orang lebih banyak menyimpan datanya dalam aplikasi seperti Microsoft Excel, karena memang banyak orang yang telah terbiasa dengan aplikasi tersebut. Masalah akan timbul ketika data yang sudah terlanjur diketikkan tersebut ingin dimasukkan langsung ke database.. nggak ada kerjaan banget, kalau harus mengetik ulang ke database apalagi jika datanya kelewat banyak.. Bagi yang mengerti database memang ada cara yang lebih mudah yaitu dengan menggunakan fasilitas Import and Export Data atau dengan pernyataan SQL. Untuk programmer yang ingin menambahkan fasilitas import data dalam aplikasi yang dikembangkannya, agar setiap user bisa memasukkan sendiri data dari file teks atau Excel, tentu saja pilihannya adalah pernyataan SQL.
12

Memasukkan Data dari File Teks/Excel ke Database By rumono

Jan 29, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Memasukkan Data dari File Teks/Excel ke Database By rumono

Memasukkan Data dari File Teks/Excel ke DatabaseBy rumono – May 12, 2010Posted in: DatabaseBiasanya orang lebih banyak menyimpandatanya dalam aplikasi seperti MicrosoftExcel, karena memang banyak orang yangtelah terbiasa dengan aplikasi tersebut.Masalah akan timbul ketika data yang sudahterlanjur diketikkan tersebut ingindimasukkan langsung ke database.. nggak adakerjaan banget, kalau harus mengetik ulangke database apalagi jika datanya kelewatbanyak..

Bagi yang mengerti database memang ada carayang lebih mudah yaitu dengan menggunakanfasilitas Import and Export Data ataudengan pernyataan SQL. Untuk programmeryang ingin menambahkan fasilitas importdata dalam aplikasi yang dikembangkannya,agar setiap user bisa memasukkan sendiridata dari file teks atau Excel, tentu sajapilihannya adalah pernyataan SQL.

Page 2: Memasukkan Data dari File Teks/Excel ke Database By rumono

Saya mengasumsikan kamu memakai database SQLServer 2000, yang biasanya pada saatinstallasi telah membuatkan beberapacontoh database. Dalam artikel ini sayamemakai database Northwind, dan data fileakan dimasukkan dalam tabel Customers..Sebelumnya download dulu file excel SampleData Excel, sedang contoh file teks bisadiperoleh dengan mengkonversi file exceltersebut menjadi file Text (tabdelimited)..

Cara mengkonversinya, buka file exceltersebut kemudian klik menu File -> Saveas…, dan ikut langkahnya seperti gambarberikut ini

Pada saat kamu menekan tombol Save, akanmuncul dua pesan.. tekan tombol OK padapesan pertama dan tekan tombol Yes padapesan kedua. Seperti gambar di atas, Sayamenyimpan file text tadi di path ‘F:\Private\project for blog\’.. Seharusnya

Page 3: Memasukkan Data dari File Teks/Excel ke Database By rumono

sekarang di folder tersebut adafile sampledata.txt. Selanjutnya tutupkembali aplikasi Microsoft Excel, jikamuncul pesan konfirmasi untuk menyimpan,sebaiknya tekan tombol No agar keadaan fileexcel tetap seperti sedia kala..

Pernyataan SQL untuk memasukkan data darifile tergantung pada jenis file-nya. Dalamartikel ini saya menggunakan dua macampernyataan yaitu BULK INSERT dan INSERTINTO..

1. Memasukkan data dari file teks denganpernyataan BULK INSERT

Secara ringkas pernyataan SQL untukmemasukkan data darifile sampledata.txt seperti gambar di bawahini

Saya memakai syntax tersebutdalam database SQL Server 2000,untuk database lain mungkin syntax-nyaberbeda. Pemilik (owner) tabelbiasanya dbo, walaupun tidak tertutup

Page 4: Memasukkan Data dari File Teks/Excel ke Database By rumono

kemungkinan ada tabel yang owner-nya adalahuser yang membuat tabel tersebut.Variabel DATAFILETYPE dipilih char karenafile data terdiri atas karakter, variabelini mempunyai empat macam nilai

Nilai Keterangan

char Meng-copy data dari file yang terdiri atas karakter

native Meng-copy dengan menggunakan tipe data database

widechar Meng-copy data dari file yang terdiri atas karakter Unicode

widenative Sama seperti native, kecuali untuk data bertipe char, varchar dan teks

Variabel FIELDTERMINATOR, menentukanpemisah antar nilai kolom dari data dalamfile. Biasanya file teks hasil konversidari file excel dipisahkan dengan tab,untuk membuktikannya buka filesampledata.txt dengan Notepad.. Dankarakter pengganti tab dalam pernyataan SQLadalah \t. Jika pemisah nilai kolom daridata seperti di bawah ini maka nilaivariabel FIELDTERMINATOR adalah ; (karaktertitik koma)CustomerID;CompanyName;ContactName;ContactTitle;AddressSPKOM;Spirit Komunika;Nugi;Sales Manager;Jl Dr. Muwardi Raya No.29-30 JakartaMAPRI;PT Malta Printindo;Angoro;Sales Manager;Jl Kedoya Raya No.2 A KedoyaSelatanGRPRI;PT Gramedia Printing Group;Bayu;Sales Manager;Jl Palmerah Selatan 22-28Jakarta

Tabel berikut ini menjelaskan daftarkarakter pemisah kolom atau baris dalampernyataan SQL

Page 5: Memasukkan Data dari File Teks/Excel ke Database By rumono

Nilai Keterangan

Tab \t

Newline character \n

Carriage return \r

Backslash \\

Tanpa pemisah \0

Karakter tertentu (*, A, t, l, dst..)

Gabungan dari beberapa karakter (**\t**, end, !!!!!!!!!!, \t–\n, dst..)

Variabel FIRSTROW, menentukan baris daridata dalam file yang nantinya akan di-copy sebagai baris pertama, nilainyatergantung pada file data. Dalam file excel(sampledata.xls) maupun file teks hasilkonversi (sampledata.txt), baris pertamamenunjukkan judul kolom dan yang dianggapsebagai data adalah baris kedua maka nilaivariabel FIRSTROW sama dengan 2.

Variabel ROWTERMINATOR, menentukan pemisahantar baris data. Batas akhir dari barisdata dalam file sampledata.txt adalahadanya baris data yang baru (newline). Dalampernyataan SQL, lihat tabel di atas, simbolkarakter newline ditulis \n.

Jika pada saat kamu mengeksekusi pernyataandi atas, baik dalam aplikasi eksekutor SQL(misalnya SQL Query Analyzer milik SQLServer 2000) atau dalam aplikasi yangdibuat melalui bahasa pemrograman visual

Page 6: Memasukkan Data dari File Teks/Excel ke Database By rumono

(misalnya Borland Delphi), muncul pesan‘Bulk Insert: Unexpected end-of-file (EOF) encountered indata file‘ artinya bagian akhir dari file databanyak mengandung baris-baris kosong, lihatgambar di bawah

Jika pada setiap baris dalam file dataterdapat kolom kosong, lihat gambar dibawah, maka nilai yang dimasukkan dalamfield/kolom terakhir database ada karakteryang tidak dikenal, biasanya kotak.

Kamu bisa menghapusnya langsung dalam fileteks.. Untuk baris, tekantombol keyboard Del sampaikursorkeyboard berada tepat di bawah baristerakhir. Sedang untuk kolom, tekantombol keyboard Del sampai

Page 7: Memasukkan Data dari File Teks/Excel ke Database By rumono

kursorkeyboard berada tepat di samping kolomterakhir dari setiap baris.. Tapi jikadatanya mempunyai banyak baris, cara initentu saja tidak efisien, bisa-bisa malahmenghapus datanya.. Selain cara itu kamubisa mengeditnya melalui file sumbernya,file excel (sampledata.xls). . ikutilangkahnya seperti gambar di bawah ini

Lakukan hal yang sama pada kolom terakhir,setelah itu konversi lagi file exceltersebut menjadi file teks seperti langkah-langkah di atas..

2. Memasukkan data dari file Excel denganpernyataan INSERT INTO

Syntax pernyataan SQL untuk memasukkan datadari file Excel bisa menggunakan pernyataanINSERT INTO, perhatikan gambar di bawah ini

Page 8: Memasukkan Data dari File Teks/Excel ke Database By rumono

Pernyataan INSERT INTO fungsinya jelasuntuk memasukkan data ke tabel database.Metode OPENROWSET untuk mengaksesdata remote dari data source OLE DB,berikut syntax lengkapnyaOPENROWSET ( 'provider_name', { 'datasource' ; 'user_id' ; 'password' | 'provider_string' }, { [ catalog. ] [ schema. ] object | 'query' } )

Variabel provider_name, menunjukan namaprovider OLE DB yang dikenaldalam registry komputer. Beberapa provideryang biasa dikenal untuk SQL Server 2000 :

- SQLOLEDB, provider Microsoft OLE DB untukSQL Server- MSDASQL, provider OLE DB untuk ODBC SQLServer- Microsoft.Jet.OLEDB.4.0, providerMicrosoft OLE DB yang umum digunakan untukproduk-produk microsoft

Variabel yang kedua kamu bisa memilihkombinasi datasource ; user_id ;password atau provider_stringtergantungpada sumber datanya.Variabel datasource bisa diisi dengan nama

Page 9: Memasukkan Data dari File Teks/Excel ke Database By rumono

database, user_id danpassword fungsinyajelas user dan password-nya. Dalam contohseperti gambar di atas, saya memilihvariabelprovider_string karena sumberdatanya adalah file Excel.

Sedang varibel yang ketiga kamu juga bisamemilih kombinasi [ catalog. ] [ schema. ]object atau pernyataanQuery. Contohpenulisan kombinasi [ catalog. ][ schema. ] object, seperti syntax di bawahiniNorthwind.dbo.Customers

Karena sumber datanya dari file makavariabel ketiga lebih cocok dengan Query..Kamu bisa membatasi data dalam sheet fileExcel dengan menyertakan nama kolom setelahnama sheet. Penulisan Query di bawah inihanya akan memasukkan data dari kolom Asampai kolom I dan hanya sampai pada bariske-3'SELECT * FROM [Sheet1$A1:I3]'

Artinya kolom Phone dan Fax tidakdimasukkan dalam database dan hanyadua record yang di-copy kedatabase.

Jika pada saat kamu mengeksekusi pernyataandi atas, muncul pesan ‘Cannot insert the valueNULL into column ‘CustomerID’, table‘Northwind.dbo.Customers’; column does not allow nulls.INSERT fails‘ artinya bagian akhir dari filedata banyak mengandung baris-baris kosong,

Page 10: Memasukkan Data dari File Teks/Excel ke Database By rumono

untuk memastikannya kamu bisa melihat isifilenya terlebih dahulu dengan pernyataanberikut

Kamu bisa mengatasinya dengan mengedit filesumbernya, file Excel (sampledata.xls). .ikuti langkahnya seperti gambar di bawahini

Atau dengan mengubah pernyataan SQL-nya menjadi

Page 11: Memasukkan Data dari File Teks/Excel ke Database By rumono

INSERT INTO Northwind.dbo.[Customers]SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=F:\Private\project for blog\sampledata.xls','SELECT * FROM [Sheet1$A1:K4]')

Kedua Syntax pernyataan SQL di atas (BULKINSERT dan INSERT INTO) bisa di-kode-kandalam bahasa pemrograman Borland Delphi,download Copy Data Source Codever.1.1 kemudian ekstrak di komputer kamudan buka project Copy.dpr.. Dalam sourcecode tersebut saya menggunakan beberapakomponen yang merupakan komponen tambahan,TPDJButton dan TCheckDBGrid. Jika kamubelum punya komponen tersebutdownload, TPDJButtonComponent dan TCheckDBGridComponent kemudian instal dalam programDelphi kamu.. perhatikan kodepada event OnShow dari form fmCopyFileprocedure TfmCopyFile.FormShow(Sender: TObject);var sConn: String;begin sConn:= 'Provider=SQLOLEDB.1;'+ 'Integrated Security=SSPI;'+ 'Persist Security Info=False;'+ 'Initial Catalog=Northwind;'+ 'Data Source=SIS03S'; adocCopyFile.ConnectionString:= sConn; adocCopyFile.Connected:= True; if adocCopyFile.Connected then qCustomers.Open;end;

Sebelum menjalankannya edit isivariabel sConn, terutama pada karakter DataSource=SIS03S dengan namaserver database kamu

Page 12: Memasukkan Data dari File Teks/Excel ke Database By rumono

(saya menggunakan serverdatabase bernama SIS03S).