The Power of Knowladge

explore - brainstorm - share
See also: Other Geeks@INDC

News

where is the news

Community Web Site

Connection String (connect to Excel File)

Sambil mengingat ngingat jaman dulu ketika memulai pemrogram dengan mengkases database. ternyata hal yang paling penting dan sering dilupakan adalah ketika kita akan melakukan koneksi kesebuah data source (database server). Ada banyak connection provider yang harus kita hapalkan Dengan cara penulisan yang spesifik dalam satu parameter yang orang kenal dengan CONNECTION STRING.

Connection StringSekarang ini orang lebih mudah melakukan koneksi kepada sebuah data source karena hampir sebagian besar Development tools menyediakan fasilitas untuk koneksi ke database yang kita inginkan, namun pekerjaan ini akan menjadi susah ketika kita di paksa untuk melakukannya dengan scripting seperti di VB Script, atau Java Script. sehingga kita perlu mengingat cara penulisan connection providernya, security model yang di gunakan dan mekanisme koneksinya

Berikut saya coba tuliskan kumpulan connection string yang biasanya paling sering di cari berdasarkan connection providernya mudah-mudahan bisa membantu kita dalam mengakses data source dari berbagai jenis database

Connection String Untuk MS Excel 2007

Pada bagian pertama ini akan di jelaskan beberapa metoda penulisan connection string untuk mengakses data di Microsoft Excel 2007, dengan menggunakan ACE OLE DB Connection. metoda ini lebih cepat dari pada menggunakan office component library

A. XLSX File  

XLSX file adalah nama extention file untuk MS Excel 2007, untuk mengkases MS Excel 2007 file bisa menggunakan  connection string berikut ini :

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";

dengan nilai HDR = Yes jika menghendaki kolom pertama sebagai nama field dari data yang kita akses di file excel tersebut

 

B. Mengakses data Excel File dalam format Text

Kita bisa memperlakukan semua data dalam XLSX file tadi sebagai data dalam format text dan mengabaikan format dari setiap cell yang ada, hal ini dilakukan jika dalam file excel yang kita miliki memiliki type data yang berbeda beda dalam setiap cell nya, berikut contoh connection stringnya

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1";

Parameter IMEX = 1 menyatakan bahwa semua data yang diambil akan di anggap sebagai Text

 

 C. Mengakses XLsb File

MS Excel 2007 memiliki file dengan format dan extention baru *.XLSB, yang menyimpan data dalam Office Open XML binary format. data disimpan dalam format binary sehingga berbeda dengan format XLSX, format XLSB ini  bukan merupakan text sehingga tidak bisa diview dan dari sisi performace jauh lebih baik dari XLSX. berikut connection stringnya

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myBinaryExcel2007file.xlsb;Extended Properties="Excel 12.0;HDR=YES";

 

D. Mengakses XLSM File

Format extention XMSL merupakan office open XML format dengan Macro Enable, berbeda dengan connection string yang adalah pada statement Properties="Excel 12.0 Macro...

Berikut contoh penulisan connection string untuk mengakses XLSM file

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsm;Extended Properties="Excel 12.0 Macro;HDR=YES";

 

Demikian mudah mudahan tulisan contoh connection string ini bisa memerikan wawasan tambahan untuk teman teman yang memerlukan akses ke berbagai macam database. masih banyak lagi tentang contoh dan format penulisan connection string, yang insya alloh akan saya lanjutkan dan lengkapi lagi (KN-SQLG)

 

Share this post: | | | |
Change data capture, fitur SQL 2008 yang sangat berguna...

Kemarin buka buka lagi catatan waktu ikut TPrep Project Untuk  SQL Server 2008 di Redmond Tahun yang lalu, ini saya lakukan karena memang Hari Kamis kemarin (22/10/2009) berkesempatan untuk membawakan session microsoft di Acara Metro Data Solution Day di Hotel Shangrila Jakarta. Kebetulan materi yang akan di bawakan berkaitan dengan fitur - fitur SQL yang berhubungan dengan pengolahan data dalam ukuran besan sehingga judul besar dari session yang saya adalah SQL Data Warehouse Penta Byte Data Solutions.  

Saya coba share sedikit apa yang saya presentasikan di blog saya ini, khususnya fitur-fitur yang berhungan dengan pengelolaan data yang memiliki ukuran sangat besar dengan memanfaatkan fitur fitur terbaru dari MS SQL 2008.

Change data capture adalah topik pertama yang saya sampaikan disini, dimana fitur baru di SQL Server 2008 ini memudahkan kita untuk melakukan capturing terhadap perubahan yang terjadi bada sebuah table dalam sebuah database. Dengan CDC ini memungkin semua operasi yang dilakukan pada sebuah table bisa kita tracking historynya dari operasi yang dilakukan, dari mulai data pertama kali di masukkan, perubahan terhadap data di setiap kolom hingga data terakhir yang ada pada sebuah table

untuk membuat CDC ini, kita bisa lakukan di SQL Server 2008 dengan terlebih dahulu mengaktifkan fitur CDC pada sebuah database dengan perintah berikut ini

EXEC sys.sp_cdc_enable_db;

GO

Perintah ini akan mengaktifkan fitur CDC di database yang kita akan buatkan Change Data Capture-nya, ini bisa dilihat dari adanya file tambahan pada database kita di bagian system table seperti

  • cdc.captured_columns
  • cdc.change_tables
  • cdc.ddl_history
  • cdc.index_columns
  • cdc.lsn_time_mapping

Dengan CDC ini memungkinkan kita untuk dapat melakukan pencatatan terhadap perubahan data yang terjadi tanpa harus membuat table auditlog sendiri maupun membuat mekanisme trigger untuk mencatat sejarah perubahan data baik oleh aplikasi maupun oleh DBA secara back end

Berikut contoh scipt untuk fitur change data capture di SQL Server 2008, silahkan mencoba

--set current database context
USE [AdventureWorks]


GO


