Arsip

Archive for the ‘Database’ Category

Implementasi Fungsi LIMIT di Database

30 Agustus 2012 4 komentar

Kali ini saya akan berbagi cara menggunakan LIMIT di berbagai database seperti MySQL, PostgreSQL dan SQL Server. Mungkin untuk yang sering membuat web sering digunakan untuk paging data cuma kalau saya lebih berfungsi untuk melakukan paging transfer data karena kalo data yang akan di transfer ada banyak maka butuh banyak memory untuk load datanya sehingga harus menggunakan cara LIMIT ini.

Ya biar tidak terlalu banyak cakap berikut ini syntax yang digunakan

Data Awal

SELECT * FROM data_produk ORDER BY id_prod

Syntax yang dipakai di database

MySQL

SELECT * FROM data_produk ORDER BY id_prod LIMIT 10,5

PostgreSQL

SELECT * FROM data_produk ORDER BY id_prod LIMIT 5 OFFSET 10

SQL Server

SELECT TOP 5 * FROM data_produk WHERE id_prod NOT IN (SELECT TOP 10 id_prod FROM data_produk) ORDER BY id_prod

Hasil yang akan dikeluarkan

yang hanya secuil tutorialnya…semoga bermanfaat…terima kasih…he… 🙂

Iklan

Install pgAgent (PostgreSQL Job Scheduler)


Cara melakukan install pgAgent di Windows atau Linux :
1. Persiapkan syntax pgAgent.
Syntax pgAgent yang terbaru bisa dicek di pgAgent. Jika sudah didownload buka extractnya dan buka file pgagent.sql di notepad atau lainnya dan copy isinya.
2. Jika sudah masuk ke pgAdmin Query dan paste code sql diatas dan jalankan querynya.

3. Setelah dieksekusi akan terlihat job icon di pgAdmin.

Karena job scheduler di pgAdmin masih belum berjalan cara yang digunakan

Untuk Windows :

1. Registrasi service di windows. Masukkan syntax berikut di command prompt.

C:\Program Files\PostgreSQL\8.2\bin\pgAgent INSTALL pgAgent -u postgres -p secret hostaddr=127.0.0.1 dbname=newdb user=postgres password=secret

ket : tulisan kalimat INSTALL berupa huruf besar semua.

2. Jika sudah menambahkan service di windows maka masuk ke service windows (Start -> Control Panel -> Administrative Tools -> Services). Cari yang bertuliskan PostgreSQL Scheduling Agent -> pgAgent dan klik kanan pilih Start.

Untuk Linux :

— Tunggu dulu ya 🙂 — karena pgAgent masih tidak jalan di Linux sementara pakai crontab dulu…

Selamat Mencoba dan Terima Kasih…

Encrypt dan Decrypt Data SQL Server

22 Februari 2012 2 komentar

Kadangkala kita memerlukan enkripsi data untuk proses penyembunyian password di dalam database, fungsi ini diperlukan karena bisa jadi kita tidak menginginkan seseorang membaca dari tabel kita dan menyalahgunakan password tersebut.

Ada banyak sekali metode encrypt data, tapi inti dari metode-metode tersebut dikatakan bagus jika :

  • Hasilnya sulit ditebak, bisa jadi dengan password yang sama dan keyword yang sama dalam waktu yang berbeda akan menghasilkan nilai yang berbeda, maka metode ini sulit sekali untuk dibongkar.
  • Proses encrypt / decrypt cepat, seringkali suatu encrypt yang sulit dibongkar memerlukan waktu saat melakukan encrypt, proses ini sebenarnya tidak terlalu berpengaruh jika pengakses tersebut tidak begitu banyak tapi menggangu jika pengakses banyak.

Untuk melakukan encrypt / decrypt dalam perintah Transact SQL, SQL Server telah menyediakan beberapa fungsi internal yang dapat kita gunakan, fungsi itu relatif cepat, mudah digunakan dan yang terpenting sulit dibongkar karena selalu menghasilkan nilai yang berubah disesuaikan dengan key yang dimasukkan.

Syntax untuk melakukan proses Encrypt dan Decrypt di database SQL Server. Baca selanjutnya…

Send Email di SQL Server Express

28 Desember 2011 1 komentar

Kemarin habis meeting dikantor dan ada tugas baru dimana ada data yang harus dikirim lewat email. Sedangkan datanya harus dikirimkan berkala jika terjadi masalah dicabang. Akhirnya browsing2 dan ketemu di website MS SQL Tips.  Cara untuk melakukan kirim email melalui SQL Server Express dengan data hasil proses Stored Procedure.

Nah tanpa banyak cerita seperti ini caranya membuatnya…
1. Buat File SendEmail.vb dengan isi syntax seperti dibawah ini.

Imports System.Net
Imports System.Net.Mail

