Koneksi Database dengan Delphi & MySQL

Tulisan ini telah dipindahkan ke website baru kami, Tutorial Koneksi Database Menggunakan Delphi & MySQL. Komentar dan pertanyaan di blog ini tidak akan kami jawab lagi. Silahkan sampaikan komentar atau pertanyaan Anda pada link tulisan di atas.

Sedangkan untuk Delphi, MySQL dan Zeos, silahkan lihat Tutorial Koneksi Database Dengan Delphi, Zeos & MySQL. Terimakasih :)

Tingkat Kemahiran : Pemula
Software : Delphi 7, MySQL 4

INSTALASI MYSQL

MySQL Server dapat didownload di http://dev.mysql.com/. Petunjuk instalasi dapat Anda lihat pada dokumentasi yang disertakan dengan file arsip (*.zip) MySQL yang Anda download. Namun jika Anda tidak mau repot, berikut saya coba menunjukkan langkah-langkah instalasi MySQL Server sebagai service di Windows XP (SP2), dengan catatan, tidak ada modifikasi konfigurasi kecuali path-path MySQL.

·Untuk menginstall MySQl Server, ekstraklah file zip hasil download ke drive C:\ sehingga folder utama menjadi C:\MySQL-x.xx.

·Kemudian masuklah ke C:\MySQL-x.xx\, cari file-file dengan ekstensi *.cnf dan hapus. Hapus juga file My.cnf di drive C:\ jika ada. Hapus juga file my.ini di folder C:\Windows jika ada. Langkah ini untuk membuang kemungkinan konflik nantinya.

·Sekarang jalankan command prompt dari menu Start>Run, ketik CMD dan enter.
Ketik C:\ dan enter.
Ketik cd C:\MySQL-x.xx\Bin dan enter.
Ketik mysqld-nt –install dan enter, untuk menginstall MySQL sebagai service.
Ketik SC start mysql untuk menjalankan MySQL Service.

·Jika semuanya berjalan lancar, kini MySQL Server telah terinstall di komputer Anda.

Untuk menguji MySQL Server, kita akan mencoba membuat sebuah database dan sebuah tabel.

·Masih di command prompt,
ketik mysql -u root dan enter untuk menjalankan MySQL Client. Secara default user pada MySQL Server adalah root dan passwordnya kosong.

·Dari konsole MySQL Client, ketik perintah-perintah berikut ini:
mysql> Create database mydata; <enter>
Query OK, 1 row affected (0.00 sec)
mysql> use mydata; <enter>
Database changed
mysql> create table teman(
-> nama varchar(30) not null,
-> alamat varchar(100),
-> telepon varchar(15)
-> ); <enter>
Query OK, 0 rows affected (0.05 sec)
Sampai di sini, Anda telah membuat sebuah database “mydata” dan sebuah tabel “teman” di dalamnya.

·OK, sekarang Anda bisa keluar dari konsole ini dengan mengetik
mysql> exit <enter>
Bye

KONEKSI DELPHI & MYSQL

Di Delphi, telah disediakan berbagai cara untuk berkomunikasi dengan MySQL Server, ada ADO/dbGo – dengan perantaraan MyODBC driver, ada juga BDE dengan memanfaatkan ODBC, ada pula dbExpress yang melakukan koneksi langsung ke Server dengan perantaraan library MySQL. Sampai nanti, yang akan kita bahas adalah dbExpress ini, sebab dbExpress adalah teknologi koneksi database asli dari Borland, dan sudah mendukung MySQL sejak Delphi 6. Meskipun demikian tidak tertutup kemungkinan bagi Anda untuk menggunakan komponen koneksi pihak ketiga dalam aplikasi Delphi Anda, seperti MyDac dan sebagainya. Jika Anda nantinya tertarik, http://www.torry.net menyediakan beragam library antarmuka Delphi – MySQL untuk Anda download.

OK, kini kita buat sebuah aplikasi baru di Delphi. Harap diingat, meski Delphi 6 sudah mendukung MySQL, namun yang saya gunakan dalam menulis posting ini adalah Delphi 2006. Kita lanjutkan dengan langkah-langkah berikut:

·Tambahkan sebuah TSQLConnection dari palette dbExpress ke form
­
jokorb_wordpress_post_mysql_delphi_1.gif
Atur property LoginPrompt menjadi False, lewat Object Inspector

·Klik kanan pada SQLConnection1 pada form dan pilih Edit Connection Properties
Sebuah dialog Connection Editor akan ditampilkan
jokorb_wordpress_post_mysql_delphi_2.gif

·Kita buat koneksi dengan mengklik tombol Add Conection
jokorb_wordpress_post_mysql_delphi_3.gif
Koneksi ini bertipe MySQL dan kita beri nama DBMyData
jokorb_wordpress_post_mysql_delphi_4.gif
Klik OK.
Kini kita atur property koneksi DBMyData ini seperti terlihat pada gambar berikut
jokorb_wordpress_post_mysql_delphi_5.gif

·Anda bias mencoba koneksi ini dengan mengklik tanda centang di bagian atas dialog. Jika pesan yang muncul menunjukkan koneksi sukses, selamat, Anda siap berksperimen dengan Delphi & MySQL!

·Klik OK untuk menutup dialog Connection Editor

·Kembali ke form, ubah properti SQLConnection1 menjadi True, sehingga koneksi ke MySQL menjadi aktif.

·Tambahkan sebuah TSQLTable dari palette dbExpress, sebuah TDataSource, TDataSetProvider dan TClientDataSet dari palette Data Access ke form
Atur properti SQLConnection milik SQLTable1 menjadi SQLConnection1 dan properti TableName menjadi “teman”, seperti yang telah kita buat pada langkah di atas.
jokorb_wordpress_post_mysql_delphi_6.gif

·Sekarang ubah properti Dataset dari DataSetProvider1 menjadi SQLTable1.
Ubah juga properti ProviderName dari ClientDataSet1 menjadi DataSetProvider1.
Terakhir, ubah properti DataSet dari DataSource1 menjadi ClientDataset1.

Dari langkah-langkah ini, kita bias melihat alur data dari server MySQL hingga ke GUI aplikasi kita dan juga sebaliknya, pada diagram berikut:
jokorb_wordpress_post_mysql_delphi_ilustrationdiagram.gif

Sebenarnya, akses data dalam table MySQL dapat langsung dilakukan antara DataSource1 dan SQLTable1, tapi karena SQLTable adalah dataset unidirectional (satu arah), penggunaan data control yang multidirectional menjadi tidak berfungsi dengan baik. Contoh, DBGrid, DBNavigator.
Pergerakan kursor penunjuk record pun hanya dapat bergerak dengan arah Next() dan First. Last() dan Next() tidak didukung.
Dataset unidirectional sangat menguntungkan saat koneksi ke SQL Server (pada umunya) mengembalikan sejumlah besar data, karena menghemat memori dan trafik network.
Delphi menyediakan cara mengatasi hal ini dengan menambahkan DataSetProvider dan ClientDataset di antara kedua komponen database di atas. Dataset provider berfungsi mengontrol data dari SQLTable, dan menyimpannya sementara secara lokal, dan kemudian direpresentasikan kembali dalam bentuk dataset oleh ClientDataset.

·OK. Kini kita tambahkan sebuah DBGrid [palette Data Controls] dan beberapa buah Button hingga tampilan form menjadi seperti ini:
jokorb_wordpress_post_mysql_delphi_7.gif

·Sekarang kodenya. Klik ganda Button1, yang memiliki caption “Pertama”. Ketikkan kode untuk navigasi ke data pertama

procedure TForm1.Button1Click(Sender: TObject);
begin
<span>   </span>ClientDataset1.First;
end;

Untuk Button Sebelumnya

procedure TForm1.Button2Click(Sender: TObject);
begin
if not ClientDataset1.Bof then
ClientDataset1.Prior
end;

Untuk Button Setelahnya

procedure TForm1.Button3Click(Sender: TObject);
begin
if not ClientDataset1.Eof do then
ClientDataset1.Next;
end;

Untuk Button Terakhir

procedure TForm1.Button4Click(Sender: TObject);
begin
ClientDataSet1.Last;
end;

Untuk Button Refresh

procedure TForm1.Button5Click(Sender: TObject);
begin
if ClientDataset1.ChangeCount>0 then
ClientDataset1.ApplyUpdates(-1);
end;

Untuk Button-Button lainnya dapat Anda lihat kodenya langsung pada demo program yang tersedia untuk Anda download di akhir tulisan ini.

·OK. Sekarang menampilkan data dari ClientDataset ke DBGrid. Seperti biasa, Anda cukup mengatur properti DataSource dari DBGrid1 menjadi DataSource1. Kini atur properti Active pada ClientDataset1 dan SQLTable1 menjadi True. Ubah juga properti Connection dari SQLConnection1 menjadi True.