--append new user column to the HumanResources.Employee Table
ALTER TABLE humanresources.employee
ADD [User] 
NVARCHAR(50)

GO

--disable any triggers
DISABLE Trigger ALL ON HumanResources.employee

GO

--enable CDC for AW
EXEC 
Sp_cdc_enable_db

GO

--enable CDC for HumanResources.Employee
EXEC 
Sp_cdc_enable_table
  humanresources ,
  employee ,
  NULL ,
  1 ,
  dbo

GO

--create sample UDF to return change data
CREATE FUNCTION [dbo].
[Udf_employee]
               (@start_time 
DATETIME,
                @end_time   
DATETIME)
RETURNS @Employee TABLE(employeeid       
INT,
                        nationalidnumber 
NVARCHAR(15),
                        contactid        
INT,
                        managerid        
INT,
                        title            
NVARCHAR(50),
                        birthdate        
DATETIME,
                        maritalstatus    
NCHAR(1),
                        gender           
NCHAR(1),
                        hiredate         
DATETIME,
                        salariedflag     
[FLAG],
                        vacationhours    
SMALLINT,
                        sickleavehours   
SMALLINT,
                        currentflag      
[FLAG],
                        rowguid          
UNIQUEIDENTIFIER,
                        [user]           
NVARCHAR(50),
                        cdc_operation    
VARCHAR(1))
AS
  BEGIN
    
--declare local variables to hold LSNs
    DECLARE  @from_lsn 
BINARY(10),
             @to_lsn   
BINARY(10)
    
    
--Map the time interval to a change data capture query range.
    IF (@start_time IS NULL)
      BEGIN
        SELECT @from_lsn = sys.
Fn_cdc_get_min_lsn('HumanResources_Employee')
      END
    ELSE
      BEGIN
        SELECT @from_lsn = sys.
Fn_cdc_map_time_to_lsn('smallest greater than or equal',@start_time)
      END
    
    IF (@end_time IS NULL)
      BEGIN
        SELECT @to_lsn = sys.
Fn_cdc_get_max_lsn()
      END
    ELSE
      BEGIN
        SELECT @to_lsn = sys.
Fn_cdc_map_time_to_lsn('largest less than or equal',@end_time)
      END
    
    
--if same then exit
    IF (@from_lsn = sys.
Fn_cdc_increment_lsn(@to_lsn))
      BEGIN
        RETURN
      END
    
    
-- Query for change data
    INSERT INTO @Employee
    SELECT employeeid,
           nationalidnumber,
           contactid,
           managerid,
           title,
           birthdate,
           maritalstatus,
           gender,
           hiredate,
           salariedflag,
           vacationhours,
           sickleavehours,
           currentflag,
           rowguid,
           [user],
           CASE __$operation
             WHEN 1
             THEN 'D'
             WHEN 2
             THEN 'I'
             WHEN 4
             THEN 'U'
             ELSE NULL
           END AS cdc_operation
    FROM   cdc.
Fn_cdc_get_net_changes_humanresources_employee(@from_lsn,@to_lsn,'all')
    
    RETURN
  END

GO

--sample DML statement
UPDATE humanresources.employee
SET    title = 'Marketing Director',
       [User] = system_user
WHERE  employeeid = 13

--get the net change of the sample DML including the User
SELECT *
FROM   [dbo].[Udf_employee](NULL,NULL)

Share this post: | | | |
TSQL Enhancement in SQL Server 2008

Meski sepertinya sudah banyak yang tahu bahwa produk terbaru dari microsoft yaitu SQL Server 2008 memiliki kehandalan dalam menangani data dalam skala enterprise, namun tidak ada salahnya kita sedikit perhatikan perubahan mendasar dalam hal Syntax TSQL yang terbaru di SQL Server 2008 ini.

Beberapa fitur yang sangat membantu developer dalam hal kemudahan melakukan scripting di database diantaranya adalah adanya type data baru dan perintah SQL baru yang banyak membantu database developer khususnya bagi mereka yang memiliki latar belakang dari programming

Berikut beberapa Enhancement dari TSQL di SQL Server 2008

A. TSQL "Delighters"

terdapat kemampuan untuk melakukan perintah berikut dalam script TSQL di SQL 2008

DECLARE @t int = 5; -- ini tidak bisa dilakukan di versi sebelumnya

INSERT dbo.myT
 VALUES (‘WA’, @t), (‘FL’, @t+1); --ini tidak bisa dilakukan di versi sebelumnya


UPDATE dbo.myT
 SET instances+=1; --ini tidak bisa dilakukan di versi sebelumnya

B. Table Value Parameter

Memungkinkan kita untuk mengirimkan para meter data berupa table, yang bisa mengurangi rountrip dalam proses pengiriman data dari aplikasi ke server, karena bisa dilakukan dalam 1 kali pemanggilan SP

create proc ins_data (@t table (a int)) as … -- Declarasi SP seperti ini tidak bisa dilakukan pada versi sebelumnya

Berikut contoh implementasi Table value paramenter

USE AdventureWorks
GO

-- Declarasikan Table Value type EmployeeTable
CREATE TYPE EmployeeTableType AS TABLE
(EmpID INT, EmpName nvarchar(100), EmpEmail nvarchar(100))

USE AdventureWorks
GO

-- Buat Procedure yang menggunakan Parameter dengan type EmployeeTableType
CREATE PROCEDURE NewEmployee(@EmployeeDetails EmployeeTableType READONLY)
As
BEGIN
  INSERT INTO dbo.Employee
  SELECT * FROM @EmployeeDetails
END

-- Simpan data di table value type

use AdventureWorks
Go
DECLARE @NewEmployees EmployeeTableType

INSERT INTO @NewEmployees
VALUES(1,'John McLean','JohnMcLean@contoso.com')

INSERT INTO @NewEmployees
VALUES(2,'Bob Smith','BobSmith@contoso.com')

INSERT INTO @NewEmployees
VALUES(3,'Ted Connery','TedConnery@contoso.com')

--- Panggil SP