Public Class SQLCLREmail
  <Microsoft.SqlServer.Server.SqlProcedure()> _
  Public Shared Sub SendEmail(ByVal recipients As String, ByVal CC as String, ByVal BCC as String, ByVal subject As String, ByVal from As String, _
    ByVal body As String, ByVal strAttachments as String, ByVal strSMTPServer as String, ByVal strSMTPServerPort as String, _
    ByVal strSMTPServerUser as String, ByVal strSMTPServerPwd as String)

    Using MailMsg As New MailMessage()
      MailMsg.From = New MailAddress(from)
      MailMsg.Subject = subject
      MailMsg.Body = body
      MailMsg.IsBodyHtml = True

      If Not recipients.Equals(String.Empty) Then
        Dim strRecip As String
        Dim strTo() As String = recipients.Split(";")

        For Each strRecip In strTo
          MailMsg.To.Add(New MailAddress(strRecip))
        Next
      End If

      If Not CC.Equals(String.Empty) Then
        Dim strCCRecip As String
        Dim strCCTo() As String = CC.Split(";")

        For Each strCCRecip In strCCTo
          MailMsg.CC.Add(New MailAddress(strCCRecip))
        Next
      End If

      If Not BCC.Equals(String.Empty) Then
        Dim strBCCRecip As String
        Dim strBCCTo() As String = BCC.Split(";")

        For Each strBCCRecip In strBCCTo
          MailMsg.BCC.Add(New MailAddress(strBCCRecip))
        Next
      End If

      If Not strAttachments.Equals(String.Empty) Then
        Dim strFile As String
        Dim strAttach() As String = strAttachments.Split(";")

        For Each strFile In strAttach
          MailMsg.Attachments.Add(New Net.Mail.Attachment(strFile.Trim()))
        Next
      End If

      If Not strSMTPServer.Equals(String.Empty) Then
        Dim smtp As New System.Net.Mail.SmtpClient
        With smtp
          If Not strSMTPServerUser.Equals(String.Empty) Then
            .UseDefaultCredentials = False
            .Credentials = New System.Net.NetworkCredential(strSMTPServerUser, strSMTPServerPwd)
          End If
          .Host = strSMTPServer
          .Port = strSMTPServerPort
          .Send(MailMsg)
        End With
      Else
        Dim smtp As New System.Net.Mail.SmtpClient
        With smtp
          .Host = "localhost"
          .Port = 25
          .Send(MailMsg)
        End With
      End If
    End Using
  End Sub
End Class

Baca selanjutnya…

SELECT from another Server Database

6 Oktober 2011 3 komentar

Cuma mau share syntax untuk melakukan SELECT database pada server yang berbeda pada SQL Server…

SELECT *
FROM OPENDATASOURCE('SQLOLEDB','Data Source=ServerName;User ID=MyUID;Password=MyPass').Northwind.dbo.Categories

Ganti ServerName dengan nama server atau IP dari server itu, MyUID dengan user yang ada di server, MyPass dengan password dari user server tadi…sedangkan Northwind merupakan nama database dan Categories merupakan nama table database…

OPENDATASOURCE ( provider_name, init_string )

Provides ad hoc connection information as part of a four-part object name without using a linked server name.

SELECT *
FROM OPENDATASOURCE('SQLNCLI',
    'Data Source=London\Payroll;Integrated Security=SSPI')
    .AdventureWorks2008R2.HumanResources.Employee
SELECT * 
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
    'Data Source=C:\DataFolder\Documents\TestExcel.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ;

Saya pakai syntax ini untuk proses ambil data dari server cabang jadi lebih praktis daripada kita crawling data dari cabang lalu kita masukkan datanya ke server pusat…

Silahkan Mencoba…Terima Kasih…

Error Attach Database di File Log

15 Juli 2011 1 komentar

Masalah yang sering muncul ketika attach database pada komputer yang rusak atau ketika file .ldf hilang yang hanya ada file .mdf saja. Kejadian ini saya alami ketika komputer cabang tidak bisa masuk kedalam Windows karena Windowsnya rusak ketika masuk Windows langsung restart sendiri. Daripada pusing2 cari problem solving akhirnya pakai komputer backup cabang dan melakukan attach database tapi keluar kendala seperti dibawah.

Error Attach Database

Error Attach DatabaseInfo Error Attach Database

Error Cek Database

Error Cek Database

Baca selanjutnya…

Stored Procedure dengan Temp Table di Fast Report

5 April 2011 3 komentar

Iseng2 nyoba buat report pake Fast Report karena banyak fitur bagus yang memang sedang saya cari. Saking senangnya coba buat report ketemu error sewaktu buat Data Source untuk koneksi ke server dan eksekusi Stored Procedure.

Saya cek lagi di Stored Procedure lagi

ALTER PROCEDURE [dbo].[prRepKunj]
  -- Add the parameters for the stored procedure here
  @pUnit nchar(2), @pTgl1 nchar(10), @pTgl2 nchar(10), @pPE nchar(4)=''
AS
BEGIN
  DECLARE @tPE nvarchar(254), @tTmp nvarchar(254), @tSQL nvarchar(1000)
  -- SET NOCOUNT ON added to prevent extra result sets from
  -- interfering with SELECT statements.
  --SET NOCOUNT ON;

  CREATE TABLE #tmpKunj(fDtg datetime default null, fSls datetime default null, fIDV nchar(10), fIDR nchar(10),
  fNm nvarchar(35), fAlmt nvarchar(254), fJns nvarchar(254), fLks nchar(1), fLksAlmt nvarchar(254),
  fProd nvarchar(100), fPmkn nchar(1), fTkrUang numeric default 0, fTkrUnd numeric default 0,
  fKet nvarchar(1000))

  ...

END

Baca selanjutnya…