·Jalankan program Anda.
jokorb_wordpress_post_mysql_delphi_8.gif


KODE SELENGKAPNYA

Berikut kode lengkap aplikasi yang baru kita buat di atas.


unit umain;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBXpress, FMTBcd, StdCtrls, Grids, DBGrids, DB, Provider,
  DBClient, SqlExpr;
type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    SQLTable1: TSQLTable;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientDataset1.First;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  if not ClientDataset1.Bof then
    ClientDataset1.Prior
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
  if not ClientDataset1.Eof then
    ClientDataset1.Next;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
  ClientDataSet1.Last;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
  if ClientDataset1.ChangeCount>0 then
    ClientDataset1.ApplyUpdates(-1);
  ClientDataset1.Refresh;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
  ClientDataset1.Delete;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
  ClientDataset1.Append;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
  ClientDataset1.Edit;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
  ClientDataset1.Cancel;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
  if ClientDataset1.ChangeCount>0 then
    ClientDataset1.ApplyUpdates(-1);
end;
end.

DOWNLOAD
Dan Berikut, Anda bias mendownload MySQL Server, library LIBMYSQL.DLL yang saya gunakan dalam tulisan ini, dan demo program yang kita buat di atas.

MySQL Server – 3.79MB – sudah dimodifikasi biar ramping
Library LibMySQL.dll letakkan ke directory System32
Contoh Aplikasi

Catatan, file-file download harus diubah ekstensinya ke .zip , sebaiknya scan dengan antivirus dulu sebelum diekstrak.

google keyword: mysql, delphi, koneksi, dbexpress, clientdataset

About these ads