EXECUTE NewEmployee @NewEmployees

C. MERGE Statement

Merge di gunakan untuk menangani proses UPSERT (UPDATE or INSERT) terhadap suatu table, perintah ini menyederhanakan perintah IF Exist yang selama ini di gunakan untuk melakukan syncronisasi data. skenario umumnya jika data sudah ada maka akan di update diantaranya

  • OLTP insert-or-update (UPSERT)
    • -> UPDATE if row exists, INSERT otherwise 
  • Synchronize two tables
    • -> INSERT/UPDATE/DELETE rows in the target table based on differences with source
  • Tracking history of slowly changing dimensions
    • -> UPDATE existing rows as not current, INSERT new data
  • Tracking inventory
    • -> INSERT new stock, UPDATE existing stock, DELETE when amount is zero 

berikut Syntax MERGE Statement

[ WITH <common_table_expression> [ ,…n ] ]
MERGE
 [ TOP (expression) [ PERCENT ] ]
 [ INTO ] <target_table> [ [ AS ] table_alias  ] [ WITH( <merge_hint> ) ]
 USING <table_source>
 ON <search_condition>
 <merge_clause> [ …n ]
 [ OUTPUT <dml_select_list> ]
 [ OPTION ( <query_hint> [ ,…n ] ) ]
;
<merge_clause>:=
{
   WHEN MATCHED [ AND <search_condition> ]
  THEN { UPDATE SET <set_clause> | DELETE }
 | WHEN [ TARGET ] NOT MATCHED [ AND <search_condition> ]
  THEN INSERT [ (column_list) ]
   { VALUES (values_list) | DEFAULT VALUES }
 | WHEN SOURCE NOT MATCHED [ AND <search_condition> ]
  THEN { UPDATE SET <set_clause> | DELETE }
}

Contoh penggunaan MERGE untuk sinkronisasi data

CREATE TABLE Original (o_pk INT PRIMARY KEY, o_name VARCHAR(10), o_number INT);
CREATE TABLE Replica (r_pk INT PRIMARY KEY, r_name VARCHAR(10), r_number INT);

CREATE PROCEDURE usp_SyncReplica  AS
 MERGE Replica
  USING Original
  ON o_pk = r_pk
  WHEN MATCHED
   AND (o_name != r_name OR o_number != r_number) THEN
   -- Row exists but data differs
   UPDATE SET r_name = o_name, r_number = o_number
  WHEN SOURCE NOT MATCHED THEN
   -- Row exists in Replica but not Original
   DELETE
   WHEN NOT MATCHED THEN
   -- Row exists in Original but not Replica    INSERT VALUES (o_pk, o_name, o_number)
  OUTPUT $action, inserted.r_pk, deleted.r_pk;

Selamat Mencoba.

(KN-MvpSQL)
 

Share this post: | | | |
Posted: Oct 10 2009, 11:56 AM by kiki | with no comments
Filed under:
Database Compression in SQL Server 2008

ukuran data khususnya untuk keperluan archive sangat utama, apalagi kalau ternyata data tersebut sudah tidak di gunakan sebagai data utama transaksi melainkan hanya untuk keperluan data history. SQL Server 2008 menyediakan kapasitas untuk keperluan compresi data dengan tujuan untuk

  • Kompresi data backup, tujuannya untuk memperkecil ukuran file backup 
  • Kompresi data, untuk kompresi data ini terdapat 2 pilihan kompresi yaitu kompresi berdasarkan ROW Compression dan PAGE Compression

A. Backup Compression  

Digunakan untuk mengkompresi ukuran file backup dari sebuah database yang biasa memili permasalahan dalam hal Storage Cost, Atau Manageability Cost Seperti backup & recovery, create/rebuild indexes, Bulk Import dan Consistency Checking dari data yang ada di dalam database.

Berikut contoh untuk melakukan Backup Kompression

USE master
GO
EXEC sp_configure ‘backup compression default’,’1’;
RECONFIGURE WITH OVERRIDE;

--Without Compression
BACKUP DATABASE AdventureWorks
TO DISK=‘C:\Backups\AdventureWorksDB_nocompression.bak’
GO

--With Compression
BACKUP DATABASE AdventureWorks
TO DISK=‘C:\Backups\AdventureWorksDB_compression.bak’
WITH COMPRESSION

B. Data Compression

Digunakan untuk memperkecil ukuran data, dengan memaksimalkan cost compresi dan decompresi dengan menggunakan algoritma column prefix compression, memungkinkan ukuran data akan lebih kecil dari data sebelumnya. Kompresi data ini di bagi menjadi ROW Compression dan PAGE Compression.

Berikut Contoh Penggunaan Page Compression:

-- Create new Table

CREATE TABLE BigTable

( FirstColumn Int,

SecondColumn Int,

ThirdColumn char(8000))

GO

-- LOAD 6000 rows into table

DECLARE @i int

SELECT @i=0

WHILE (@i <6000)

BEGIN

INSERT INTO BigTable

VALUES(@i,@i+6000,REPLICATE('a',60))

SET @i=@i+1

END

-- Find the current size of uncompressed table

Exec sp_spaceused N'BigTable'

-- Estimate ROW compression

EXEC sp_estimate_data_compression_savings 'dbo','BigTable',NULL,NULL,'ROW'

-- Estimated due to PAGE compression

EXEC sp_estimate_data_compression_savings 'dbo','BigTable',NULL,NULL,'PAGE'

-- Perintah Kompresi PAGE 

ALTER TABLE [dbo].['BigTable'] REBUILD

WITH (DATA_COMPRESSION = PAGE)

 

Selamat mencoba

(KN-SQL Geeks) 

Share this post: | | | |
Alhamdulilah, I got my MVP award for the 4th time. thank to microsoft and Indonesia IT Community

 Dear Kiki Noviandi, 

