database operation di c++
TRANSCRIPT
Database Operation di VC++Insert, Update, Select, Delete Statements terhubung dengan MySQL
© FGroupIndonesia.com modul kelaskhusus pemprograman VC++
• Menjelaskan praktek langsung interaksiDatabase dengan VC++ Programming di Visual Studio 2010.
• .NET Frameworks v. 3,5 / 4.0 / 4.5
• Windows XP, Vista, 7, dan 8.
• MySQL bundled via XAMPP v. 3,2
Connector
• Bagian terpenting sebagai penghubung agar Visual Studio 2010 dapat berinteraksi dgnMySQL.
• Download dari http://dev.mysql.com
• 2 File tersebut:
1. mysql-for-visualstudio-1.1.4.msi
2. mysql-connector-net-6.9.7.msi
• Saat Instalasi Connector, pastikan :
▫ Visual Studio 2010 tidak sedang running.
▫ Instalasi program lain tidak dijalankanbersamaan.
▫ Lakukan instalasi satu per-satu dari no.urutfile yang disebutkan.
Konsep Database
• Untuk persiapan awal, perlu dibuat terlebih dahulusebuah Database (Root directory) dan juga sebuahTable.
• Sebuah Table dapat terdiri dari minimal satuColumn atau lebih.
• Suatu Column dapat menerapkan salah satu darijenis Data Type yg terpilih.
• Data tersimpan setiap satu Row pada Table.• Suatu Table dapat menerapkan PRIMARY KEY
sebagai memudahkan index pembacaan.
• Setiap Table pada suatu Database dapatdiciptakan dengan perintah : CREATE.
• Setiap penyimpanan data ke dalam Tablemenggunakan perintah : INSERT.
• Setiap editing data spesifik suatu Column tertentu menggunakan perintah : UPDATE.
• Setiap menghapus data pada suatu Table menggunakan perintah : DELETE.
Penamaan Database
• Penamaan Column, dan juga Table padaDatabase tidak diperbolehkan menggunakankarakter spasi.
• Boleh menggunakan karakter selain alphabetical.
• Contoh :
▫ Data Karyawan (salah)
▫ Data_Karyawan (benar)
▫ Alamat_1 (benar)
▫ Alamat 1 (salah)
Column Data Type
• Setidaknya ada beberapa Data Type yg umumdigunakan dalam pembuatan Column pertamakali.
• Angka : DOUBLE, INT, LONG, atau pun TINYINT
• Text : VARCHAR, CHAR, TEXT, BLOB
• True/False : BOOLEAN
• Tanggal : DATE, TIME
Database Name : Database_Hendro
Table Name : Table_Formulir
Column : 4 buah
Data Row : 2
ID Nama Kelamin Alamat
1 Anthon Pria Jl. Pamekar
2 Budi Pria Jl. Mawar
phpMyAdmin
• Merupakan suatu Bundle dalam XAMPP yang memudahkan pengaturan database MySQL.
• Pastikan Apache & MySQL running padaXAMPP.
• Segera buka Browser lalu ketik pada URL : http://localhost/phpmyadmin
MySQL dan Apache running pada XAMPP Control Panel
Pembuatan Database
Pertama Kali• Dalam phpMyAdmin tadi, klik pada
Database menu.
• Biarkan pilihan pada Collation sebagai pilihanDefault.
• Ketik nama yang sesuai, lalu klik CREATE.
• Untuk kelengkapan materi ini, kita gunakannama : databaseawal.
Create
• Pada bagian ini sebuah Table akan langsungdibuat (di-CREATE) dengan jumlah Column yg fixed.
• Untuk kelengkapan materi, maka Table ini kitaberi nama : tab_formulir.
• Pilih 4 sebagai Number of Column, lalu klikGO.
• Kemudian berikan 4 Column tadi dengan definisi sebagaiberikut :
• Column : id, jenis INT, Length 4, Default None, Attribute Unsigned, Index Primary, A_I (Auto Increment)
• Column : nama, jenis VARCHAR, Length 45, Default None
• Column : kelamin, jenis VARCHAR, Length 6, Default None
• Column : alamat, jenis VARCHAR, Length 150, Default As Defined -.
• Jika sudah klik GO / SAVE
Object MySqlConnection^
• Digunakan untuk menghubungkan koneksi dariC++ ke MySQL Server
• Sertakan reference pada project C++ yang terkait.
• Lengkapi using namespace pada bagian atascode C++
Test Connection
using namespaceMySql::Data::MySqlClient;
String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;
MySqlConnection^ connectDB = gcnewMySqlConnection(koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand(perintahSQL, connectDB);
try{
connectDB->Open();
}catch(Exception^ ex) {
MessageBox::Show("Some error occurred! " + ex->Message);
}
Insert Statement
• Langkah yg digunakan ialah:
▫ Membuka Object dari MySQLConnection,
▫ Menyisipkan INSERT STATEMENT kedalamnya,
▫ Menjalankan STATEMENT tersebut pada Form terkait.
using namespaceMySql::Data::MySqlClient;
String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;String^ semuaData;
MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);
try{
connectDB->Open();
commandDB->ExecuteReader();
}catch(Exception^ ex) {
MessageBox::Show("Some error occurred! " + ex->Message);
}
Ubah dari :
“SQL Statement disini”;
Menjadi :
“INSERT INTO tab_formulir VALUES(null, " + semuaData + ");"
> Ubah dari :
semuaData;
> Menjadi :
semuaData = “col1, col2, col3”;
> Contoh :
semuaData = “0, ‘nilai1’, ‘nilai2’ ”;
Update Statement
▫ Membuka Object dari MySQLConnection,
▫ Menyisipkan UPDATE STATEMENT kedalamnya,
▫ Menjalankan STATEMENT tersebut pada Form terkait.
using namespaceMySql::Data::MySqlClient;
String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;String^ semuaData;
MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);
try{
connectDB->Open();
commandDB->ExecuteNonQuery();
connectDB->Close();
}catch(Exception^ ex) {
MessageBox::Show("Some error occurred! " + ex->Message);
}
Ubah dari :
“SQL Statement disini”;
Menjadi :
“UPDATE tab_formulir " + semuaData + “ WHERE id=“ + nilaiID;
> Ubah dari :
semuaData;
> Menjadi :
semuaData = “col1=0, col2=‘nilai’, col3=‘ssuatu’”;
> Contoh :
semuaData = “nama=‘budi’, pass=‘ganti’, alamat=‘jl. Merdeka’ “;
Delete Statement
▫ Membuka Object dari MySQLConnection,
▫ Menyisipkan DELETE STATEMENT kedalamnya,
▫ Menjalankan STATEMENT tersebut pada Form terkait.
using namespaceMySql::Data::MySqlClient;
String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;String^ semuaData;
MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);
try{
connectDB->Open();
commandDB->ExecuteNonQuery();
connectDB->Close();
}catch(Exception^ ex) {
MessageBox::Show("Some error occurred! " + ex->Message);
}
Ubah dari :
“SQL Statement disini”;
Menjadi :
“DELETE FROM tab_formulir WHERE id=“ + nilaiID;
> Ubah dari :
nilaiID;
> Menjadi :
nilaiID = angka Integer;
> Contoh :
nilaiID = 1;
Select Statement
▫ Membuka Object dari MySQLConnection,
▫ Menyisipkan SELECT STATEMENT kedalamnya,
▫ Menjalankan STATEMENT tersebut pada Form terkait.
▫ Mengembalikan value yg dikehendaki padaReader Object.
using namespaceMySql::Data::MySqlClient;
String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;String^ semuaData;
MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);MySqlDataReader^ readerDB;
try{connectDB->Open();commandDB->ExecuteNonQuery();
readerDB = commandDB->ExecuteReader();
while(readerDB->Read()){
Karyawan objectKaryawan;
objectKaryawan.setID(readerDB->GetInt32("id"));objectKaryawan.setName(convertToString(readerDB->GetString("nama")));objectKaryawan.setAlamat(convertToString(readerDB->GetString("alamat")));objectKaryawan.setTelp(convertToString(readerDB->GetString("telepon")));
wadah2.push_back(objectKaryawan);
connectDB->Close();} catch (Exception^ ex) {
MessageBox::Show("Some error occurred! " + ex->Message);}
Ubah dari :
“SQL Statement disini”;
Menjadi :
“SELECT * FROM tab_formulir “;
Exercise
• Buat beberapa Window Frame serupa denganbeberapa operasi Database berikut :
▫ Login Frame : (operasi login)
▫ Management User Frame : (operasi UPDATE, SELECT, dan DELETE)
• https://codesimplified.com/2009/12/01/difference-between-executequery-and-execute-nonquery/
• http://tutorialspoint.com
Reff :
FGroupIndonesia.com
Jl. Parahyangan no.18, Komp. Panghegar Permai I
Ujung Berung, Bandung 40614
(022) 92800446 / 95244964
BBM. 7DF95683 / 7CD59179
WA. 085795569337 / 085721261437