Database Operation di VC++
Insert, Update, Select, Delete Statements
terhubung dengan MySQL
© FGroupIndonesia.com modul kelas
khusus pemprograman VC++
• Menjelaskan praktek langsung interaksi
Database 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 dgn
MySQL.
• 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 dijalankan
bersamaan.
▫ Lakukan instalasi satu per-satu dari no.urut
file yang disebutkan.
Konsep Database
• Untuk persiapan awal, perlu dibuat terlebih dahulu
sebuah Database (Root directory) dan juga sebuah
Table.
• Sebuah Table dapat terdiri dari minimal satu
Column atau lebih.
• Suatu Column dapat menerapkan salah satu dari
jenis 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 dapat
diciptakan dengan perintah : CREATE.
• Setiap penyimpanan data ke dalam Table
menggunakan 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 pada
Database tidak diperbolehkan menggunakan
karakter 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 umum
digunakan dalam pembuatan Column pertama
kali.
• 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 pada
XAMPP.
• 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 pilihan
Default.
• Ketik nama yang sesuai, lalu klik CREATE.
• Untuk kelengkapan materi ini, kita gunakan
nama : databaseawal.
Create
• Pada bagian ini sebuah Table akan langsung
dibuat (di-CREATE) dengan jumlah Column
yg fixed.
• Untuk kelengkapan materi, maka Table ini kita
beri nama : tab_formulir.
• Pilih 4 sebagai Number of Column, lalu klik
GO.
• Kemudian berikan 4 Column tadi dengan definisi sebagai
berikut :
• 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 dari
C++ ke MySQL Server
• Sertakan reference pada project C++ yang
terkait.
• Lengkapi using namespace pada bagian atas
code C++
Test Connection
using namespace MySql::Data::MySqlClient;
String^ koneksi
=L"datasource=localhost;port=3306;username=root;password
=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;
MySqlConnection^ connectDB = gcnew MySqlConnection
(koneksi);
MySqlCommand^ commandDB = gcnew MySqlCommand
(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 ke
dalamnya,
▫ Menjalankan STATEMENT tersebut pada Form
terkait.
using namespace MySql::Data::MySqlClient;
String^ koneksi
=L"datasource=localhost;port=3306;username=root;
password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;
String^ semuaData;
MySqlConnection^ connectDB = gcnew
MySqlConnection (koneksi);
MySqlCommand^ commandDB = gcnew
MySqlCommand (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 ke
dalamnya,
▫ Menjalankan STATEMENT tersebut pada Form
terkait.
using namespace MySql::Data::MySqlClient;
String^ koneksi
=L"datasource=localhost;port=3306;username=root;
password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;
String^ semuaData;
MySqlConnection^ connectDB = gcnew
MySqlConnection (koneksi);
MySqlCommand^ commandDB = gcnew
MySqlCommand (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 ke
dalamnya,
▫ Menjalankan STATEMENT tersebut pada Form
terkait.
using namespace MySql::Data::MySqlClient;
String^ koneksi
=L"datasource=localhost;port=3306;username=root;
password=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;
String^ semuaData;
MySqlConnection^ connectDB = gcnew
MySqlConnection (koneksi);
MySqlCommand^ commandDB = gcnew
MySqlCommand (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 ke
dalamnya,
▫ Menjalankan STATEMENT tersebut pada Form
terkait.
▫ Mengembalikan value yg dikehendaki pada
Reader Object.
using namespace MySql::Data::MySqlClient;
String^ koneksi
=L"datasource=localhost;port=3306;username=root;pass
word=;database=parahyangan;";
String^ perintahSQL = “SQL Statement disini”;
String^ semuaData;
MySqlConnection^ connectDB = gcnew
MySqlConnection (koneksi);
MySqlCommand^ commandDB = gcnew
MySqlCommand (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 dengan
beberapa operasi Database berikut :
▫ Login Frame : (operasi login)
▫ Management User Frame : (operasi UPDATE,
SELECT, dan DELETE)
• https://codesimplified.co
m/2009/12/01/differenc
e-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

Database operation di C++

  • 1.
    Database Operation diVC++ Insert, Update, Select, Delete Statements terhubung dengan MySQL © FGroupIndonesia.com modul kelas khusus pemprograman VC++
  • 2.
    • Menjelaskan prakteklangsung interaksi Database 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
  • 3.
    Connector • Bagian terpentingsebagai penghubung agar Visual Studio 2010 dapat berinteraksi dgn MySQL. • 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
  • 4.
    • Saat InstalasiConnector, pastikan : ▫ Visual Studio 2010 tidak sedang running. ▫ Instalasi program lain tidak dijalankan bersamaan. ▫ Lakukan instalasi satu per-satu dari no.urut file yang disebutkan.
  • 5.
    Konsep Database • Untukpersiapan awal, perlu dibuat terlebih dahulu sebuah Database (Root directory) dan juga sebuah Table. • Sebuah Table dapat terdiri dari minimal satu Column atau lebih. • Suatu Column dapat menerapkan salah satu dari jenis Data Type yg terpilih. • Data tersimpan setiap satu Row pada Table. • Suatu Table dapat menerapkan PRIMARY KEY sebagai memudahkan index pembacaan.
  • 6.
    • Setiap Tablepada suatu Database dapat diciptakan dengan perintah : CREATE. • Setiap penyimpanan data ke dalam Table menggunakan perintah : INSERT. • Setiap editing data spesifik suatu Column tertentu menggunakan perintah : UPDATE. • Setiap menghapus data pada suatu Table menggunakan perintah : DELETE.
  • 7.
    Penamaan Database • PenamaanColumn, dan juga Table pada Database tidak diperbolehkan menggunakan karakter spasi. • Boleh menggunakan karakter selain alphabetical. • Contoh : ▫ Data Karyawan (salah) ▫ Data_Karyawan (benar) ▫ Alamat_1 (benar) ▫ Alamat 1 (salah)
  • 8.
    Column Data Type •Setidaknya ada beberapa Data Type yg umum digunakan dalam pembuatan Column pertama kali. • Angka : DOUBLE, INT, LONG, atau pun TINYINT • Text : VARCHAR, CHAR, TEXT, BLOB • True/False : BOOLEAN • Tanggal : DATE, TIME
  • 9.
    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
  • 10.
    phpMyAdmin • Merupakan suatuBundle dalam XAMPP yang memudahkan pengaturan database MySQL. • Pastikan Apache & MySQL running pada XAMPP. • Segera buka Browser lalu ketik pada URL : http://localhost/phpmyadmin
  • 11.
    MySQL dan Apacherunning pada XAMPP Control Panel
  • 13.
    Pembuatan Database Pertama Kali •Dalam phpMyAdmin tadi, klik pada Database menu. • Biarkan pilihan pada Collation sebagai pilihan Default. • Ketik nama yang sesuai, lalu klik CREATE. • Untuk kelengkapan materi ini, kita gunakan nama : databaseawal.
  • 15.
    Create • Pada bagianini sebuah Table akan langsung dibuat (di-CREATE) dengan jumlah Column yg fixed. • Untuk kelengkapan materi, maka Table ini kita beri nama : tab_formulir. • Pilih 4 sebagai Number of Column, lalu klik GO.
  • 17.
    • Kemudian berikan4 Column tadi dengan definisi sebagai berikut : • 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
  • 19.
    Object MySqlConnection^ • Digunakanuntuk menghubungkan koneksi dari C++ ke MySQL Server • Sertakan reference pada project C++ yang terkait. • Lengkapi using namespace pada bagian atas code C++
  • 23.
    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 = gcnew MySqlConnection (koneksi); MySqlCommand^ commandDB = gcnew MySqlCommand (perintahSQL, connectDB);
  • 24.
  • 25.
    Insert Statement • Langkahyg digunakan ialah: ▫ Membuka Object dari MySQLConnection, ▫ Menyisipkan INSERT STATEMENT ke dalamnya, ▫ Menjalankan STATEMENT tersebut pada Form terkait.
  • 26.
    using namespace MySql::Data::MySqlClient; String^koneksi =L"datasource=localhost;port=3306;username=root; password=;database=parahyangan;"; String^ perintahSQL = “SQL Statement disini”; String^ semuaData; MySqlConnection^ connectDB = gcnew MySqlConnection (koneksi); MySqlCommand^ commandDB = gcnew MySqlCommand (perintahSQL, connectDB);
  • 27.
  • 28.
    Ubah dari : “SQLStatement disini”; Menjadi : “INSERT INTO tab_formulir VALUES(null, " + semuaData + ");"
  • 29.
    > Ubah dari: semuaData; > Menjadi : semuaData = “col1, col2, col3”; > Contoh : semuaData = “0, ‘nilai1’, ‘nilai2’ ”;
  • 30.
    Update Statement ▫ MembukaObject dari MySQLConnection, ▫ Menyisipkan UPDATE STATEMENT ke dalamnya, ▫ Menjalankan STATEMENT tersebut pada Form terkait.
  • 31.
    using namespace MySql::Data::MySqlClient; String^koneksi =L"datasource=localhost;port=3306;username=root; password=;database=parahyangan;"; String^ perintahSQL = “SQL Statement disini”; String^ semuaData; MySqlConnection^ connectDB = gcnew MySqlConnection (koneksi); MySqlCommand^ commandDB = gcnew MySqlCommand (perintahSQL, connectDB);
  • 32.
  • 33.
    Ubah dari : “SQLStatement disini”; Menjadi : “UPDATE tab_formulir " + semuaData + “ WHERE id=“ + nilaiID;
  • 34.
    > Ubah dari: semuaData; > Menjadi : semuaData = “col1=0, col2=‘nilai’, col3=‘ssuatu’”; > Contoh : semuaData = “nama=‘budi’, pass=‘ganti’, alamat=‘jl. Merdeka’ “;
  • 35.
    Delete Statement ▫ MembukaObject dari MySQLConnection, ▫ Menyisipkan DELETE STATEMENT ke dalamnya, ▫ Menjalankan STATEMENT tersebut pada Form terkait.
  • 36.
    using namespace MySql::Data::MySqlClient; String^koneksi =L"datasource=localhost;port=3306;username=root; password=;database=parahyangan;"; String^ perintahSQL = “SQL Statement disini”; String^ semuaData; MySqlConnection^ connectDB = gcnew MySqlConnection (koneksi); MySqlCommand^ commandDB = gcnew MySqlCommand (perintahSQL, connectDB);
  • 37.
  • 38.
    Ubah dari : “SQLStatement disini”; Menjadi : “DELETE FROM tab_formulir WHERE id=“ + nilaiID;
  • 39.
    > Ubah dari: nilaiID; > Menjadi : nilaiID = angka Integer; > Contoh : nilaiID = 1;
  • 40.
    Select Statement ▫ MembukaObject dari MySQLConnection, ▫ Menyisipkan SELECT STATEMENT ke dalamnya, ▫ Menjalankan STATEMENT tersebut pada Form terkait. ▫ Mengembalikan value yg dikehendaki pada Reader Object.
  • 41.
    using namespace MySql::Data::MySqlClient; String^koneksi =L"datasource=localhost;port=3306;username=root;pass word=;database=parahyangan;"; String^ perintahSQL = “SQL Statement disini”; String^ semuaData; MySqlConnection^ connectDB = gcnew MySqlConnection (koneksi); MySqlCommand^ commandDB = gcnew MySqlCommand (perintahSQL, connectDB); MySqlDataReader^ readerDB;
  • 42.
    try{ connectDB->Open(); commandDB->ExecuteNonQuery(); readerDB = commandDB->ExecuteReader(); while(readerDB->Read()){ KaryawanobjectKaryawan; 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); }
  • 43.
    Ubah dari : “SQLStatement disini”; Menjadi : “SELECT * FROM tab_formulir “;
  • 44.
    Exercise • Buat beberapaWindow Frame serupa dengan beberapa operasi Database berikut : ▫ Login Frame : (operasi login) ▫ Management User Frame : (operasi UPDATE, SELECT, dan DELETE)
  • 45.
  • 46.
    FGroupIndonesia.com Jl. Parahyangan no.18,Komp. Panghegar Permai I Ujung Berung, Bandung 40614 (022) 92800446 / 95244964 BBM. 7DF95683 / 7CD59179 WA. 085795569337 / 085721261437