Congratulations! We are pleased to present you with the 2008 Microsoft® MVP Award! The MVP Award is our way to say thank you for promoting the spirit of community and improving people’s lives and the industry’s success every day. We appreciate your extraordinary efforts in SQL technical communities during the past year. Microsoft will soon send your MVP Award gift package. It is our way to say “thank you for making a difference." You will receive an e-mail message in the next 10 business days that contains your MVP Award gift package shipping information and your tracking number 

Potong email di atas mampir di inbox email saya pada hari rabu sore tanggal 1 april 2009, saya mendapatkan email dari support@mvpaward.com, yang mengabarkan bahwa saya kembali mendapatkan MVP award untuk ke 4 (empat) kalinya dari Microsoft corp sebagai penghargaan atas aktifitas yang telah di lakukan khususnya dalam partisipasinya berkontribusi untuk komunitas IT di indonesia.

Setelah pada tahun sebelumnya saya masuk kedalam MVP Hall of Fame, yaitu bagi MVP yang telah mendapatkan penghargaan lebih dari 3 tahun berturut-turut, di tahun ini saya mendapatkannya lagi untuk ke 4 kalinya. Ini sangat berarti bagi perkembang diri saya khususnya bagi kontribusi yang akan saya terus berikan bagi komunitas IT khususnya SQL di indonesia. saya ucapkan terimakasih atas bantuan dan dukungan semua pihak khususnya komunitas SQLServer-Indo yang sudah bersedia membantu dan mendukung semua aktifitas kontribusi saya bagi perkembangan dunia IT di tanah air.

Tak lupa saya ucapkan terimakasih kepada semua kolega saya di microsoft indonesia khususnya team DPE, Risman Adnan, Narendra, Norman sasono, Welly terutama My MVP lead Li lian yang sudah memberi support terhadap semua aktifitas dan kontribusi saya bagi komunitas.Kepada teman teman group leader SQL Server Indo seperti Chaerul Amri / MCA (MVP SQL), Hendra Eka (MVP-SQL), Rachmat Haryanto, Hendrik, Deni Kusdeni, Kasim Wirahma (MVP-SQL) dan David Pakpahan yang merupakan teman teman seperjuangan dalam komunitas SQL Server Indo ini. berkat dorongan dan semangat mereka, saya selalu terpacu untuk terus berkontribusi dan mensosialisasikan komunitas SQL server di indonesia.

Beberapa catatan penting dan evaluasi khususnya bagi perkembangan komunitas SQL server di indonesia menjadi concern saya pada tahun ini, berapa program dan rencana berdasarkan masukan dari kawan komunitas menjadi pemacu semangat saya untuk terus berbagi dan bersama sama mengembangkan dunia IT yang kita cintai.

kegiatan komunitas seperti SQL Server Monthly meeting akan terus di galakkan guna menjadi media komunikasi offline antara member komunitas SQLServer-indo. termasuk format acara monthly meeting yang mestinya bisa lebih memberikan kesempatan pada semua anggota untuk ikut berpartisipasi didalamnya. Kegiatan Hand on Lab bagi komuniti akan kita coba gagas kembali setelah sebelumnya kita berhasil mengadakan BI Code camp yang mendapatkan sambutan cukup baik dari komunitas SQL Server Indo pada tahun 2006.

Posisi Komunitas SQL Server Indonesia sebagai official chapter dari SQLPass (sqlpass.org) semakin strategis setelah kemarin berhasil mengadakan event dengan di sponsori oleh SQLPass sebagai institusi komunitas SQL server sedunia, peran serta kita di kancah komunitas SQL Server skala world wide semakin dimungkinkan apalagi jika kita bisa hadir di setiap event mereka seperti SQLPass Summit yang tahun ini diadakan di Seattle US bulan November nanti

Akhir kata semua dukukan dan kerjasama akan saya butuhkan untuk bisa mengembangkan komunitas IT di tanah air agar misi mencerdaskan kehidupan bangsa bisa menjadi kenyataan.

Jakarta, 4 april 2009

Kiki Rizki Noviandi, SQL Server 
http://tinyurl.com/mvp-profile

 

Share this post: | | | |
Posted: Apr 04 2009, 05:40 AM by kiki | with 7 comment(s)
Filed under: ,
Wrap up, Essential SQL Server 2008 Community event

Dear SQLServer-Indo Member, 

Last monday (March, 16 2008), Our SQL Server community (SQLServer-indo) hosted  Essential SQL Server 2008 Community event. this event was attending by 45 attendee from SQL Server member and IT pro that very interested on SQL Server 2008 new technology update.

Thank to our SQL community leader :

Hendra Eka (SQL Server MVP),
Rachmat Haryanto,
David Pakpahan,
Deni Kusdeni and
Hendrik

for spending their time to prepare and present their session for this event, hopefully we can endorse other member to more active in sqlserver-indo community event.

I want also to say thank to Indonesia DPE team (narendra and welly) and also for SQLPass for sponsoring this event and give good opportunity for our community to get more benefit from joining IT community.

and for the last, thank to all sqlserver indo member for  supporting our SQL Indonesia Community. hopefully we can share and get more good benefit for joining SQLServer-indo community.

Here is some documentation from this event
http://cid-65cab324bf3c89cf.skydrive.live.com/browse.aspx/Public/sql%20community%20event?uc=12&isFromRichUpload=1

 

Kiki Rizki Noviandi, MVP SQL Server
SQLServer-Indo Community Leader

Official website : http://SQLServer-indo.org | mailing list : sqlserver-indo@yahoogroups.com | Facebook Group : SQLServer-Indo

Share this post: | | | |
Essential SQL Server 2008 Community Event

Dear Friends,

I am very excited to invite you to Essential SQL Server 2008 Community Event. This time, this event is sponsored by SQLPass (professional association for SQL Server) & Microsoft Indonesia. In this community event, we will cover the latest SQL Server 2008 technologies.

What you will accomplish:
You will learn directly from SQL Community Guru who will show you great demo with clear explanation about behind the scene of SQL Server 2008 new feature.