197 thoughts on “Koneksi Database dengan Delphi & MySQL

  1. aku udah download versi 4.1 kok instalasinya beda suseh deh…
    intrucsi di atas diikutin kaga jalan juga hik..hik..

  2. Masa’ sih?

    Aku coba di warnet OK-OK saja…

    Apa file-file hasil ekstrak sudah ditaruh di folder C:\MySQL?

    Coba diperhatikan lagi. Kalau ga’ mau repot, download file setupnya di MySQL.com saja.

  3. makasi ya atas tulisan nya aqqqqqqqq………………..
    suka bangat ,,,,,,,,,,,,,,
    terus berjuang ya……….!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  4. ma’af nih pertanyaannya sedikit nyeleneh
    aku upload file zip ke wordpress ga diterima,kalau dizip pake power point kaya ente gimana caranya..?

  5. He he he, dosanya tanggung sendiri…
    Aku ZIP dulu pake Winrar/Winzip, trus ekstensi filenya diganti dari .ZIP ke .PPT ….

    Atau kalau mau, .JPG juga bisa, cuma kalau diklik ga’ otomatis download…

  6. mas maaf ya aku masih awam nich….
    mas maksud dari file ppt tu apa ya???
    trus gimana cara buka nya ma gunanya supaya apa mas???

  7. Maksud ekstensi PPT tuh, ya supaya kalo diklik langsung didownload. Soalnya, aturannya pemilik WordPress, si Automattic dan kawan-kawannya kaga’ ijinkan file-file seperti zip, rar, dsb, yang boleh cuman PPT, Doc, JPG, Gif, dsb. Jadi file-file sip untuk didownload aku ganti ekstensinya ke ppt.

    Ingat, ini bukan file untuk powepoint, tapi file ZIP.

  8. saya pemula delphi nih
    tolong bantuannya
    selama ini kan saya biasa pake vb buat tugas kuliah seh.. tapi sekarang disuruh pake delphi,pertanyaan saya..
    1. buku apa yang bagus untuk mengenali lingkungan di delphi
    2. kalo nyari file pdf nya yang lengkap dimana aja yach??
    3. yang mau bantuin add yaa di yoesoff@yahoo.com

  9. aku udah coba ganti extensinya tetep aja tidak bisa bahkan tipe filenya tetep zip sedangkan mas extensi dan tipe filenya powor point ayao gimana

  10. Dinda cantik [ sorry kalau cowo'], kayaknya ekstensi file di-hidden tuh… Coba ikuti cara ini:
    1. Buka Windows Explorer, masuk ke menu Tools>Folder Options, klik Tab View.
    2. Cari item berjudul “Hide Extensions for Known File Types”, dan hilangkan tanda ceknya. Klik OK.
    3. Coba lagi ganti ekstensi file .ZIP menjadi .PPT di Windows Explorer Dinda.

    Jika pada langkah 1. Dinda tidak ada Folder Options di menu Tools, atau pada langkah 2. Dinda sudah hilangkan tanda ceknya tapi saat diulangi lagi dari langkah 1. tanda cek itu muncul lagi, berarti mungkin PC Dinda terkena trojan, worm atau sejenisnya Hiiiiiiii !!! Scan lagi pake antivirus paling up-to-date.

  11. hallo mas, saya masih pemula di delphi………
    saya ada kesulitan / belum ngeh orang jawa bilang ( asli jawa )
    kalo saya mempunyai user di berbagai lokasi dan dalam melakukan transaksi beda-beda periode transaksinya.

    sebagai contoh :
    user :=’ alie’
    periode :=’052008′
    lokasi:=’CRB’

    Nah untuk create connection databasenya yang berbeda-beda tiap user gimana ya……………, kadang – kadang di tengah transaksi user tersebut hari ganti periode dan ganti lokasi….

    saya udah memberikan kode pada saat login dan di di save pada saat ada perubahan, kode periode, kode lokasi dan usernya…

    kalo di under dos saya pake set path to &mpath.

    dengan asumsi mpath:=’..\data\”+periode+lokasi

    waduch udah banyak kali ngomongnya…………….
    terimakasih ya………………..

    di tunggu pencerahannya….

  12. Baiknya buat lagi sebuah tabel untuk menampung informasi login user. Misalnya sebuah tabel dengan field-field
    user varchar(30)
    periode varchar(6)
    lokasi varchar(3)
    atau sesuai keperlua Anda.

    Maksud dengan beda koneksi untuk tiap user bagaimana? Jika user berada di tempat yang berbeda, dan menggunakan komputer yang berbeda, otomatis koneksinya akan berbeda.

    Yang sudah anda tulis untuk meng-save informasi login sudah benar. Untuk perubahan periode di tengah transaksi, Anda bisa menggunakan Timer untuk memeriksa pergantian hari dsb. Atau, jika transakasi masih di periode I, tetap masukkan transaksi tersebut di periode I, meskipun hari sudah berganti dan masuk di periode II. Kata lainnya, gunakan periode saat user mulai login. Menurut saya, cara kedua lebih efektif dan lebih akurat. Contoh, transaksi di Gudang Rabat Alfa misalnya, user belanja sampai jam 23.30 malam, dan saat transaksi di kasir, waktu berjalan sampai pukul 00:05 yang berarti perindahan hari yang mungkin juga perpindahan periode (jika akhir bulan, taruhlah begitu). Nah transaksi yang sesungguhnya kan sebelum perpindahan hari?

    Sedangkan detail transaksi/tanggal faktur/yang sejenisnya, dicatat sesuai waktu yang berjalan.

    Untuk DOS
    &MPath=’..\data\’+periode+lokasi
    Set path to &Mpath

    Untuk Delphi
    MPath:=ExtractFilePath(Application.exename)+priode+lokasi;
    SetCurrentDir(MPath);

    HTH

  13. thanx buat informasinya…….
    boleh tau gk cara nyimpan file *GIF di form delphi????
    kaya jpeg bisa dimasukin di button,bmp dimasukin di bitbtn…klw yang satu ini (*.gif) di Upload dimana yah…..
    kasi tau tips2nya donk

  14. SoWrY, sY bKn OrG yG pNtR DeLpHi, tp mau nda’ kanda ajarkan sy delphi.
    Soalnya klo di minta ajar suka nolak, giliran sy kursus bru blg” knp nda kursus sm sy sj ?”.
    GiMaNa TuH kaNdA?
    DaRi DiNdAmU yG sLlu mEnCiNtAi & MenYaYangImU SeLaMaNyA ;)….

  15. mas koneksi sudah saya atur seperti contoh tapi waktu diklik tanda centang gak sukses
    ada pesan
    ” unable to load libmysql.dll ”

  16. IS ANYONE CAN HELP ME???
    om kalo pake delphi 8 / delphi 2006 ada yg pernah coba kagak? gue coba udah berulang2 kali gk jalan2, gk bnyk dokumentasi utk delphi diatas delphi 7.gue lagi coba2 nih naek k .NET he5
    THX

  17. assalmualaikum wr.wb
    mas2/abg2,kk tlgin sy.sy mo tanya knpa database desktop sy sering error?trus bagusnya pke database yg mana?
    tlg dong…

  18. Untuk FAFA:
    Delphinya versi berapa?

    Tutorial di atas menggunakan Delphi 7 dan MySQL 4. Jika Delphi versinya lain dan/atau MySQL yang beda versi, kemungkinan LibMySQL.dll bawaan Delphi dan MySQL tidak kompatibel.

    Jika Anda sudah menggunakan Delphi 7 dan MySQL 4 sesuai yang dipaparkan di atas, cobalah untuk mendownload libmysql.dll yang terdapat di akhir posting di atas, kemudian kopikan ke %DELPHI_FOLDER%\Bin dan %WINDOWS%\System32

    Terimakasih atas komennya.

  19. Untuk Gonzo’s:

    Memangnya errornya bagaimana?
    Memang untuk sekarang ini, BDE dan pendukungnya (Database Desktop, DBExplorer, dsb) rada sudah ditinggalkan. Kasus paling banyak yang saya lihat masih menggunakan engine ini adalah tugas-tugas akademis (mahasiswa/i) dan buku-buku Delphi-Database. Saran saya, gantilah dengan engine lebih baru.

    Untuk database alternatif terhadap BDE, MS Access tentu saja pilihan termudah dan juga stabil untuk database lokal. Firebird, Interbase dan MySQL embedded version (koneksi lokal) juga sangat bagus. juga tersedia SQLite yang gak repot, tinggal menyertakan sebuah file DLL saja.

    Untuk yang klien-server, MySQL tentu saja pilihan no. 1. Meskipun untuk koneksi dengan Delphi, setau saya Interbase/Firebird masih yang terbaik.

    Dan yah, untuk database paradox yang sudah Anda buat, tetap bisa Anda gunakan tanpa BDE. Silahkan cek software pihak ketiga di sini

  20. mas saya menggunakan delphi7 & MySQL5. setelah saya kopikan libmysql.dll hasil download koneksi sukses.
    tapi harus menggunakan :
    user_name: root dan hostname: localhost

    kalau hostname-nya saya ganti IP Address komputer saya, waktu di tes dengan klik tanda centang sukses, tapi kalo project di RUN
    muncul pesan error “?Invalid username/password”

    saya coba membuat user baru di Mysql dengan host saya setting IP Address komputerku

    kemudian koneksi dbexpress saya setting user tsb. tapi waktu di RUN tetap muncul pesan error yang sama

    trims,

  21. Mas, aku mau tanya nih..
    aku kan pnya program delphi pake mySQl dari teman,….
    tapi kok gak isa jalan ya..??
    apakah harus setting myODBC ya..?
    soalnya database nya ditaruh ndalam folder e contoh Folder Saya…
    apakah mySQl dapat mengenali tanle dari satu folder ya mas…?
    mohon pencerahannya..
    terus kok pas aku instal mySQl versi 5 tapi kalo yang pertama gagal kok ada pek portn ya aku jadi bingung tuh…
    THX

  22. Untuk koneksi, jika menggunakan MyODBC, tentu saja MyODBC harus diinistall di mana aplikasi berjalan dan dikonfigurasi sesuai kebutuhan aplikasi.

    Untuk aplikasi Delphi + MySQL (Native MySQL Library / DBExpress) yang didevelop di sebuah PC, dan diuji di pc lain, harus diperhatikan apakah di pc development itu MySQLnya lokal atau remote. Jika remote, misalnya Hostname=’192.168.0.2′, maka asalkan kedua pc terhubung jaringan dengan setting yang sama (misalnya pc ujicoba ber-IP 192.168.0.3) maka dapat langsung konek kok.
    Tapi jika Mysql berjalan sebagai server lokal di pc development dan HostName di aplikasi diset ke ‘Localhost’, maka di pc ujicoba harus diinistall mysql server dengan – minimal – versi dan setting yang sama.

    Jika kedua kondisi di atas terpenuhi, coba perhatikan lagi, apakah Anda menjalankan MySQL dari Delphi (Debugging)? Jika ya, pastikan Delphi untuk develpoment dan ujicoba berversi sama. Delphi yang lebih baru mendukung koneksi ke server yang didukung oleh Delphi versi sebelumnya, tetapi nama library biasanya berbeda.

    Soal path database MySQL, Anda bisa letakkan di mana saja, asalkan di local disk yang readable+writeable. Editlah file my.ini di C:\Windows atau my.cnf di C:\ atau hapuslah keduanya dan editlah file my.cnf di %BLAB_BLAH%\MySQL\
    Di sana, Anda harus menyesuaikan path Temporary, Path Main MySQL Server Directory, dan Path Data Directory.

    Untuk MySQL versi 5.xx, memang installernya meminta Anda mengkonfigurasi MySQL Server, termasuk port. Jika Anda ragu, biarkan saja nilai default atau masukkan port 0. Dengan demikian, MySQL akan menggunakan port default yaitu 3306.

    HTH + CMIIW :-)

  23. lam kenal mas,,,
    aku mo tanya ne,gimana se procedure backup dan restore database mysql?aku pake mysql 4.0 dan koneksi dbexpress.terimakasih sebelumnya [maaf agak mencleng dikit dari topik] :-)

  24. Assalamualaikum mas Joko rb yang kayaknya pinter bagt yak…

    aq mo tany2 nie…

    aq Lg bikin applks pk delpi-mysql n connctr dbexpress… d Laptop q adanya phpmyadmin mas.. n pas q setting sql connectionnya eh muncul peringatan gn ” Unable to Load libmysql.dll ” gt mas… apanya ya yang bermasalah… kt tmn aq c.. harus pk mysql-front.. ap bnr.. ap pake phpyadmi tu kgk bisa ya mas..??

    trus aq jg pgn tanya scrip buat nambah data tapi nambahnya tu pake componen edit bukan lagsg pake dbgrid.. bisa ga mas.. kLo bisa sekalian insert, edit, n delete database…

    mohon bantuannya mas Joko… ^_^

    makasiihhh…..

    wass.

  25. wah akhirnya mas… saya putuskan untuk pake access j buat databasenya soalnya n aplikasi cuma stand alone ko…

    btw.. punya ebook script2 bwt insert, edit, delete databse ga.. klo ad n harus bayar.. gpp de.. ^_^

    maksih…. ^,^

  26. mikum, nyuwun sewu agak menceng dari topik :

    mas… nyambung yang dulu…..
    saya udah simpan di table sendiri, untuk keperluan simpan user, periode aktifnya dan lokasinya… memangtiap user berbeda2. Nah yang menjadi saya bingung… kalo di dos…saya pake clipper dulu…
    pada saat user login saya catat semua info2 di atas. Dan di dalam menu utama saya tambahkan path nya untuk mencari tahu lokasi mana user tsb aktif dan periode berapa ( ceritanya kita ada di kantor pusat ), untuk akses tabel kan langsung aja, di mana folder2nya sesuai path yang ada pada saat setelah login berhasil…
    contoh :
    user :=’ alie’
    periode :=’052008′
    lokasi:=’CRB’
    mPath :=’DATA’\+periode+’\’+lokasi
    menjadi :
    set path to &mPath

    Nah kalo di delphi … saya kebetulan pake mysqdac, tabel2 kan ada di dalam database, apakah saya harus create database yang berbeda2, artinya database di dalam database….( apa bisa ..) saya uda coba sich tapi tidak bisa artinya database di dalam database :

    database mydb —> di dalamnya ada database 082008
    —> di dalamnya ada database lokasi
    –> baru kemudian tabel2nya..

    gitu mas… jadi puyenk saya nya….

    oh ya mas punya component CRP32 nya Crystal Report untuk delphi7 ga?…

    mohon jurus2nya di keluarkan ya mas…..

    matur nuwun

  27. Untuk Uday

    Filter data pake form? Ada beberapa cara, tergantung juga pada jenis koneksi databasenya. Misalnya yang umum, TDataSet mempunyai property Filter dan Filtered. Saya asumsikan Anda mempunyai database MS. Access dan di dalamnya ada tabel Teman. Tabel ini mempunyai field Nama, Alamat, Telepon. Tabel akan diakses menggunakan TADOConnection dan TADOTable (palet dbGo).

    Selanjutnya Anda akan memfilter data tabel Teman berdasarkan Nama:

    Adotable1.Filtered:=False;
    Adotable1.Filter:='nama='+QuotedStr(Edit1.Text);
    Adotable1.Filtered:=True;
    

    Dengan demikian, jika Anda memasukkan Susi di Edit1, maka yang ditampilkan hanya data tabel Teman yang Namanya Susi saja. Jika ingin semua data yang Namanya mengandung Susi, silahkan coba yang ini:

    Adotable1.Filtered:=False;
    Adotable1.Filter:=
                     'nama like '+QuotedStr('%'+Edit1.Text+'%') ;
    Adotable1.Filtered:=True;
    

    Hasilnya, data Teman yang Namanya Susi Susanti, Ira Maya Susi, Susiana Andalusia, akan ditampilkan.

    Selamat Mencoba.

    Untuk Alie

    Ga’ perlu buat database dalam database lah :-) . Anda cukup buatkan tabel user, tabel lokasi dan tabel periode.

    Strukturnya kira-kira sbb.:

    Tabel User:
    UID varchar (30)
    PWD varchar (30)
    ……

    Tabel Periode
    PID int(5)
    TANGGAL date
    NAMA_PERIODE varchar(20)
    ……

    dan terakhir,
    Tabel Lokasi
    KODE varchar (3)
    NAMA_LOKASI varchar(30)
    ……

    Untuk semua user, lokasi dan periode, akan dicatat di tabel tabel tersebut. Tabel-tabel ini akan menjadi master table.

    Untuk login/transaksi user, buatkan lagi sebuah tabel:

    Tabel Transaksi
    KODE_USER varchar(30)
    PID int(5)
    KODE_LOKASI varchar(3)
    TANGGAL_LOGIN date
    WAKTU_LOGIN time
    ………………. blah blah blah

    —————————————
    Nah, waktu ada user login, cek apakah UID dan PWDnya valid. Cek juga validitas Lokasinya berasal. Jika semuanya OK, catat aktivitasnya di Tabel Transaksi.

    Ini adalah penerapan sederhana dari konsep normalisasi database. Dibandingkan konsep database yang Anda buat di Clipper, konsep ini lebih menjamin integritas data. Mencegah data ganda/duplikasi data, dan lebih skalable jika Anda berencana membuat aplikasi dan laporan-laporan yang lebih luas.

    Mhon maaf jika kurang jelas. Semoga kita diberi waktu untuk diskusi lbih detil nantinya.

  28. Boss q minta dibantuin donggg…
    Boss,, q lagi error neh…
    q ga tau passwordnya apa, semalem q otak atik TunUp utilitis.. ga tau (lupa) yang mana?# pagi hari booting tiba2 muncul dialog pasword log on….
    padahal q g pernah setting password log on sebelumnya…
    semalem ada yang kira2 saya ubah seeh…
    …. account disabled q check/uncheck lupa juga…
    trus untuk bisa booting kompie nya gimana…. install ulang kali yaaah?

  29. Wah, pertanyaanya kurang jelas boss…
    Password logon yang mana? Punya Windows (Winlogon, SysKey) atau punya TuneUp Utilities? Pertimbangkan dulu sebelum install ulang Windows. Memang kalau diuninstall TuneUp-nya ga bisa ya..??

  30. Ikut gabung neh, ada yang tahu ga? Cara backup mySQL dengan format innoDB pakai delphi. saat ini aku pakai myDAC, masalahnya untuk backup (dump) hanya support myISAM. tq

  31. Ngikut comment ah….
    cuma mo ngikut ngejawab dikit aja, comment dari om princess. Untuk delphi 2006 ke bawah sampai delphi 6 emang dbExpress untuk MySQL baru mendukung buat yang Versi MySQL 4.1.xx. CMIWW !!!
    Dan MySQL versi 5.0.xx ke atas baru disupport oleh Delphi 2007 dan yang lebih muda. Tapi ada kok library yang bisa bikin agar delphi 2006-6 bisa support MySQL versi 5. Namanya dbxopenmysql5. Dan saya sendiri udah membuktikannya pake delphi 7. Mau download? nih tak kasih linknya…

    ————————————————————————

    http://www.justsoftwaresolutions.co.uk/delphi/dbexpress_and_mysql_5.html

    ————————————————————————

  32. Backupnya dengan query biasa saja: select all, simpan ke local disk. Untuk proses backup sepenuhnya, termasuk user rights dsb., harus dari sisi server backupnya. Pake MySQLDump misalnya.

    Untuk Dram, makasih infonya. Untuk pembaca lainnya, Anda bisa mencari Driver DBExpress lainnya dengan mesin pencari di kanan atas. Keyword: “dbexpress 5″

  33. Mas Joko dan yang lain, para master in db with delphi… Saya biasanya pake db paradox. Truz mau pake MySQL cuman type-nya Client-Server. Saya pake koneksi-nya ADO, dg driver MyODBC 5.1. Saya ada masalah sama fungsi PASSWORD. Saya coba via phpMyAdmin di SQL saya ketikkan SELECT * FROM OPERATOR WHERE UNAME = ‘nama_nya’ AND PASS = PASSWORD(‘password_nya’) Sukses dieksekusi. Tapi koq di Delphi ga bs… Apa ada manualnya untuk menggunakan fungsi PASSWORD via TSQLQuery??? Makasih sebelumnya?

  34. ‘…WHERE UNAME=’ + QuotedStr(‘nama_nya’) + ‘ AND PASS=PASSWORD(‘ + QuotedStr(‘password_nya’) +’)…’

    Pake sql seperti contoh di atas mau ga? Saya juga ga’ tau. Ga pernah ketemu yang kayak gitu problemnya….

  35. QuotedStr() ? Di unit system ya??? Aku koq ga pernah pake ya… OYA… Berhubung banyak banget komponen yang bisa menghubungkan Delphi ama Server MySQL, bisa minta tolong dong… Ada ga tulisan yang mengungkap kelebihan dan kelemahan dari masing-masing komponen itu… Juga, preferednya, satu komponen dia lebih cocok untuk aplikasi seperi apa gitu… THX MASTER!

  36. Mas,
    Aku pake ADO buat koneksiin Delphi n MySQL. Drivernya MySQL Connector/ODBC 3.51. Aku punya permasalahan ketika mengakses tabel dengan field bertype DATE. Muncul Error Exception EOleException dengan pesan kesalahan ‘Data provider or other service returned an E_FAIL status’. Sedangkan jika saya mengakses tabel yang tidak memiliki field bertipe DATE, lancar-lancar saja. Mohon bantuannya…

  37. BINGGO!!!
    Sory mas, aku dah nemuin bugs-nya…
    Default dari field bertype date adalah ‘0000-00-00′. Sementara pada tabel tersebut, ada record dengan nilai field tanggal adalah defaultnya (0000-00-00). Nah inilah yang menyebabkan Delphi nggan mengakui. Karena ngga ada tanggal segitu. So, ubah aja tanggal dan defaultnya menjadi 9999-12-31. Lancar!!!!

    Mau pake komponen xpStyle tanpa registrasi?? Di pass aja dialognya… bisa pake Hex editor atau Ultra Edit ato yg lain. Untuk nyari alamatnya bisa pake WDASM. Cool, jadi gratis!!!

    • Imajinasi!!! kata Spongebob…

      Kadang bertanya itu bukan untuk dijawab, tapi sarana menggali imajinasi dan kreativitas serta semangat mencoba. Buktinya mas Roni belum dijawab, baru bertanya, eh, sudah dapat solusinya. Selamat Mas… :-)

  38. Mas… I’m come back… Masih seputar MySQL. Aku mau tanya, ada ga yang tau cara mengubah regional setting di MySQL. Cz… Aku lg buat aplikasi pake delphi. Aplikasinya berkait dengan bilangan (FLOAT not INTEGER) dan tanggal. Jadi, rentan banget ama penggunaan tanda koma (,) atau titik (.) juga display format untuk tanggal dan currency. Sementara, MySQL mengenal regional-nya USA. Aku ganti regional setting via CP, Gubrak!!!! Banyak banget code program yang kudu di ganti… dan hasilnya ngga sesuai dengan keinginan (ngga lazim, masak Rp 1,000,000.00 — ejaan mana nih??)
    So, belum ketemu nih!! Kalo pakai NAVICAT bisa mengatasi masalah ini ngga?? Mksh MASTER.

  39. mas tolong bantuin saya donk

    saya ada tugas besar untuk mata kuliah provis

    saya disuruh membuat program database menggunakan delphi,,tapi database nya pake postgreesql…

    mas gimana ci cara menggunakan postgreesql

    saya ndak bisa

    tolong bantuin ya mas

    thanks before

  40. pagi mas,..

    kalau delphi saya pake zeos trus mau saya koneksikan ke MYSQL pada komputer server yang punya IP Public gmn y? kok beberapa kali saya coba gagal trus..

    manajemen usernya sudah saya atur anyhost kok tetep g bisa y?apa pengaruh lewati router?

  41. assalamu’alaikum,

    terima kasih banyak tas tulisannya,
    slama ini sy cma pake acces n paradox buat dbasex. mngkin dengan tulisan ni sya bisa bljr bxk.

    sekalian mo tnya, apakah beda jika sya menggunakan sql front sbagai dbasex. lo mang bda, dmn sih letak perbdaanya?

    thank’s

    • libmysql.dll harus dikopi ke %SYSTEM32% dan %DELPHIFOLDER%\Bin. Dan harus ada kesesuaian antara versi Delphi dan versi MySQL yang dipake….

  42. gimana settingan ODBC nya jika mysql servernya diinstall di komputer lain misal : komputer saya IP nya 192.168.1.7, terus msql servernya diinstal di 192.168.1.8
    saya menggunakan conector/odbc

    thx

    • ODBCnya tinggal disetting sesuai IP komputer tempat MySQL diinstal, yaitu 192.168.1.8. Sesuaikan dengan password dan usernamenya. Trus di MySQL, ditambahkan user dari host 192.168.0.7….

  43. Mas…halow..
    sy jg ky mas yhan
    pesan erornya can’t load libmysql.dll’ knap ya???

    sy ud install mysql server 5..trus didlm folder mysql\bin\
    ada libmysql.dll ud aku copy ke system32
    tp tetep gak konek..
    kan kt mas kd copy jg ke %DELPHIFOLDER%\Bin.
    nah maksudnya apa gt DELPHIFOLDER\BIN…?
    tolong pencerahannya..

  44. Mas..sy udh tau delphifolder\bin
    krn saya pake delphi 6
    maka saya copy libmysql.dll yang saya ambil dari mysql
    server 5 dari folder mysql\bin
    ke folder delphi6\bin dan windows/system32
    tp saat saya klik test connection tetap saja
    tertulis
    “Unable to load libmysql.dll”
    kenapa yah ????

    Sy rasa delphi 6 dan mysqlserver 5 ud kompatibel…
    tp kenapa tetep gak bisa connect…????
    tolong dibantu ya Mas Joko…thanks..

    • buat mas kurnia,..
      kl gitu untuk delphi 6 bisanya pake mysql server berapa?
      misal sy pake delphi 7 mending pake mysql server berapa?

  45. Klo delphi 7 bisa koneksi dengan mysql server yang berversi 4.
    klo untuk delphi 6 Q lom pernah coba dengan sql 4 coba aja dulu.

  46. mas sy mau tanya cara filter tanggal berdasarkan bulan pakai delphi. terima kasih.

    ini programnya tp error , salahnya dimana ya.
    ADOTDafTam.Filtered:=False;
    ADOTDafTam.Filter:=’month(TglM)=’+QuotedStr(‘month,(date())’);
    ADOTDafTam.Filtered:=True;

  47. Kemungkinan yang seharusnya seperti ini:

    ADOTDafTam.Filtered:=False;
    //–baris berikut:
    ADOTDafTam.Filter:=’month(TglM)=month(‘+QuotedStr(date())+’)';
    //–
    ADOTDafTam.Filtered:=True;

  48. mas joko yang baek,saya mo tanya soal koneksi delphi ke mysql nih…

    jadi saya kan mo bikin program multiuser dimana database-nya (pake mysql) ada di komputer server…

    nah otomatis kan tar database di program client-nya IP-nya harus diset IP server….

    pertanyaan saya,ada gak script/syntax program yang memungkinkan user (client) utk me-masukkan IP server melalui program???

    kalo saya pake VB biasanya pake syntax kayak gini :

    =========================================
    Set cn = New ADODB.Connection
    cn.CursorLocation = adUseClient
    cn.ConnectionString = “DRIVER={MySQL ODBC 3.51 Driver};” _
    & “SERVER=” + Trim(server.Text) + “;” _
    & “DATABASE=” + Trim(txtdatabase) + “;” _
    & “UID=root;” _
    & “PWD=root;” _

    =========================================
    jadi kalo servernya dipindah tinggal ganti alamat IP lewat program….gitu maksud saya….

    makasih banyak sebelumnya….

  49. Mas… salam kenal…
    Mau tanyani…. saya buat program pake delphi terus databasenya pake mysql…
    di tabel mysql ada field “JamProses” XYZ dengan type data time….
    pada saat simpan data ke table mysql lancar-lancar saja tapi pada saat ambil data “jamProses” untuk ditampilkan di program delphi malah yang muncul cuman angka kayak 345545 dan bukan yang diharapkan misalnya 13:23:56…

    bisa bantu gimna cara nampilkan data jam yang ada di mysql ke program delphi….
    terima kasih….

    kalau boleh jawab ke email aku ya….
    di aandrie77@yahoo.com

  50. Salam, kenal…

    Aku ada rencana mau buat program database yg bisa diakses melalui jaringan.

    aku baru dengan MySql, jadi mohon bimbingannya.

    aku download MySql Server 5.1, proses install berjalan lancar, tapi pada saat configure wizard, start service-nya selalu gagal. Gmana solusinya? sebelumnya terima kasih.

    oh ya, aku dah lama gak berinteraksi sama Delphi, terakhir pake Delphi5, sebentar Delphi6 dah itu …

    Baru-baru ini aku install Delphi 2007.

    bravo Delphi.

  51. mas joko saya sangat tertarik dengan semua tulisan anda. yang java ada gak?
    oh ya……kalau boleh saya minta konektor delphi dengan mysql yang pakai ZEOS dbo yang dulu pernah dipostingkan sama mas…
    ni alamat emailku (zoack@yahoo.com)
    makasih…!

  52. mas joko,
    salam kenal.

    mau bertanya dong,,,
    punya link yg menjelaskan untuk membuat Menu user untuk login dengan koneksi databasenya ke MySQL.
    saya menggunakan Delphi 7 dan MySQL Front 2.5 untuk koneksi nya saya pake dbExpress.

    oh ya saya pernah coba ikuti referensi di buku, tapi saya ada kesulitan dengan codingnya,yaitu : untuk function .Findkey , .editkey koq tidak muncul ya pada saat saya coba menulis coding nya di Delphi 7, salahnya dimana ya ..

    Thanks sebelumnya.

  53. Mas Buat Aplikasi Point Of sales donk..or paling gak buat aplikasi transaksi penjualan..cari contohnyadi google gak ktmu sma skali…tny di salah satu komunitas delphi jg malah disemprot suruh cr sendiri…soalny slama ini cm adany dibuat dr VB..

    • Aplikasi POS kan cukup komplit, jadi untuk membuatnya dalam tutorial sepertinya gak mungkin. Harusnya sebuah buku. Maaf kalau jawaban ini mengecewakan, tapi memang, aplikasi POS cukup kompleks untuk masuk ke tutorial, apalagi untuk posting forum :)

  54. Mas aku newbie neh di dunia Delphi …
    Aku mau tanya , gimana caranya bikin backup restore menggunakan delphi dengan databaseny SQL Server??????

    Aku udah coba ngobok2 di mbah google tapi ga ketemu2 mas…..

    Terimakasih sebelum dan sesudahny ^0^

    • Tambahkan sebuah ClientDataSet dan sebuah DataSetProvider – keduanya dari page Data Access – trus hubungkan DatasetProvider ke dataset yang dipake untuk mengambil data dari server, melalui properti DataSet. Trus, hubungkan ClientDataSet ke DatasetProvider tsb. melalui properti ProviderName.

      1. Backup.
      Bila koneksi ke server sudah aktif, silahkan gunakan

      ClientDataSet1.SaveToFile('c:\backup.cds');
      

      untuk membackup data ke komputer lokal.

      2. Restore.
      Buat sebuah aplikasi baru dan tambahkan sebuah ClientDataSet. Dengan menggunakan

      ClientDataSet1.LoadFromFile('c:\backup.cds');
      

      Anda dapat meload lagi data dari komputer lokal.
      Kemudian, tiap baris data pada ClientDataSet ini dieksekusi dengan perintah SQL insert untuk mengupload data ke server. SQL Update dapat digunakan untuk mengupdate data yang telah ada….

      Mohon maaf, ini cuma sepintas urut-kerja backup dan restore data. Anda dapat mengembangkan lebih lanjut.

      Tiap pertanyaan Anda akan saya usahakan untuk dijawab… :)

      Salam Kenal.

  55. trimakasih atas informasinya, sangat penting bagi saya karena saya baru belajar delphi ma mysql. tolong ya mas informasinya yang ter baru. kirin ke email saya ya mas ……………………….. !

  56. Mas Joko Maav Pertanyaan rada nyeleneh ..
    Ajarii cara pencocokkan dengan data Query dunk …
    Bingung nech implementasinya di delphi …
    Makasii maz sebelumnya ..

  57. mas bagian centrang v ngetes koneksi jalan ga..
    ada konfirmasi “Failure to connect : Unable to load libmysql.dll”
    ituh maksudtnya apa yah mas..

    tolong dibalas,.,,

  58. numpang tanya sm mas joko, kl mw buat tabel di SQL server misalnya barang dengan field kd_barang,nm_barang,stok dan harga.jenis datanya apa aja yah?trs juga untuk koneksi delphi 6 dan SQL server 2007 saya mau pake ADO untuk syntax ADO Query INSERT, UPDATE, DELETE DAN SELECT gimana yah?kalo untuk jenis text c dah ada gambaran, cuma untuk tipenya angka tu gmn.terimakasih sebelumnya

  59. Buat rekan2 yang serius bikin program spesialis database n konek ke sembarang database coba deh pake VFox Pro dijamin dalam waktu yang sama, sama2 dari Nol pasti lebih cepet bisa pake VF….diJamin

    • Betul, tapi bila aplikasi database akan dikombine dengan teknologi lain, misalnya multi OS (cross platform), multi-tier, hardware, gaming dsb., FoxPro punya keterbatasan. Itulah kenapa tulisan ini ada :)

  60. mas mo tanya klo dbexpress bisa koneksi dengan mysql 5 ke atas gak? oh ya mysql sudah bisa melakukan fungsi mirroring database gak?, makasih

  61. Mas untuk akses MySql 4.1 dari remote gmana ya?
    MySql 4.1 sy install dan run di komp. 1 ip;192.168.000.001 sementara br ada user root berpassword.
    saya mau akses dari komp 2 yg terkoneksi jaringan.

  62. maaf sy msh awam di mysql.
    lanjut pertanyaan sebelumnya. di komp 2 apakah harus diinstall mysql juga?
    untuk melihat dan merubah hak akses dari host ‘%’ bgmana caranya?
    Sy sudah login dri komp 2 yg terinstall mysql4.1 dng perintah Mysql -h 192.168.000.001 -u root -p,
    tp tdk berhasil.

  63. berikut pesan errornya:
    ————————
    C:\>mysql -h 192.168.000.001 -u root -p
    Enter password: *********
    ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.000.001’ (10060)
    ———————————–

    • Masa’? Saya sudah coba pada komputer saya (IP 192.168.1.3) dan melakukan koneksi ke host mysql (IP 192.168.1.4) dengan perintah:

      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      D:\mysql\bin>mysql -h 192.168.001.004 -u root -p
      Enter password:
      Welcome to the MySQL monitor. Commands end with ; or \g.
      Your MySQL connection id is 221
      Server version: 5.1.37 Source distribution

      Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
      ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      Dan koneksi sukses kok.

      Untuk kasus error nomor 10060, kemungkinan terbesar adalah port daemon mysql diblok oleh firewall. Anda perlu membuka port 3306 untuk mysql.exe / mysqld-nt.exe agar dapat diakses dari host lain.

      Anda dapat melihat diskusi lebih lanjut tentang hal ini di
      http://forums.mysql.com/read.php?34,49742,49742#msg-49742.

      HTH :)

  64. ————————————————
    c:\>mysql -h 192.168.000.001 -u root -p
    Enter password: *********
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 1 to server version: 4.1.22-community-nt

    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

    mysql>
    ——————————

    Yup! ternyata memang firewall masalahnya!
    terima kasih banyak atas pengetahuannya.
    nanti klo ada masalah sy posting lg.

  65. Ok deh nanti sy cari dulu Delphi 2009 or 2010 nya.

    sementara sy pake delphi 5 dulu.
    Mas sy ada trouble lagi nih.
    sy punya:
    table customers {id(int), nama(varchar), …}
    table orders {NomorOrder(varchar), IdCus(int), …}

    sy menggunakan DBLookupCombobox sebagai lookup field IdCus pada table Orders
    setting sbb:
    datasource=datasourceOrders
    datafield=IdCus
    listsource=datasourceSQLcustomers (SELECT id, nama FROM customers ORDER BY nama)
    listField=nama
    KeyField=id

    sy jg membuat dbgrid orders untuk browse orders. pada saat sy input/edit data di gridini pd field IdCus muncul error: ‘invalid variant operation’

    mohon bantuan solusinya?

  66. IdCus kan didapat dari Lookup, jadi jangan diisi langsung pada DBGrid.
    Ini cuma problem umumnya saja. Tergantung pada jenis database dan jenis antarmuka koneksi, apakah DBExpress, Zeos, ADO, atau lainnya.

    Bila ingin peningputan langsung pada DBGrid juga menggunakan Lookup, sebaiknya Anda membuat sebuah Definisi Field pada dataset Orders. Caranya, klik kanan pada dataset Orders dan klik Field Editor… Klik kanan lagi dan pilih New Field (Pastikan dataset Orders tidak aktif).
    Beri nama field yang sesuai, misalnya “Customer_Name”, bertipe string dan field type diset ke Lookup. Atur Key FIelds dengan field yang sesuai, yaitu IdCus.
    Set Dataset ke dataset Customers.
    Atur Lookup Keys ke id (milik dataset Customers).
    Atur Result Field ke nama.
    Klik OK.

    Nah, Anda sudah punya field baru, yaitu “Customer_Name”, yang bisa dipake di DBGrid. Bila kolom ini diklik pada DBGrid, akan muncul sebuah ComboBox yang memudahkan Anda memilih Nama Customer, gak usah pake ketik IdCus segala.

    Happy Coding :)

  67. Wah mantebbbb euy :), thanks verry much.

    selalu saja masalah yg muncul, ga apa-apa kan? :).
    sebelum pake lookup di grid order sy sdh buat coding untuk sorting pada saat klik column title.

    nah klo dah ada field customer_name, gmana sortingnya, karena customer_name kan hanya field bayangan (kira2 gitu kali yah). jadi pada saat klik titlenya and sorting, error [1054] unknown column ‘Customer_Name’ in ‘Field list’. saya sdh lama gak ngedate sama delphi (makanya delphi ane masih si sulung -delphi 5- he.. he..) sambil sy otak-atik lagi. mohon solusi yang paling umum dan sederhana.
    Sebelumnya sy ucapkan terima kasih.

    Oh ya, database mysql4.1 interface koneksinya pake Mycomponents-nya scibit (scibit.com)

    berikut listing sortignya:
    sy buat form sorting, yang muncul saat columntitle grid order. tampilannya mirip punyanya access 2007

    procedure TF_Orders.DBGrid3TitleClick(Column: TColumn);
    var mouse:TMouse;
    p:TPoint;
    begin
    p:=Mouse.CursorPos;
    setCTOrders(DBGrid3);
    with F_SortingMenu do begin
    Panel2.Caption:=column.Title.Caption;
    index:=column.Index;
    Top:=p.y;
    Left:=p.x;
    ShowModal;
    end;
    end;

    procedure TF_Sortingmenu.FormActivate(Sender: TObject);
    var f,strSQL:string;
    i:integer;
    begin
    DataKolom.SQL.Clear;
    f:=F_Orders.DBGrid3.Columns[index].Field.FullName;
    strSQL:=’SELECT DISTINCT ‘+ f + ‘ FROM Orders ORDER BY ‘ + f + ‘ ASC';
    DataKolom.SQL.Add(StrSQL);
    DataKolom.Active:=true;
    //isi list dan checked
    with clsort do begin
    Items.Clear;
    Items.Add(‘(Pilih semua)’); checked[0]:=true;
    items.Add(‘(Blaks)’); checked[1]:=true;
    end;
    i:=2;
    DataKolom.First;
    if not ((DataKolom.RecordCount=1)and(DataKolom.fieldbyName(f).asstring=”))then
    While Not DataKolom.Eof do begin
    ClSort.Items.Add(DataKolom.fieldbyName(f).asstring);
    Clsort.Checked[i]:=true; inc(i);
    DataKolom.Next;
    end;

    end;

    procedure TF_Sortingmenu.Button2Click(Sender: TObject); //sorting ok
    begin
    F_sortingMenu.Close;
    end;

    procedure TF_Sortingmenu.Button1Click(Sender: TObject);
    var sort,strSQL,f,kondisi:string;
    i,j:integer;
    s: array of string;
    begin
    if RGSort.ItemIndex=0 then sort:=’ ASC';
    if RGSort.ItemIndex=1 then sort:=’ DESC';
    f:=F_Orders.DBGrid3.Columns[index].Field.FullName;
    setlength(s,ClSort.Items.Count); j:=1;
    strSQL:=’SELECT * FROM Orders ‘;
    for i:=2 to (CLSort.Items.Count)-1 do begin
    if clsort.Checked[i] then begin
    inc(j);
    if index=2 then s[j]:='”‘+ClSort.Items[i]+'”‘
    else s[j]:=ClSort.Items[i];
    end;
    end;
    kondisi:=”;
    for i:=2 to j do begin
    if i=j then kondisi:=kondisi+f+’=’+s[i]
    else kondisi:=kondisi+f+’=’+s[i]+’ or ‘;
    end;
    if ClSort.Items.count<=2 then //data kosong
    strSQL:=strSQL+'ORDER BY '+f+sort
    else
    strSQL:=strSQL + 'WHERE '+ kondisi +' ORDER BY ' + f +sort;
    with F_Orders.MySQLDataset1 do begin
    SQL.Clear;
    SQL.Add(StrSQL);
    Active:=true;
    end;

    F_Orders.SetCTOrders(F_Orders.DBGrid3);
    F_Orders.DBGrid3.Columns[index].Title.Font.Color:=clred;
    if RGSort.ItemIndex=0 then
    with F_Orders.DBGrid3.Columns[index].Title do
    caption:=' ^ '+caption+' ^ ';
    if RGSort.ItemIndex=1 then
    with F_Orders.DBGrid3.Columns[index].Title do
    caption:=' v '+caption+' v ';

    F_SortingMenu.Close;
    end;

    mohon sarannya. :) :)

    • Defined field tak dapat dipake untuk mengambil data dengan sql. Anda bisa memeriksa if column.fieldname=customer_name then namafield:=idcus. Cara lain, gunakan property dataset: Dataset.sortfield Dataset.sorttype Maaf, update via hp jadi gak bisa panjang lebar.

      On Thu, 18 Feb 2010 12:27 ICT

  68. ok deh, terima kasih banyak.

    ya, selama ini juga sy pake cara pertama (memeriksa column.fieldname) karena mysqldataset dari scibit gak ada property sortfield / sorttype-nya, jadi sorting manual pake property SQL.

    mas joko, lagi sibuk ya.. kayaknya order ya.
    sukses selalu,

    nanti klo ada problem sy share lg.

  69. Salam jumpa kembali Mas Joko.
    basa Mau tanya lagi nih.
    Bisa bantu cara format Number ke string currency pake delphi (mis: 23584658 -> Rp 23.584.658 ,-).
    Kaya di fields.displayformat
    sy masih pake delphi 5, delphi 2007 nya msh blm ada SN
    Klo ada yg punya sn-nya boleh donk share
    sebelumnya makasi buat mas joko

  70. ups…
    ini dia rupanya

    var x:extended
    y:string;
    begin
    x:=12345678;
    y:=FloattoStrF(x,ffCurrency,12,2); //= Rp12.345.678,00
    end.

    maaf dah ganggu

    viva delphi

  71. Saya pake D2009.
    FloatToStrF() berjalan bagus. Tapi pas diubah locale format via kode, kok error ya?

    CurrencyString:='Rp';
      DecimalSeparator:=',';
      ThousandSeparator:='.';
      edit1.Text:=FloatToStrF(12345678, ffCurrency, 12, 2);
      //Result ---> 'R' . Whatta Hell???
    
  72. Sayang ya sy blm ada D2009 nya, jd sy blm bisa share.
    Tapi di D5 berjalan lancar tuh:
    ——————————————————————————–
    Currencystring:=’Rp ‘;
    DecimalSeparator:=’,';
    Thousandseparator:=’.';
    Edit2.Text:=FloatTostrF(12345678,ffcurrency,12,2);
    //Result Rp 12.345.678,00
    ————————————————————————————–
    Semoga sukses.

  73. semoga Kabar baik mas Joko.

    mas, sy mau nanya.
    bagaimana untuk menampilkan variable bertype Tcolor (mis. clwhite …, $004080FF…, ke varible string).
    Terus untuk menyimpan TColor ke registry gmana?

    Terima kasih mas, semoga sukses

  74. Untuk mengubah TColor ke string, saya biasanya menggunakan:

    procedure TForm1.Edit1Click(Sender: TObject);
    var
      CL: TColor;
      r, g, b: Byte;
      sr, sg, sb: String;
    begin
      CL:=Self.Color;
      r:=GetRValue(CL);
      g:=GetGValue(CL);
      b:=GetBValue(CL);
      sr:=IntToHex(r, 2);
      sg:=IntToHex(g, 2);
      sb:=IntToHex(b, 2);
      Edit1.Text:='$00'+ sb+sg+sr;
    end;
    

    Sedangkan untuk menyimpan Color ke Registry:

    procedure TForm1.Edit1Click(Sender: TObject);
    var
      Reg: TRegistry;
    begin
      ShowMessage('Warna Form akan diubah ke biru.');
      self.Color:=clBlue;
      Reg:= TRegistry.Create;
      Reg.RootKey:=HKEY_CURRENT_USER;
      Reg.OpenKey('MyColors', true);
      Reg.WriteInteger('Form1_Color', Self.Color);
      ShowMessage('Warna Form disimpan. Form akan diubah ke Hitam.');
      Self.Color:=clBlack;
      ShowMessage('Warna Form akan diubah sesuai yang tersimpan di registry.');
      Self.Color:=Reg.ReadInteger('Form1_Color');
      Reg.CloseKey;
      Reg.Free;
    end;
    
  75. Oh, ya, jangan lupa tambahkan unit Registry ke klausa uses pada unit yang menggunakan kode di atas. Misalnya:

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Registry;
    
  76. oh jadi klo warna di-save ke registrynya sebagai integer ya, tadinya sy kira Tcolor di convert dl adi string baru disimpan ke registry sebagai string, demikian sebaliknya. :) Ok deh terima kasih mas, skrg jd tahu.

    just share: untuk Color to string delphi punya function bawaan ColorToString() dan sebaliknya StringToColor()

    01 procedure TForm1.Edit1Click(Sender: TObject);
    02 begin
    03 Edit1.Text:=ColorToString(Self.Color);
    04 end;

      • Biasanya pake ginian:

        procedure TForm1.Button1Click(Sender: TObject);
        var
          ts: TTabSheet;
        begin
          ts:=TTabSheet.Create(PageControl1);
          ts.PageControl:=PageControl1;
          ts.PageIndex:=PageControl1.PageCount-1;
          ts.Caption:='Page '+ IntToStr(ts.PageIndex);
          ts.Brush.Color:= RandomRange(clYellow, clBlue);
          ts.Brush.Style:=bsSolid;
          //Aktifkan TabSheet terakhir:
          PageControl1.ActivePage:=ts;
        end;
        
  77. boss, mo nanya nech. :)
    gmana caranya mengatur/menhubungkan DBGrid.title dengan header control?

    thank’s before

    viva delphi

  78. halo thanks utk tulisannya, tapi koneksinya kenapa ngak jadi ya, udah ikut instruksinya.
    mau coba koneksi tapi ditulis failure to conect: unable to load mysqllib.dll.
    gimana ya supaya koneksinya bisa? saya masih pemula.
    thanks

  79. Om Joko… saya sudah mengikuti apa yang ditulis diatas… tapi pada saat mengkoneksikan sqlconnection terdapat tulisan unable to load libmysql.dll… padahal saya sudah ikutin persis dengan apa yang diperintahkan di blog ini… trimmss sebelumnya..

  80. salam kenal mas jo, mau tanya Quick report.. gimana nampilin fiedl di qrp, jika recordnya lbh dari 1, misal gini, karyawan 1 memiliki anak, anak 1 : tunjangan Rp…., anak 2 : tunjangan Rp…. dst, jadi di qrp mesti ditampilin smuanya berdasarkan index, krn no karyawan no unique. tks mas jo

  81. mw nanya mas,
    saya kan buat di mysql tabel yg isi field “tgl_lahir” dgn tipe data “date” (yyyy-mm-dd)
    trus, gmn cara di delphi biar user bisa nginput dalam format dd-mm-yyyy?

    mohon bantuannya, soalnya saya baru 2 hari blajar delphi.. hehehe

  82. @Hutama: lihat juga komentar2 di atas bro. Dah ada jawabannya kok.
    @Nas: kurang jelas. Panjangin aja biar clear :)
    @Mega: Di dataset (SQLTable atau SQLQuery), klik kanan dan pilih Field Editor. Klik field tgl_lahir, dan pada property Display Format di Object Inspector, masukkan
    dd-MM-yyyy {perhatikan huruf besar & kecilnya}

    • Mas, biar program pakai ZEOS dan database MS SQL bisa jalan di komputer client, yang tidak ada DELPHI dan ZEOS, apa yang harus dilakukan ya?

      Terima kasih.

  83. bang, mw nanya dong…
    saya pakai delphi 6 dan mySQL 5.1

    waktu sy melakukan koneksi dbxpress ke mySQL muncul pesan error DBX error:invalid “username/password”

    padahal username dan password yg sy masukkan sudah benar…
    kira2x masalahnya apa…
    thx b4

  84. bang joko saya udah pake zeos dan mysql 4.1 serta delphi7 semua udah terkoneksi dg baik tp knp pada saat akan di RUN kok eror mhon pncerahanya bang
    thanks

  85. bang, saya lagi nyoba delphi 2010… saya juga pake mysql 5.2..
    pas saya melakukan koneksi dgn dbexpress muncul persan error ‘cannot load libmysql.dll’…
    sebelumnya saya memakai libmysql nya mysql-front…

    kalo bole tau,, untuk delphi2010, lebih kompatibel dg mysql apa ya…???

  86. Bagaimana kalo saya pake mysql yang sudah terinstall dari apache, apa perlu di instal mysql server juga?
    Saya sudah coba koneksi ke mysql tapi pesan error yang tampil,
    “Faillur to connect:dbexpress error ………

    mohon pencerahannya

    terimakasih

    • Agan :

      Bagaimana kalo saya pake mysql yang sudah terinstall dari apache, apa perlu di instal mysql server juga?
      Saya sudah coba koneksi ke mysql tapi pesan error yang tampil,
      “Faillur to connect:dbexpress error ………

      mohon pencerahannya

      terimakasih

      Bisa saja. Gak ada masalah. Bila Anda ikuti semua komentar di atas, yang jadi penyebab error adalah tidak kompatibelnya versi MySQL dengan Library DBExpress bawaan Delphi.
      Saran saya, gunakan ZEOS sebagai alternatif terhadap DBExpress. Untuk Delphi 2009 dan 2010, silahkan ikuti di sini.

  87. mas… saya sedang membuat aplikasi sederhana menggunakan delphi6 dgn database msaccess 2007, tapi saya ada kesulitan agar aplikasi saya bisa multiuser, terus database saya kalau dipakai password kok pada saat runing aplikasi kenapa diminta masukin pasword ya.. saya lagi kebingungan bagaimana cara ngatasinya, makasih ya.. atas bantuannya, sukses untuk indonesia.

  88. Pakai MS Access memang sulit untuk multiuser. Karena memang target MS Access bukan multiuser, tapi single user. Access belum termasuk RDBMS (Remote Database Management System) dan tidak mendukung koneksi klien-server, tapi berbasis file sharing. Jadi kecepatan transfer data dan kemudahan instalasi pada sisi user sangat sulit. Jadi saya menyarankan Anda untuk menggunakan RDBMS seperti MS SQL Server, Interbase, MySQL, PostgreSQL atau Firebird. Tiga yang terakhir ini gratis dan open source.

    “terus database saya kalau dipakai password kok pada saat runing aplikasi kenapa diminta masukin pasword ya”

    Ya iya lah. Kan pakai password? Bila maksud Anda, bahwa Anda telah mengatur password tapi masih minta juga, coba lihat property LoginPrompt pada ADOConnection dan set ke False. Semoga membantu.
    Sukses buat Anda.

  89. bang…….n tmen tmen semua…..
    saya mau tanya ,,,, saya sudah buat database lewat sql server , dan OOPnya pake delphi 6…saya mau merubah database yang sama jadi mySql
    gimana bang cara untuk merubahnya,,,,?
    trus gimana juga proses untuk koneksinya bang dari Mysql ke delphi????

    mohon Confirm thax
    monangadicandra@gmail.com

    • kak…….pertanyaan yang sama,,,hehehehe
      saya mau tanya ,,,, saya sudah buat database lewat sql server , dan OOPnya pake delphi 6…saya mau merubah database yang sama jadi mySql
      gimana bang cara untuk merubahnya,,,,?
      trus gimana juga proses untuk koneksinya bang dari Mysql ke delphi????

      mohon Confirm thax
      monangadicandra@gmail.com

    • Bang thankx buat confirm solution di coba dulu…….

      oya bang tolong donk di share untuk belajar delphi lebih lengkap…..Pengen tahu lebih banyak lagi…
      semoga web posting semakin mantap…

      GB……

    • +pagi bang…..
      bang yang mana dan gimana cara downloadnya????
      tampilannya seperti ini bang…..
      Users of the MySQL GUI Tools Bundle should plan to upgrade to MySQL Workbench.

      MySQL Workbench provides DBAs and developers an integrated tools environment for:
      Database Design & Modeling
      SQL Development (replacing MySQL Query Browser)
      Database Administration (replacing MySQL Administrator)

      Download MySQL Workbench »
      MySQL GUI Tools: Archived Online Documentation
      MySQL Administrator Documentation
      MySQL Query Browser Documentation
      MySQL Migration Toolkit Documentation
      MySQL GUI Tools: Archived DownloadsWindows downloads

      The install package uses the Windows Installer, which is built in to Windows XP and more recent Microsoft Windows versions.

      Download an updated Windows Installer for Windows 2000
      Windows (x86) 5.0-r17 16.9M Download
      MD5: a389ba3831bfb8497ebafab81ae8a7db
      Without installer (unzip in C:\) 5.0-r17 16.1M Download
      MD5: 54593fd76f2fb13a2f6c5ac4a

      mohon confirm…
      thannkkss..

      mari berjuang terusss

  90. sore mas, saya mo ikut nimbrung nih. cara agar printer ngeprint langsung tanpa preview dahulu sesuai yang saya desain di-QReport-nya delphi, jadi maksudnya langsung cetak, kayak dikasir gitu… makasih ya penjelasannya.

  91. Oy bang One more only one…………

    Koneksi pake Zeos Itu, bisa di pakai di delphi 6 bang?????
    Mohon Confirm….. Thanks

  92. saiful anwar :

    sore mas, saya mo ikut nimbrung nih. cara agar printer ngeprint langsung tanpa preview dahulu sesuai yang saya desain di-QReport-nya delphi, jadi maksudnya langsung cetak, kayak dikasir gitu… makasih ya penjelasannya.

    Anda dapat mengatur printer default di Control Panel. Pilih printer yang akan digunakan. Kemudian di aplikasi, Anda dapat menggunakan kode berikut:

      QuickRep1.Print;
    

    Namun jika tiap kali pencetakan Anda ingin mengatur printer, gunakan kode berikut:

      QuickRep1.PrinterSetup;
      QuickRep1.Print;
    

    Semoga menjadi jawaban bagi pertanyaan Anda :)

  93. Pagi…..
    Bang N Tmen2 master delphi semua……………
    Mw Share nich….
    1. saya belajar buat sistem pakar tentang diagnosis kerusakan mobil, gimana ya cara buat Log In admint?? saya pengen nantinya waktu running pertama muncul adalah Log In dulu plizzz + scripnya yach,,,,,,,,heheheh
    2. only one,,, gini dalam didalam aplikasi sistem pakar saya ini saya pengen setiap saya pilih komponen maunya muncul gambar di setiap komponen yang saya pilih, agar interface program lebih menarik,, nah gimana temen2 carannya????? +scripnya juga yaach…..

    mohon confirm
    thx master delphi ……..

    maju terus ……semangat……..

  94. mas.. ikutan lagi nih.. cara ngambil tanggal sekaligus jam server bagaimana ya, saya menggunakan zeos dan delphi 6. penjelasannya mohon yang detil ya…. saya belum tau mengenai server nih… sukses buat anda dan team

  95. wuih susah banget ya myari referensi untuk nampilin data gambar .jpg yang ada di database mysql di tampilin dengan delphi -__- udah puyeng . tp benernya delphi isa gak ya ? + database nya itu isa di update .

  96. salam kenal..
    mas joko aku minta tolong…aku make Delphi 5 yang da di update ADO nya..tapi kok pas konek ke DB mYSQL mucul pesan “Data provider or other service retuned an E_FAIL status”
    mohon bantuannya..

  97. mas joko saya uda install mySql..tetapi saat diuji di command promp ga berhasil.saat enter password muncul ERROR 2003: Cant,t connect to mySql server on ‘localhost’ (10061).
    kira2 masalahnya apa ya mas..makasi sebelumnya…

  98. Sudah lama saya mencari informasi mengenai koneksi MySQL dengan Delphi, saya pikir artikel Mas Joko ini yang paling mudah saya cerna, lengkap dengan source code-nya lagi.
    Salam kenal dan terima kasih banyak.

  99. The only hurdle to accessing this is of course human limitations and the fact that the brain does not function solely as a learning tool for the human being.
    I believe my exact words were “I don’t want to be your dirty little secret. The buccal cavity is a small cavity that has neither jaws nor teeth.

  100. Salam Joint

    Mas Joko saya newbi di delphi, ada kosep yang belum terpecahkan tehnisnya, saya sangat berterimakasih jika dibantu.
    Saya bikin aplikasi dengan Java untuk android, database nya menggunakan SQlite database , konsep saya SQlite database dikonversi ke
    Sql database melalui dump file. Mohon pencerahan konsep program menggunakan delphi XE3 untuk merangkum proses mulai access SQlite Database, make dump file dan export ke Sql (PhpMyadmin).
    Terimakasih banget atas bantuannya.

  101. Hi there! This post couldn’t be written any better!

    Reading through this article reminds me of my
    previous roommate! He constantly kept talking about this.
    I most certainly will send this article to him. Pretty sure he’s going to have a very good read.
    Thanks for sharing!

  102. I’ve been exploring for a little bit for any high quality articles or weblog posts in this kind of house . Exploring in Yahoo I ultimately stumbled upon this site. Reading this information So i am satisfied to show that I have an incredibly good uncanny feeling I discovered just what I needed. I most undoubtedly will make sure to do not overlook this site and give it a look on a relentless basis. http://cort.as/DDyd

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s