Friday, October 8, 2010

Telepon Gratis

Kawan -kawan mau telepon gratis??
mungkin hampir tak mungkin yaa...

tp bagi yang cumi alias cuma miscall aja juga bisa, karena layanan ini bisa di manfaatkan melalui PC anda.. anda akan tersambung selama 20 detik..

yah lumayan dah tuk bilang .. "Woi telpon gw balik!!" hahahha...
tp klo loe mau lebih lama, ya kudu bayar.. loe harus bayar akun lw, ya seperti saldo gtu deh...

cobain deh link yg gw kasih..
evaphone

layanan ini tuh dari PC ke Mobile Phone mana jaa, apa pun operator provider anda, tp ada syarat nya nih gan.. operator nya kudu berkelas.. haha... klo operator ecek2 kaya nya blum bisa.. pasti loe ngerti dah yg gw maksud.. karena gw gak mau menjelek-jelekan operator lainnya, walau emank jelek.. hahaha...

biasa nya sih yang gak bisa tuh operator yg masih hijau, alias cupu...

udah cek it out aja deh...

Drop Constraint pada SQL Server

Nah kawan - kawan smua, klo sblum nya gw pernah nge post soal Drop primary key sekarang gw mau nge post drop saudara nya primary key yaitu Constraint

bagi yang blum denger Constraint, ya brarti loe perlu lebih dalem lagi belajar database nya, klo soal penjelasan nya pasti loe smua bisa mudah deh dapetin nya apalagi ada mbah google.. klo gw sih mau kasih yg kira-kira sulit di cari orang tp smua butuh.. hehe...

langsung aje kali yaa.. sperti biasa loe copy paste aja dah.. nih :

CREATE PROCEDURE [dbo].[DropUniqueConstraint]
@tableName NVarchar(255),
@columnName NVarchar(255)
AS
DECLARE @IdxNames CURSOR

SET @IdxNames = CURSOR FOR
select sysindexes.name from sysindexkeys,syscolumns,sysindexes
WHERE
syscolumns.[id] = OBJECT_ID(N'[dbo].['+@tableName+N']')
AND sysindexkeys.[id] = OBJECT_ID(N'[dbo].['+@tableName+N']')
AND sysindexes.[id] = OBJECT_ID(N'[dbo].['+@tableName+N']')
AND syscolumns.name=@columnName
AND sysindexkeys.colid=syscolumns.colid
AND sysindexes.[indid]=sysindexkeys.[indid]
AND (
SELECT COUNT(*) FROM sysindexkeys AS si2
WHERE si2.id=sysindexes.id
AND si2.indid=sysindexes.indid
)=1

OPEN @IdxNames
DECLARE @IdxName Nvarchar(255)
FETCH NEXT FROM @IdxNames INTO @IdxName

WHILE @@FETCH_STATUS = 0 BEGIN
DECLARE @dropSql Nvarchar(4000)

SET @dropSql=
N'ALTER TABLE ['+@tableName+ N']
DROP CONSTRAINT ['+@IdxName+ N']'
EXEC(@dropSql)

FETCH NEXT FROM @IdxNames
INTO @IdxName
END
CLOSE @IdxNames
DEALLOCATE @IdxNames


nah.. loe jalanin dah tuh..
abis itu klo mau eksekusi nya loe tinggal ketik :

EXEC [dbo].[DropUniqueConstraint]
@tableName='TargetTable',
@columnName='TargetColumn'

selesai deh..

jangan lupa kasih koment yaa...
dah mampir masa comment aja pelit sih :)
gak perlu panjang2, biar gw lebih semangat tuk ngepost yg lebih bermanfaat lagi..

Drop Primary key pada SQL Server

Terkadang loe smua pasti agak susah yaa.. tuk hapus primary key mungkin maksud gw disini tuh klo loe smua pake query agak ribet crita nya..

Biasa nya standar coding yang loe pake khan
Alter table [nama table]
Drop [nama key]

nah mnurut gw sih ini agak lumayan memusingkan, coz loe harus tau key nya apa? sebab jika loe pake primary key dalam suatu table didalam MS.SQL Server maka dengan sendiri nya server akan membentuk atau membuat sejenis index key contoh nih PK___key__Hjdk23UK.

nah untuk smua table beda pula index yg didapet,

disini gw cuma mo berbagi aja. gw punya store procedure, loe tinggal copy aja coding nya trus loe jalanin deh..

CREATE PROCEDURE [dbo].[DropPrimaryKey]
@tableName Varchar(255)
AS

DECLARE @pkName Varchar(255)

SET @pkName= (

SELECT [name] FROM sysobjects
WHERE [xtype] = 'PK' AND [parent_obj] = OBJECT_ID(N'[dbo].[' + @tableName + ']')

)
DECLARE @dropSql varchar(4000)

SET @dropSql=
'ALTER TABLE [dbo].['+@tableName+']
DROP CONSTRAINT ['+@PkName+']'
EXEC(@dropSql)
GO


Nah jika loe mau jalanin ketik aja :
EXEC [dbo].[DropPrimaryKey] @TableName='namatable'


Mudah khan... ya nama nya juga usaha..

tolong beri komentar ya klo mampir... :)