What   :             Essential SQL Server 2008 Community Event
Where :             Auditorium, Microsoft Indonesia
                          18th Floor, Tower 2, Jakarta Stock Exchange Building
                          Jln. Jenderal Sudirman Kav. 52-53
                          Jakarta 12190
When   :
                 Monday, March 16, 2009                                 

09:00 am – 17:00 pm

 
Who should attend?
This event is designed for all Database Professional.
 
The Agenda 
Optimizing Report with Reporting Service 2008
           by Narenda Wicaksono - Microsoft Indonesia

Making Query Performance Rock-Solid Reliable Break
           by Kiki Rizki Noviandi - MVP SQL Server (Intimedia Web Venture)
New Feature  - Spatial in SQL 2008
           by Hendrik SQL- Community Leader (BI Specialist, Ebiz) & 
                Rachmat Haryanto - Community Leader (Asuransi Tugu Pratama)

Analysis services 2008 Query & Performance Improvements
           by Hendra Eka, MVP SQL Server (Ebiz)

Leveraging Report Programmability in Your Application
          
by David Pakpahan - Community Leader (Petrosea)
Improving Integration with SQL Server 2008 Integration Services
          by Deni Kusdeni - Community Leader (Intimedia)   

If you are interested in attending, please register soon. ONLY 50 seats will be available.
As benefit to join this event, you can get free member of SQLPASS and also received SQLPASS newsletter and free access to SQLPass.org web site For registration: send email to technetday@hotmail.com. Please be sure to register early.
 
See you soon,
SQLServer-Indo ( SQL User Group Indonesia)

Official Website :http://sqlserver-indo.org
mailing list : sqlserver-indo@yahoogroups.com

Share this post: | | | |
My Facebook Profile Badge

Semua orang sekarang sudah punya facebook, beberapa bahkan setiap hari mengupdate statusnya untuk di ketahui dan di ikuti oleh teman temannya. Facebook menjadi fenomena semenjak kehadirannya di tahun 2007-an, dan berhasil menggeser frienster.com yang sempat menjadi tempat favorit untuk nongkrong melakukan social networking di dunia maya.

salah satu kelebihan facebook adalah user friendly dan banyaknya aplikasi yang bisa di pasang sebagai add on dari website ini, dari mulai aplikasi sederhana seperti pooling, atau permainan gigit gigitan teman (seperti ketuk ular) yang bisa menular sesama teman sampai membuat game yang cukup komplek. itu semua dibangun dengan konsep social networking atau jejaring sosial.

dampak dari demam facebook ini adalah terhubungnya tali tali pertemanan yang sudah lama putus, dari mulai teman kerja lama. teman kuliah bahkan sampai teman semasa kecil. belum lagi fasilitas untuk bisa membuat group yang menyebabkan orang yang memiliki kesamaan hobi dapat saling berinteraksi disini.

beberapa group yang saya ikuti di facebook.com yang berhubungan dengan dunia IT adalah :

MVP Sout east asia ,  SQL Server Indo ,  Geeks  , .net developer , SQL Server 2005  , SQL Server 2008 , dan wss-id

 

selain menambah pertemanan dengan facebook ini kita bisa menimba ilmu dan menghubungkan tali silaturhami yang lama telah hilang. terakhir saya juga sudah membuat profile badge sehingga teman teman bisa melihat status maupun informasi facebook saya dari profile badge ini.

Kiki Rizki's Facebook profile

 

 

Share this post: | | | |
New Certification untuk SQL Server 2008

Dengan telah beredarnya SQL Server 2008, maka microsoft segera merelease sertifikasi baru untuk para praktisi IT yang ingin mendalami dan mendapatkan pengakuan atas teknologi yang di kuasainya, adapun sertifikasi baru yang di keluarkan bersamaan dengan di luncurkannya SQL Server 2008 adalah : 

Three SQL Server 2008 MCITP

  1. Database Administrator 2008
  2. Database Developer 2008
  3. Business Intelligence Developer 2008

Three SQL Server 2008 MCTS

  1. Implementation and Maintenance
  2. Database Development
  3. Business Intelligence Development and Maintenance

Ayo siap siap ikutan Training dan Exam lagi

Share this post: | | | |
Date Time Enhancement in SQL Server 2008

Permasalahan date time menjadi masalah serius dalam pengelolaan database, sering kali kita mengalami masalah yang semestinya tidak terjadi karena adanya anomali data akibat proses operasi tipe data date time ini. permasalahan mulai timbul ketika kita memiliki kebutuhan seperti :

  • Memisahkan date dengan Time, mengingat secara standar tipe data selalu datetime
  • Range tanggal yang lebih luas
  • Bisa sesuai dengan kebutuhan Time Zone
  • Persisi sampai nano second
  • dsb

akhir nya di SQL 2008 dilakukan inprovement dengan menyediakan 4 tipe data datetime yang baru yaitu

1. Date

  • Date Only
  • Range dari 0001-01-01 sampai dengan 9999-01-01 menggunakan kalender gregorian

2. Time (n)

  • Time Only
  • optional persisi sampai 100 nanoseconds

3. DateTimeOffset(n)

  • UTC Datetime dapat mengadaptasi kebutuhan TimeZone
  • optional persisi sampai 100 nanoseconds
4. DateTime2
  • Ukuran Date Range yang cukup besar
  • optional persisi sampai 100 nanoseconds

Berikut contoh dan perbedaan data datetime yang di tunjukkan dalam Script TSQL di SQL Server 2008

CREATE TABLE t1 (c1 DATE, c2 TIME(3),
    c3 DATETIME2(7) NOT NULL DEFAULT GETDATE(),
    c4 DATETIMEOFFSET CHECK
 (c4<CAST(GETDATE() AS DATETIMEOFFSET(0)))
);

INSERT INTO t1 VALUES ('0001-01-01', '23:59:59',
    '0001-12-21 23:59:59.1234567',
    '0001-10-21 23:59:59.1234567 -07:00');

