Saturday, June 04, 2005

Menggunakan MySQL sebagai database

Kelemahan menggunakan access adalah sangat lambat. sedangkan SQL Server harganya sangat mahal. Kita juga sulit mencari server yang menyediakan SQL Server dengan harga yang murah.
Solusinya adalah dengan memakai MYSQL database yang cukup cepat dan terkenal dan
gratis

untuk menjalankan MySQL kita harus mendownloadnya dulu dan
juga mendownload driver ODBC nya
(pilih Windows Downloads Driver Installer)

untuk connectionstring nya memakai
"DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=testdatabase"


contoh dibawah ini memakai MySql sebagai databasenya
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.Odbc" %>
<%@ Page Language="C#" %>


public void Page_Load(Object sender, EventArgs e) {
DataTable dtRecords = GetDataTable("SELECT * FROM newone");
foreach(DataRow dr in dtRecords.Rows) {
Response.Write(dr["FirstName"].ToString() + " " + dr["LastName"].ToString() + "
");
}
}

private static string GetConnection() {
return "DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=testdatabase";
}
public static DataTable GetDataTable(string sql) {
DataTable rt = new DataTable();
DataSet ds = new DataSet();
OdbcDataAdapter da = new OdbcDataAdapter();
OdbcConnection con = new OdbcConnection(GetConnection());
OdbcCommand cmd = new OdbcCommand(sql, con);
da.SelectCommand = cmd;
da.Fill(ds);
try {
rt = ds.Tables[0];
}
catch {
rt = null;
}
return rt;
}

Beda session dengan application

ini mungkin sudah pernah ditanyakan sebelumnya, tapi berhubung belum ada yang membahas, maka singkatnya perbedaannya adalah:

session itu "seolah" variabel local bagi server dari semua client. pada suatu situs, misalnya untuk login menggunakan session, itu cukup wajar, karena misalnya session("username") dan session ("password") pada client A, client B, client C dan seterusnya secara normal adalah berbeda!
misalnya setelah tombol submit ditekan oleh client A dahulu baru client B (untuk site yang sama) maka server akan menerima session untuk client A usernamenya "AAA" dan paswordnya "passAAA" dan setelahnya session untuk client B usernamenya "BBB" dan passwordnya "pasBBB"
session-session untuk Client A nilainya tetap session("username")="AAA" dan session("password") ="passAAA" tidak terpengaruh oleh isi session client B, dan demikian seterusnya untuk client selanjutnya session untuk client B tidak akan dipengaruhi session client C yang melakukan submit, dan seterusnya lebih jauh lagi...

Sedangkan application, itu seolah adalah variabel global dari server untuk semua client. Misalnya untuk situs lelang, katakanlah application("hargamobilkuno") Misalkan client A menawarkan $1000, maka nilai application("hargamobilkuno")="1000"
Begitu client B mengakses application tersebut, nilainya adalah "1000" bukan null atau undefined. Dan bila client B melakukan penawaran $1500, maka nilai menjadi berubah untuk application("hargamobilkuno")="1500" dan pada saat client A mengakses application("hargamobilkuno") nilainya sudah berubah menjadi "1500" begitu seterusnya. Bila ada client C melakukan perubahan pada application("hargamobilkuno") maka client A dan B akan mengetahui perubahan tersebut, demikian seterusnya...

Jadi kesimpulannya, session digunakan untuk menyimpan nilai yang butuh personalisasi client, dimana setiap client mempunyai nilai yang berbeda (meskipun mungkin juga kebetulan sama). update nilai session dari satu client tidak akan mempengaruhi session client yang lain.

sedangkan application digunakan untuk menyimpan nilai yang "dipublikasikan" di server, dimana update yang dilakukan satu client pada application tersebut berpengaruh pada client-client yang lainnya saat mengakses application tersebut

Property dan Method pada BCL untuk pengaturan warna

Biasanya untuk mengubah warna tampilan, user bisa memakai 3 cara, yaitu yang pertama adalah dengan representasi heksadesimal seperti
"#FFFF00", "#000000"...
Kedua, Menggunakan nilai desimal dalam css seperti rgb(255, 255, 0)" ...
Atau yang ketiga, menggunakan nama warnanya langsung seperti "yellow" .... dan lain sebagainya seperti black, white, ...

pada System.drawing.color tersedia beberapa method dan property untuk "bermain-main" dengan warna. Salah satu properti staticnya adalah seperti Color.red (seperti namanya, warna merah), Color.Black, dan sebagainya. Sedangkan properti-propertinya untuk RGB dan representasi heksadesimalnya menggunakan:

1. Color.FromArgb(red, green, blue)

misalnya untuk membuat background textbox menjadi Dark Hard Yellow contohnya:
'VB.NET...
TextBoxID.BackColor = Color.FromArgb(204, 204, 0)

// C#...
TextBoxID.BackColor = Color.FromArgb(204, 204, 0);

(catatan: saat ini hanya memungkinkan pada browser Internet Explorer)

2. ColorTranslator.FromHtml(string)
Untuk kasus yang sama, misalnya pada label contohnya:
'VB.NET...
LabelID.BackColor = ColorTranslator.FromHtml("#CCCC00")

// C#...
LabelID.BackColor = ColorTranslator.FromHtml("#CCCC00");