Membandingkan 2 store prosedur pada my sql

Gw lagi Searching dan browsing eh nemu yang bagus nih.. gw pikir smakin banyak nyang naro pasti nyang butuh juga cepet nemu nya dah.. simak aje crite di bawah nih..

Pernah coding secara massive di pemrograman internal DBMS makae stored procedures/functions?
Bekerja dalam tim?
Punya beberapa database yang dipakae dalam setiap fase development? misal :

* db_ini_dev : dikonsumsi oleh para coder-coder cakep kita
* db_ini_test : dikonsumsi oleh para tester-tester cantik kita
* db_ini : dikonsumsi ama client-client baik kita

Atau pernah bekerja dalam tim yang tersebar di beberapa tempat yang terpisah, dimana masing-masing punya local database untuk kegiatan coding masing-masing?

* db_ini_dev_bandung : dikonsumsi oleh para coder-coder cakep kita di Buah Batu Regency
* db_ini_dev_solok : dikonsumsi oleh para coder-coder tampan kita di Perumnas Koto Baru Solok
* db_ini_test : di-host di sebuah server public dengan spesifikasi medium di sebuah gedung di Kuningan, Jakarta
* db_ini : di host di server public yang sama dengan db_ini_test

Ketika small-release udah digulirkan, mau-ngga-mau setiap perubahan struktur database (tabel/routines/trigger/view) harus di-broadcast ke database-database kita tersebut.

Puyeng meng-analisis diferensial?

Silakan coba trik gw untuk membandingkan stored procedures antara dua database di bawah ini. (Owya, gw pakae MySQL 5 -- dan trik ini hanya bisa jalan di MySQL 5 ke atas)

Ini script gw untuk "mendeteksi" apakah ada SP yang beda definisi (atau SP baru) dari dua database yang identik. Silakan donlot di sini :

http://qvezst.googlepages.com/xp_routines_compare.zip

Pertama-tama yang harus dilakukan adalah dengan meng-execute ntu script ke database mysql. Yupe! Database mysql (ini merupakan database yang 'pasti ada' di setiap engine MySQL Server -- yang isinya adalah informasi user, informasi schema, de-el-el). Klo sukses ke-attach, ntar di database mysql loe bakal nambah 2 stored procedure yang namanya xp_execute dan xp_routines_compare.

xp_execute adalah routine yg gw bikin untuk memudahkan pemanggilan PREPARED STATEMENTS di dalam stored routines, daripada tiap kali harus nulis PREPARE ... EXECUTE ... DEALLOCATE -- mending tinggal panggil call xp_execute("select blablabla");

dan xp_routines_compare, adalah inti dari artikel ini -- memiliki dua parameter input yaitu SOURCE DATABASE NAME dan TARGET DATABASE NAME. Untuk meng-compare dua database, loe masukin aja nama-nama database yg mo loe bandingin tersebut dalam format string (alias loe kasi kutip satu ato kutip dua). Kalo bingung, coba loe liat sampel pemanggilan ntu procedure di bawah ini :

mysql>call mysql.xp_routines_compare('ekomit_dbrisma','ekomit_dbrisma_test');
+------------------------------------+--------------------------------------+
| routine_yg_berbeda | letak_perbedaan |
+------------------------------------+--------------------------------------+
| sf_psb_get_nama_sekolah | routines baru di db : ekomit_dbrisma |
| sf_report_get_count | routines baru di db : ekomit_dbrisma |
| sf_statistik_getcount | routines baru di db : ekomit_dbrisma |
| sp_disdik_kategori_laporan | routines baru di db : ekomit_dbrisma |
| sp_disdik_lihat_laporan | routines baru di db : ekomit_dbrisma |
| sp_psb_cluster_daftar_sekolah_save | PARAMETER BODY |
| sp_psb_sekolah_luar_cluster_combo | BODY |
| sp_psb_sekolah_prs_view | PARAMETER BODY |
| sp_psb_sekolah_prs_view1record | routines baru di db : ekomit_dbrisma |
| sp_stats_agama | routines baru di db : ekomit_dbrisma |
| sp_thnajaran_kini_dan_sebelumnya | routines baru di db : ekomit_dbrisma |
| xf_properdate | BODY |
+------------------------------------+--------------------------------------+
12 rows in set


Yak! akan terlihat di mana letak perbedaan routines di dalam dua database tersebut yang akan terdeteksi beda dari ntu routines ada di PARAMETER, di BODY, atau beda di RETURN (khusus stored functions). Dan klo ada routine baru, akan langsung di-kasih-tau ntu routines baru ada di database mana..

Gimana-gimana? Keren kan?

Oh iya, -- mencoba obyektif -- gw juga pengen beritaukan LIMITASI dalam pengimplementasian xp_routines_compare() gw ini, yaitu :

* xp ini hanya bisa di call ama user yang punya GRANT PRIVILEGES sekelas root -- atau minim punya privileges SELECT ke database mysql.
* ngga bs nge-compare dari 2 databases yang BERBEDA ENGINE -- karena database yang beda engine artinya beda database mysql nya.. Ntar lah kapan-kapan gw coba bikin versi cross-engine-nya (manfaatin fitur mysql replikasi, tentunya)