INSERT INTO t1 VALUES ('9999-12-31', '23:59:59',
    '9999-12-31 23:59:59.1234567',
    '1111-10-21 23:59:59.1234567 -07:00');

SELECT c4,
    DATEPART(TZOFFSET, c4),
    DATEPART(ISO_WEEK, c4),
    DATEPART(MICROSECOND, c4) FROM t1;

copy paste TSQl Script di atas untuk bisa melihat perbedaannya, jangan lupa jalankan di SQL Server 2008

Share this post: | | | |
Membuat Parameter Table di SQL
Pasti kita sering mengalami kebutuhan untuk dapat melakukan passing data dalam jumlah banyak kedalam database kita, untuk menangani masalah ini biasanya kita melakukan pengiriman data menggunakan tipe data XML atau menggunakan Cursor di sisi SQL Server.
 
nah di SQL server 2008 kini memungkinkan kita untuk bisa melakukan passing parameter data ke Store procedure dengan menggunakan Table Valued Parameter (TVP), TVP ini memudahkan kita untuk mengirimkan parameter data sesuai dengan struktur data yang kita inginkan dalam jumlah yang tidak terbatas. sehingga akan memungkinkan melakukan pembuatan dan pemanggilan store procedure dengan cara seperti di bawah ini
 
create proc ins_data (@t table (a int)) as
(
--- Create Logic Script di sini
)
 
TVP (table value parameter) memiliki kelebihan sebagai berikut :
  • Memungkinkan membuat tipe data untuk parameter SP berupa tipe data Tabel
  • Bisa menjadi parameter input pada SP dan Function di SQL Server
  • Scope dari TVP adalah di dalam SP/Function Body sehingga tidak dikenali di luar SP/Function lainnya di luar scope tersebut
  • Lebih cepat dalam pemrosesan data dalam ukuran besar
  • Memiliki karakteristik seperti Bulk Copy/ BCP dalam server

Berikut cara mengimplementasikan TVP di SQL Server 2008

1. Create TVP di dalam database yang kita inginkan

USE AdventureWorks
GO
CREATE TYPE EmployeeTableType AS TABLE
(EmpID INT, EmpName nvarchar(100), EmpEmail nvarchar(100))

2. Create Store procedure / Function yang menggunakan TVP sebagai parameter

USE AdventureWorks
GO
CREATE PROCEDURE NewEmployee(@EmployeeDetails EmployeeTableType READONLY)
As
BEGIN
  INSERT INTO dbo.Employee
  SELECT * FROM @EmployeeDetails
END

3.Untuk memanggil TVP dilakukan dengan cara mendeclarasikan variable bertipe TVP

use AdventureWorks
Go
DECLARE @NewEmployees EmployeeTableType

4. Isi data ke variabel TVP

INSERT INTO @NewEmployees
VALUES(1,'John McLean','JohnMcLean@contoso.com')

INSERT INTO @NewEmployees
VALUES(2,'Bob Smith','BobSmith@contoso.com')

INSERT INTO @NewEmployees
VALUES(3,'Ted Connery','TedConnery@contoso.com')

5. Panggil SP dan passing parameter TVP

EXECUTE NewEmployee @NewEmployees

Demikian sedikit pengenalan tentang new Enhancement di SQL 2008, selamat mencoba

 
 
Share this post: | | | |
Merge - New TSQL Statement di SQL Server 2008

Saya yakin kita semua pernah memerlukan syncronisasi antara 2 table di SQL, secara umum perintah yang dilakukankan adalah UPSERT (update or Insert), biasanya untuk melakukan ini di perlukan beberapa perintah dan kondisi yang menyebabkan perngaruh yang cukup signifikan dalam logika pemrograman dan tentu saja proses compilasi sintax di SQL server. seperti pada Script perintah di bawah ini  

CREATE TABLE MyTable(pk INT PRIMARY KEY, name VARCHAR(10), number INT);

CREATE PROCEDURE Legacy_Upsert_1
 @pk INT, @name VARCHAR(10), @number INT
AS
 UPDATE MyTable SET name = @name, number = @number WHERE pk = @pk
 -- Row is updated even if all the values are correct

 IF (@@ROWCOUNT = 0)
  INSERT MyTable VALUES(@pk, @name, @number)
  -- If row did not exist, a second statement execution is required

CREATE PROCEDURE Legacy_Upsert_2
 @pk INT, @name VARCHAR(10), @number INT
AS
 -- Updating only if any column needs to be changed requires an extra statement
 IF EXISTS (SELECT 1 FROM MyTable WHERE pk = @pk)
  UPDATE MyTable
   SET name = @name, number = @number
   WHERE pk = @pk AND (name <> @name OR number <> @number)
 ELSE
  INSERT MyTable VALUES(@pk, @name, @number)

kita bisa lihat berapa perintah TSQL perlu kita tuliskan di SQL server untuk menghasilkan data yang jika data sudah ada di MyTable maka akan di update dan jika data belum ada maka akan di insert ke MyTable.

Pada SQL Server 2008 banyak sekali enhancement dan penambahan fungsi yang sangat membantu kita dalam melakukan operasi database, salah satunya adalah adanya penambahan perintah baru yaitu Merge Statement yang berfungsi untuk menggabungkan database dari 2 buah table.

Alasan utama kenapa kita akan sangat terbantu dengan intruksi merge ini diantaranya :

  • Pada proses OLTP sangat membantu dalam proses UP-SERT (Update or Insert), Biasanya di gunakan dalam proses merging (penggabungan data) jika row data ada di table target maka akan di update jika belum ada maka akan di insert
  • Pada proses melakukan syncronisasi data dari 2 table, Proses Insert/Update/Delete pada table target berdasarkan perbedaan data dari Table Source
  • Melakukan Tracking history dari SCD (slowly Changing Dimension pada Data Warehouse), Update Jika data di target berbeda dengan source, insert jika data adalah data baru
  • Tracking inventory, seperti pada proses inventory operasi Insert Stock baru,  update existing stock, Delete jika Amount = 0

