Modifikasi Data dengan Prepared Statement

Modifikasi Data dengan Prepared Statement

Modifikasi Data dengan Prepared Statement

Modifikasi Data dengan Prepared Statement
Modifikasi Data dengan Prepared Statement

Prepared statement dapat juga kita gunakan untuk melakukan modifikasi terhadap data, INSERT, UPDATE dan DELETE Statement.

Sekarang marilah kita lihat contoh penggunaan INSERT dengan prepared statement:

Private Sub CmdAddBuild()
Dim strSQL As String
Dim oParam As ADODB.Parameter

‘Insert Statement for Tabel Barang
strSQL = “INSERT INTO Barang(”
strSQL = strSQL & “KodeBarang, ”
strSQL = strSQL & “NamaBarang, ”
strSQL = strSQL & “Harga ”
strSQL = strSQL & “) VALUES (?, ?, ?)”

With mcmdAdd
.CommandText = strSQL
.Prepared = True
.CommandType = adCmdText

Set oParam = .CreateParameter(“KodeBarang”, adInteger, adParamInput, 4)
.Parameters.Append oParam

Set oParam = .CreateParameter(“NamaBarang”, adChar, adParamInput, 100)
.Parameters.Append oParam

Set oParam = .CreateParameter(“Harga”, adCurrency, adParamInput, 8)
.Parameters.Append oParam

Set .ActiveConnection = goLogin.Connection
End With
End Sub

‘—————- END OF CODE ———————————–
Didalam procedure CmdAddBuild() diatas dapat kita lihat statement INSERT dengan beberapa tanda tanya (?). Kita harus membuat satu buah tanda tanya untuk setiap parameter yang akan kita masukkan. Untuk setiap parameter, kita harus menspesifikasikan nama, datatype, ukuran data dan jenis input/output parameter tersebut.

Sedangkan untuk melakukan UPDATE data, kita akan membuat procedure yang hampir sama seperti statment INSERT:

Private Sub CmdUpdateBuild()
Dim strSQL As String
Dim oParam As ADODB.Parameter

‘Update Statement for Tabel Barang
strSQL = “UPDATE Barang SET ”
strSQL = strSQL & “NamaBarang = ?, ”
strSQL = strSQL & “Harga = ? ”
strSQL = strSQL & “WHERE KodeBarang = ?”

With mcmdUpdate
.CommandText = strSQL
.Prepared = True
.CommandType = adCmdText

Set oParam = .CreateParameter(“NamaBarang”, adChar, adParamInput, 100)
.Parameters.Append oParam

Set oParam = .CreateParameter(“Harga”, adCurrency, adParamInput, 8)
.Parameters.Append oParam

Set oParam = .CreateParameter(“KodeBarang”, adInteger, adParamInput, 4)
.Parameters.Append oParam

Set .ActiveConnection = goLogin.Connection
End With
End Sub

‘—————- END OF CODE ———————————–

Untuk menyimpan data menggunakan command object-command object diatas, maka kita harus mengisi setiap nilai parameter yang terdapat didalam procedure diatas, seperti:

Private Function FormAdd() As Boolean
Dim lngRecords As Long

On Error GoTo Error_EH

If mcmdAdd.CommandText = “” Then
Call CmdAddBuild
End IF

With mcmdAdd
.Parameters(“KodeBarang”) = 12345
.Parameters(“NamaBarang”) = “Buku Komputer”
.Parameters(“Harga”) = 125000

.Execute lngRecords
If lngRecords = 0 Then
Msgbox “Error adding record!”
FormAdd = False
Else
FormAdd = True
End If
End With

Exit Function

Error_EH:
FormAdd = False
MsgBox goLogin.ErrorHandler
Exit Function
End Function

‘—————- END OF CODE ———————————–

Setelah mengisi setiap parameter yang terdapat didalam command object dengan nilai yang diinginkan, selanjutnya kita dapat menggunakan metode EXECUTE untuk mengeksekusi statement SQL (INSERT) yang kita inginkan. Kirimkan variabel lngRecords sebagai referensi apakah data yang kita masukkan berhasil ditambah (>1) atau tidak (=0).

Jangan lupa untuk menutup command object yang telah kita gunakan:

Private Sub Form_Unload(Cancel As Integer)
oRS.Close

Set mcmdFind = Nothing
Set mcmdAdd = Nothing
Set mcmdUpdate = Nothing
End Sub
‘—————- END OF CODE ———————————–

Command Objects dan Stored Procedures

Ada 2 macam metode yang digunakan untuk memanggil stored procedures pada ADO. Kita dapat menggunakan syntax pemanggilan yang terdapat didalam ODBC, atau dengan mempergunakan ‘command object’. Dibawah ini adalah syntax untuk membangun sebuah Recordset langsung dari syntax pemanggilan ODBC.

Private Sub cmdRS_Click()
Dim oRS As New ADODB.Recordset
Dim strSQL As String

‘Build SQL for loading list box
strSQL = “EXEC procViewBarang”

oRS.Open strSQL, goLogin.Connection, _
adOpenForwardOnly, _
adLockReadOnly, _
adCmdStoredProc

Do Until oRS.EOF
With lstBarang
.AddItem oRS!Kode_Barang & “, ” & oRS!Nama_Barang
.ItemData(.NewIndex) = oRS!ID_Barang
End With

oRS.MoveNext
Loop

oRS.Close
End Sub

‘—————- END OF CODE ———————————–
Sedangkan metode ke-dua adalah dengan menggunakan Command Object:

Private Sub cmdCommand_Click()
Dim oCmd As New ADODB.Command
Dim oRS As New ADODB.Recordset

‘Build Command Object
With oCmd
Set .ActiveConnection = goLogin.Connection
.CommandType = adCmdStoredProc
.CommandText = “procViewBarang”
.Parameters.Append .CreateParameter(“Kode_Barang”, adChar, adParamInput, 10)
.Parameters(“Kode_Barang”).Value = txtKodeBarang.Text
End With

Set oRS = oCmd.Execute

Do Until oRS.EOF
With lstBarang
.AddItem oRS!Kode_Barang & “, ” & oRS!Nama_Barang
.ItemData(.NewIndex) = oRS!ID_Barang
End With

oRS.MoveNext
Loop

oRS.Close
End Sub

‘—————- END OF CODE ———————————–
SUMMARY

Pada chapter ini kita telah mempelajari bagaimana cara menggunakan Command Object yang dikombinasikan dengan Stored Procedures. Kita belajar bagaimana caranya mem-passing parameter kedalam sebuah command object dan juga bagaimana membuat sebuah ‘temporary’ stored procedures.

Baca Juga :