Kenapa menggunakan Stored procedure untuk mengakses query?Jawabannya adalah : Lebih fleksibel jika ada perubahan-perubahan pada kombinasi SQL, memiliki waktu proses lebih cepat dibanding jika kita menggunakan AdoQuery karena Stored Procedure dijalankan pada sisi back end database bukan di frond endnya aplikasi yang kita buat. Waktu Proses yang lama ini akan terasa jika SQL yang jalankan lumayan rumit dan data lumayan banyak.
Disini akan diberikan contoh sederhana bagaimana mengakses Query melalui stored procedure Microsoft SQL Server dari borland delphi. Langkah pertama akan dibuat suatu stored procedure bernama stp_area. Memasukkan Code stored procedure ini dapat dilakukan melalui Enterprise Manager atau dieksekusi melalui query analyzer. Stored procedure ini berfungsi menambahkan data ke tabel
dbArea. Tabel dbarea Area sendiri mempunyai 4 field yaitu : KodeArea yang bertipe Varchar(5), NamaArea yang bertipe
Varchar(50), @Nonaktif yang bertipe bit, dan @UserID yang bertipe varchar(20)
------------------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[stp_Area]
@KodeArea Varchar(5),
@NamaArea Varchar(50),
@Nonaktif bit,
@UserID varchar(20)
AS
begin tran
SET NOCOUNT ON
insert into dbArea (KodeArea, NamaArea,nonaktif, UserID, DateCreated, DateModified)
values (@KodeArea, @NamaArea, @nonaktif, @UserID, GetDate(), null)
if @@error <> 0 goto Gagal
SET NOCOUNT OFF
commit tran
return
Gagal:
rollback tran
raiserror('Proses Input Data Gagal',16,1)
return
GO
------------------------------------------------------------------------------------
Selanjutnya disisi borland delphinya, dibuat project baru dan ambil component ADOStoredProc set property 'connectionstring' nya sesuai dengan database yang digunakan dan Property 'procedurename' diisi dengan nama stored procedure yang telah dibuat yaitu stp_Area. dan 2 buah Tedit untuk mengisi 'kode area' yang dinamai kodearea dan untuk mengisi 'nama area' dinamai namaarea dan satu buah TCheckbox untuk mengisi status 'Non Aktif' ang dinamai NonAktif dan sebuah TButton yang berisi kode dibawah ini :
procedure TForm1.Button1Click(Sender: TObject);
var
mymessage : array [0..255] of char;
begin
With ADOStoredProc1 do
begin
Parameters[1].Value := kodearea.Text;
Parameters[2].Value := NamaArea.Text;
Parameters[3].Value := NonAktif.Checked;
Parameters[4].Value := 'iis';
try
ExecProc;
except
on E: Exception do
begin
Application.MessageBox(StrPCopy(mymessage,E.Message),'Warning',MB_OK or MB_ICONWARNING);
end;
end;
end;
end;