Dengan menggunakan Merge Statement ini kita bisa menggabungkan perintah DML (insert/update/delete) dengan hanya menggunakan 1 statement yaitu MERGE, operasinya sendiri merupakan hasil Join antara Table Source dengan table Target.

Berikut Syntax perintah Merge:

[ WITH <common_table_expression> [ ,…n ] ]
MERGE
 [ TOP (expression) [ PERCENT ] ]
 [ INTO ] <target_table> [ [ AS ] table_alias  ] [ WITH( <merge_hint> ) ]
 USING <table_source>
 ON <search_condition>
 <merge_clause> [ …n ]
 [ OUTPUT <dml_select_list> ]
 [ OPTION ( <query_hint> [ ,…n ] ) ]
;
<merge_clause>:=
{
   WHEN MATCHED [ AND <search_condition> ]
  THEN { UPDATE SET <set_clause> | DELETE }
 | WHEN [ TARGET ] NOT MATCHED [ AND <search_condition> ]
  THEN INSERT [ (column_list) ]
   { VALUES (values_list) | DEFAULT VALUES }
 | WHEN SOURCE NOT MATCHED [ AND <search_condition> ]
  THEN { UPDATE SET <set_clause> | DELETE }
}

Berikut contoh penggunaan perintah Merge

CREATE TABLE Stock (Stock VARCHAR(10) PRIMARY KEY, Qty INT CHECK (Qty > 0));
CREATE TABLE Trades (Stock VARCHAR(10) PRIMARY KEY,  Delta INT CHECK (Delta <> 0));

INSERT Stock VALUES('MSFT', 10), ('BOEING', 5);
INSERT Trades VALUES('MSFT', 5), ('BOEING', -5), ('GE', 3);

MERGE Stock S
 USING Trades T
 ON S.Stock = T.Stock
 WHEN MATCHED AND (Qty + Delta = 0) THEN
  DELETE -- delete stock if entirely sold
 WHEN MATCHED THEN
   -- delete takes precedence on update
  UPDATE SET Qty += Delta
 WHEN NOT MATCHED THEN
  INSERT VALUES (Stock, Delta);
 -- BOEING is deleted, GE inserted, MSFT updated

Dari perintah diatas kita bisa lihat operasi Merge pada table Stock dan Trade, dimana jika nilai trades menyebabkan nilai di stock habis maka data di stock di hapus, jika di stock ada maka data akan di update dengan menambahkan nilai Qty dengan nilai Delta sedangkan jika belum ada maka akan di insert data stock baru.

Klausa penting dalam perintah Merge

  • WHEN MATCH, Jika row data ada di Table Source dan Table Target ini sama juga dengan operasi "Source Inner Join Target". Maka Valid Actionnya adalah UPDATE atau DELETE
  • WHEN TARGET NOT MATCH, jika row data di table source tidak ada di table target ini sama juga dengan operasi "Source Left Outer Join Target". maka Valid Actionnya adalah INSERT
  • WHEN SOURCE NOT MATCH, jika row data di table Target tidak ada di table source ini sama juga dengan operasi "Source Right Outer Join Target". maka Valid Actionnya adalah UPDATE atau DELETE

Selamat mencoba

Share this post: | | | |
Menghadiri kuliah presidensial dari Bill Gate

Bagi saya pagi ini cukup berbeda dengan pagi biasanya, karena jam 6.30 harus sudah stand by di JCC senayan guna menghadiri kuliah presidensial yang diadakan oleh pemerintah indonesia dengan KADIN indonesia sebagai penyelengaranya. Dan kegiatan ini agak berbeda karena di buka dan di hadiri oleh Bapak Presiden Indonesia dengan menghadirkan William (Bill) H. Gate sebagai narasumbernya

Tepat pukul 6.30 saya sudah hadir di JCC pintu lobi yang ternyata sudah penuh sesak oleh para hadirin yang belum boleh masuk oleh fihak security, selang 10 menit kemudian akhirnya kita bisa masuk dan mendapatkan coffee morning sekaligus mencicipi beberapa potong kue dan susu di ruangan cendrawasih. cukup lama kita menunggu di ruangan ini sambil kongkow dengan beberapa teman dan kolega MVP akhirnya kita diperkenankan masuk ke balai sidang senayan. didalam suasana cukup penuh dengan jumlah hadirin yang mencapai 2500 orang yang terdiri dari Pengusaha, Tokoh Eksekutif dan para mentri serta mahasiswa dari perguruan tinggi yang dengan cukup sabar menanti kedatangan SBY dan Bill G.

Sekitar pukul 8.15 akhirnya SBY dan Bill G memasuki ruangan dengan tepuk tangan meriah semua penonton berdiri dan menyambut tokoh yang di tunggu-tunggu. Setelah didahului dengan pidato pembukaan dari presiden SBY maka Bill G membuka kuliar presidensialnya di depan para peserta, dengan di dahului cerita tentang bagaimana microsoft memulai kiprahanya sehingga menjadi raksasa IT sekarang, Bill Gate menceritakan tentang visi dan Dekade baru dari Teknologi Digital, sekaligus mendemokan hasil karya dari microsoft research yaitu aplikasi yang terintegrasi dengan database teleskop huble yang memungkinkan kita bisa mempelajari ruang angkasa hanya dari komputer kita

Pidato dan penjelasan Bill Gate kali ini menekankan pada trend teknologi kedepan yang terdiri atas fokus diantaranya Unified communication, Social Enginering, Business Intelligence. diakhir dengan sesi tanya jawab maka berakhir sudah kuliah kepresidenan dengan Bill Gate di JCC.

Berikut Beberapa dokumentasi dari kegiatan ini

Share this post: | | | |
Last Month Microsoft Campus, SQL Server 2008 BI Training
On March 17,2008. actually on last Month I was attending SQL Server training in Microsoft campus in redmond, after I was flying from jakarta for almost 20 hour to seattle and there was 2 track for the training, one is for SQL Infrastructure and Other is for SQL BI. and I attend SQL BI class.
 
