Mas fendi, karakteristik tabel di sql server harus memiliki satu field yang
unik, atau kombinasi dari semua fieldnya tidak boleh ada yang sama persis,
karena kalau tidak demikian, akan ketemu masalah seperti yang dihadapi fendi
sekarang. Yang anda maksudkan ganda di semua field kan ? Itulah yang sql
server tidak bisa menghapusnya, sampai anda menambah satu field unik,
katakanlah autonumber (integer dengan identity true). Apakah ditempat anda
programmer dan DBA di bedakan ? tidak bisakah kerja sama dengan DBA untuk
memperbaiki struktur tabel ?

Dari saya belum ada usulan lain, kalau mau lewat vba, script yang saya beri
contoh di salin ke object command atau langsung dari object connection, tapi
jadi lebih ribet dan panjang. Mudah2an pakar di sini ada yang bisa kasih
solusi, biar kita juga tahu cara tsb.

 

On error resume next itu bukan berarti kalau ketemu error bablas saja. Bener
bablasnya, artinya program jalan terus, tetapi restriksi dari logika
programnya tetap tidak bisa ditembus seenaknya. Kalau sql server tidak bisa
delete dia tidak akan mau ngedelete, dan akan memberitahukan kepada aplikasi
berupa error message. Tetapi jika error handling di set resume next, error
message tersebut tidak akan ditampilkan. Jadi yang di bablas-kan hanya pesan
error, sedangkan prosesnya tetap diblok/dibatalkan.

 

Aksan Kurdin

 

From: [email protected] [mailto:[EMAIL PROTECTED]
On Behalf Of [EMAIL PROTECTED]
Sent: Monday, July 30, 2007 1:27 PM
To: [email protected]
Subject: RE: [Programmer-VB] nanya tentang VB code utk hapus data ganda

 


Bro, 

Kalo betulinnya lewat program VB aja bisa gak, jadi gak usah oprek2 server 
soalnya pengunci databasenya sudah dibuka, dan server dikunci, dan tidak
boleh di otak atik sama IT 

saya sudah pakai adodc data source, dia bisa menampilkan, dia juga bisa
menghapus data, tapi khusus utk data yg ganda gak bisa 

Kira2 ada masukan lain... 


Regard & Thanks

Fendy 




"M. Aksan Kurdin" <[EMAIL PROTECTED]> 
Sent by: [email protected] 

30/07/07 10:56 AM 


Please respond to
[email protected]


To

<[email protected]> 


cc

        

Subject

RE: [Programmer-VB] nanya tentang VB code utk hapus data ganda

 

                




Ada field yang bisa dijadikan kunci ? 

Misalkan data anda adalah data customer, mungkin ada satu field bernama kode
kustomer yang bisa dibuatkan kuncinya, tetapi  ternyata sudah ada exist
beberapa kode customer yang sama, bahkan ternyata kode yang sama dipakai
oleh customer berbeda. 

Anda bisa periksa dari sql servernya dulu menggunakan TSQL di SQL Query
Analyzer untuk memperoleh data yang sama. Misalkan patokan kita adalah kode
kustomer yang sama: 

  

SELECT KodeCustomer, SUM(1) Jumlah 

FROM Customers 

GROUP BY KodeCustomer 

HAVING SUM(1) <> 1 

  

Script di atas akan memberikan anda list kode kustomer dengan kode yang sama
itu terbit berapa kali, contoh datanya: 

A00001 | 2 

A00002 | 3 

A00005 | 2 

  

Untuk memeriksa isi detail dari tabel yang berkode sama, tinggal joinkan
saja lagi dengan tabel aslinya: 

  

SELECT C.* 

FROM Customers C 

INNER JOIN ( 

    SELECT KodeCustomer, SUM(1) Jumlah 

    FROM Customers 

    GROUP BY KodeCustomer 

    HAVING SUM(1) <> 1 

) G ON C.KodeCustomer = G.KodeCustomer 

  

Dari list ini, mungkin harus ada campur tangan manual untuk menentukan
customer mana yang akan memakai kode ganda tersebut, dan customer mana yang
akan dibuang, atau akan diberi kode baru. 

  

Nah, dari sini, jika sudah beres kode yang bermasalah, anda bisa menggunakan
cara temporary tabel untuk menampung data dari tabel asli yang dalam kondisi
DISTINCT (ganda di eliminir): 

  

SELECT DISTINCT * INTO #Customer FROM Customer 

  

Lalu kosongkan tabel Customer: 

  

DELETE Customer 

  

Lalu masukkan kembali tabel sementara tadi ke tabel aslinya: 

  

INSERT Customer 

SELECT * 

FROM #Customer 

  

Optional, anda bisa buang temp. table dari memory: 

DROP TABLE #Customer. 

  

Dari contoh sederhana ini, anda bisa sesuaikan field2 yang diinginkan,
termasuk kemungkinan key merupakan komposit dari dua field (mis.
KodeCustomer + KodeArea). 

  

Selamat bekerja. 

  

Aksan Kurdin 

Ps. Jangan lupa backup dulu.. 

  

  

From: [email protected] [mailto:[EMAIL PROTECTED]
On Behalf Of [EMAIL PROTECTED]
Sent: Monday, July 30, 2007 9:03 AM
To: [email protected]
Subject: [Programmer-VB] nanya tentang VB code utk hapus data ganda 

  


Bro, 

Saya punya problem neeh dalam menghapus data yang ada diSQL Server dengan
menggunakan ODBC 
karena data diserver ada banyak yang double datanya maka saya mau menghapus
dulu data yang ada di databasenya semua 
setelah itu saya akan input lagi datanya 
tetapi saya ada problem saat menghapus datanya 
padahal saya sudah masukkan code "ON ERROR RESUME NEXT" 
tapi tetap saja keluar syntak errornya, dan datanya tidak terhapus 
apakah kawan-kawan ada yg punya cara atau masukan yang lain untuk menghapus
data tsb, tapi jangan cara manual ya, lumayan ada sekitar seribu data 


Regard & Thanks

Fendy 

 

 

Kirim email ke