DELPHI DAN MYSQL
Pada dasarnya, ada dua cara untuk mengakses database MySQL dari aplikasi Delphi: menggunakan driver ODBC atau libraryt libmysql.dll.
ODBC
Pada situs web MySQL Anda dapat menemukan driver MySQL ODBC untuk Windows:
Pada dasarnya, ada dua cara untuk mengakses database MySQL dari aplikasi Delphi: menggunakan driver ODBC atau libraryt libmysql.dll.
ODBC
Pada situs web MySQL Anda dapat menemukan driver MySQL ODBC untuk Windows:
Setelah menginstal driver ini Anda dapat menggunakan komponen BDE Data Access atau komponen ADO untuk mengakses tabel atau untuk melakukan query pada database MySQL.
Untuk menggunakan ODBC, pertama-tama Anda harus membuat DSN menggunakan ODBC Data Sumber applet Control Panel. Sebagai contoh, saya membuat sebuah DSN bernama MySQL_Test dan dikonfigurasi untuk login di 'root' di MySQL server terletak di 'localhost' (Anda dapat terhubung ke sebuah remote server menggunakan alamat IP atau nama domain-nya) dan buka mysql ' 'database.
Dalam program Delphi anda harus menggunakan komponen TDatabase jika Anda tidak ingin BDE untuk menunjukkan standar prompt login. Anda harus menetapkan minimal properti berikut:
AliasName = 'MySQL_Test'
DatabaseName = 'MySQL_Test'
LoginPrompt = False
Dalam komponen Ttabel atau TQuery Anda harus mengatur properti DatabaseName untuk 'MySQL_Test' dan itu akan menjadi itu.
Keuntungan menggunakan ODBC adalah bahwa Anda dapat menggunakan Borland Datasets standar, dan Kerugian adalah bahwa Anda harus melalui dua lapisan untuk mendapatkan ke server MySQL (yang BDE dan driver ODBC), harus dikatakan bahwa bahkan dengan ODBC, MySQL masih lebih cepat dari server database lain.
Untuk menggunakan ODBC, pertama-tama Anda harus membuat DSN menggunakan ODBC Data Sumber applet Control Panel. Sebagai contoh, saya membuat sebuah DSN bernama MySQL_Test dan dikonfigurasi untuk login di 'root' di MySQL server terletak di 'localhost' (Anda dapat terhubung ke sebuah remote server menggunakan alamat IP atau nama domain-nya) dan buka mysql ' 'database.
Dalam program Delphi anda harus menggunakan komponen TDatabase jika Anda tidak ingin BDE untuk menunjukkan standar prompt login. Anda harus menetapkan minimal properti berikut:
AliasName = 'MySQL_Test'
DatabaseName = 'MySQL_Test'
LoginPrompt = False
Dalam komponen Ttabel atau TQuery Anda harus mengatur properti DatabaseName untuk 'MySQL_Test' dan itu akan menjadi itu.
Keuntungan menggunakan ODBC adalah bahwa Anda dapat menggunakan Borland Datasets standar, dan Kerugian adalah bahwa Anda harus melalui dua lapisan untuk mendapatkan ke server MySQL (yang BDE dan driver ODBC), harus dikatakan bahwa bahkan dengan ODBC, MySQL masih lebih cepat dari server database lain.
LIBMYSQL.DLL
Anda juga dapat mengakses server MySQL dengan menggunakan library libmysql.dll. file ini tidak datang dengan instalasi MySQL standar, namun Anda dapat download dari:
Anda juga dapat mengakses server MySQL dengan menggunakan library libmysql.dll. file ini tidak datang dengan instalasi MySQL standar, namun Anda dapat download dari:
http://www.dlldll.com/libmysql.dll_download.html
Anda juga harus mendownload file mysql.pas yang merupakan Delphi unit yang berisi deklarasi tipe untuk menggunakan library ini.
Anda harus menyertakan unit ini dalam menggunakan klausul setiap unit yang Anda inginkan untuk memanggil fungsi yang terdapat
di perpustakaan. Contoh Berikut akan membuka koneksi ke server MySql, membuka database,melakukan query dan menyimpan hasilnya dalam StringGrid,
dan akhirnya menutup koneksi. uses ..., mysql;
procedure TForm1.Button1Click(Sender: TObject);
var
mysqlcon: TMySQL; // MySQL-connection structure
presults: pmysql_res; // Pointer to a results structure
prow: pmysql_row; // Pointer to a row structure
pfields: PMYSQL_FIELDS; // Pointer to a fields array
i, j: Integer; // Counters
begin
// Connect to the server
mysql_connect(@mysqlcon, 'localhost', 'root', '');
if mysqlcon.net.last_errno <> 0 then begin
ShowMessage (Trim(mysqlcon.net.last_error));
exit;
end;
// Open the mysql database
if mysql_select_db(@mysqlcon, 'mysql') <> 0 then begin
mysql_close(@mysqlcon); // Disconnect
ShowMessage('Couldn''t open mysql database');
exit;
end;
presults:= nil;
try
// Send the query to the server and get the results
mysql_query(@mysqlcon, 'SELECT * FROM user');
presults := mysql_store_result(@mysqlcon);
// Set the size of the grid
StringGrid1.ColCount := presults^.field_count;
StringGrid1.RowCount := presults^.row_count + 1;
// Fill the grid header with the fields' names
pfields := presults^.fields;
for j := 0 to presults^.field_count -1 do
StringGrid1.Cells[j, 0] := pfields^[j].name;
// Fill the grid
for i := 1 to presults^.row_count do begin
prow := mysql_fetch_row(presults);
for j := 0 to presults^.field_count -1 do
StringGrid1.Cells[j, i]:= prow^[j];
end;
finally
mysql_free_result(presults); // Release memory
mysql_close(@mysqlcon); // Disconnect
end;
end;Seperti yang anda lihat, ini cukup rumit, dan ini merupakan utama (dan saya akan berkata saja, tapi sangat penting) kelemahan menggunakan library libmysql.dll. Keuntungan adalah bahwa Anda memiliki kendali penuh, bahwa itu lebih cepat daripada menggunakan ODBC, dan bahwa hal itu tidak requiere BDE tersebut. Akan menyenangkan untuk memiliki keturunan TDataset yang mengenkapsulasi API libmysql.dll ...
Tidak ada komentar:
Posting Komentar