The fist day of the training I was coming  late to the class because I just arrived at 12 o'clock on the evening, but it's ok because I was very exciting  beeing here in Microsoft campus.
 
We were visiting Microsoft Company Store and buying some stuff from that internal store, and the next day more exciting because we will be visiting XBOX development center.
 
thank you to MS Indonesia DPE (especially risman and narend) who give me opportunity to attend this training, in return I will conduct as same training in indonesia for saveral ISV and microsoft partner. the training event would be conducting on April until July. 
 
I just want to say welcome to the new Server wive 2008 (especialy to SQL Server 2008)
 
Here is some photo of me http://krnov.spaces.live.com/
Share this post: | | | |
Posted: Apr 29 2008, 07:23 PM by kiki | with 2 comment(s) |
Filed under:
Jika situs www.kembalikelaptop.com milik anda, apa yang akan anda buat? (dapatkan Hadiah 1 buah Laptop)

Kata kembali ke laptop kini menjadi trend yang sangat fenomenal, karena kata ini di populerkan oleh pelawak sekaligus presenter acara empatmata yang di tayangkan di salah satu TV swasta di Indonesia yaitu mas Tukul Arwana. Sehingga tidak jarang di keseharian kita mendengar orang menyebut kata ‘kembali ke.. lap..top’.

 

Lalu apa jadinya jika anda memiliki domain www.kembalikelaptop ini? Apa yang akan anda perbuat? Menjadikannya situs fans club mas Tukul Arwana? Jadi Situs jual beli laptop atau computer bekas? bahkan bisa saja menjadi Situs forum  tentang informasi IT? banyak sekali pilihan dan inovasi yang mungkin ada di benak anda ketika menghadapi tantangan seperti ini.

Jika kita perhatikan di Situs www.trendigital.com yang merupakan salah satu Situs di lingkungan grup bisnis Indonesia, ternyata tantangan untuk menampilkan desain dan inovasi  jika kita memiliki domain www.kembalikelaptop.com ini telah lama di sayembarakan. Terhitung sejak November 2007 pada bagian tengah situs www.trendigital.com  ini telah terpasang banner yang isinya mengajak setiap pengunjung situs ini untuk mengikuti lomba kreasi dalam mendisain situs www.kembalikelaptop.com. Dan hadiahnya tidak tanggung-tanggung 1 buah Laptop akan di berikan kepada peserta dengan desain dan inovasi yang Terbaik.

Acara ini di gelar dalam rangka relounching website www.trendigital.com yang kini telah tampil dengan lebih informatif. Dengan menyediakan fasilitas yang lebih mengajak user untuk berpartisipasi dan ikut serta menulis di situs www.trendigital.com  menunjukkan bahwa www.trendigital.com kini telah mengimplementasikan  konsep ‘Citizen Journalims’ (jurnalisme publik) yang merupakan ciri dari perkembangan perinsip Web site yang paling mutakhir yaitu WEB 2.0.

Sampai saat ini paling tidak sudah ada 15 orang peserta yang telah mengirimkan desain lomba kreasi situs www.kembalikelaptop.com, ada yang mengusung topic Website e-Mall seperti yang di submit oleh Rama Mamuaya, ada juga yang mengusung tema website khusus untuk anak2x Indonesia.Mulai dari enskopedia, games interaktif, forum antar anggotanya seperti yang sudah dikirim oleh Denny Irawan dan masih banyak karya lainnya.

Nah bagi anda yang berminat untuk ikut lomba ini caranya adalah :

1.       Daftarkan diri anda baik pribadi atau mewakili kelompok anda untuk menjadi anggota situs www.trendigital.com

2.       Masuk ke menu lomba kreasi website untuk melihat gallery lomba dan click banner Lomba kreasi website.

3.       Baca syarat dan ketentuan, jika sudah paham dan ingin mengikuti lomba pilih join

4.       Lengkapi data anda dan informasi desain yang anda buat di form upload materi lomba, adapun isian form yang harus ada isi adalah informasi informasi adalah : Nomer Identitas, Tagline, Descripsi Web Site, latar belakang dan dasar pemikiran, Maksud dan Tujuan, Keunikan dan nilai Jual, Target Audience dari situs yang akan di buat sera jenis website yang akan di buat termasuk pada kelompok jenis apa.

5.       Tekan tombol submit maka materi lomba akan dikirimkan ke meja redaksi untuk selanjutkan menunggu persetujuan penayangan dari administrator.

6.       Materi lomba yang di tayangkan di gallery akan diikut sertakan dalam babak penyelisihan yang akan di nilai oleh juri

Sesuai dengan misi Citizen journalism yang di usung, maka para pembaca www.trendigital.com dapat memberikan rekomendasi kepada juri atas kreasi yang dikirimkan dengan menekan gambar rekomendasikan ke juri yang di lambangkan dengan Tumb Up (jempol) sehingga juri dapat melihat kreasi mana yang menjadi favorit dari pada pembaca www.trendigital.com

 Dari jadwal yang dimiliki panitia, lomba ini akan di tutup pada tanggal 15 April 2008, untuk selanjutnya Juri akan menentukan 10 besar peserta yang berhak mengikuti babak penentuan. Ke 10 (sepuluh) peserta terbaik ini akan dipilih berdasarkan penilaian desain, originalitas Ide dan kreativitas yang kemudian  akan di undang untuk melakukan presentasi konsep desain www.kembalikelaptop.com di depan juri.

 Pengumuman pemenang akan di umumkan pada akhir April dan Penyerahan hadiah akan dilakukan pada acara relounching www.trendigital.com  . Pemenang atas lomba kreasi website ini berhak mendapatkan 1 buah laptop dan beberapa hadiah menarik lainnya.

Untuk itu segera daftarkan diri anda untuk mengikuti lomba kreasi website www.kembalikelaptop.com ini, kami tunggu karya dan kreatifitas anda.

Share this post: | | | |
More Posts Next page »