Rabu, Maret 03, 2010

Visual Basic & MySQL Data Types

Mysql_logo

Dalam menentukan / mendeklarasikan jenis data dalam suatu aplikasi, harus kita perhatikan juga database (engine) yang akan digunakan. Hal ini dikarenakan adanya perbedaan (pandangan) mengenai type data. Untuk menghindari ke-khawatiran anda mengenai penentuan jenis data, dibawah ini ada tabel mengenai perbedaan “data type” antara Visual Basic dan MySQL.

Pada beberapa type data, Visual Basic menyimpan data lebih besar sehingga pada saat koneksi data dengan MySQL jadi tidak sesuai.

MySQL Datatype

Length

VB6 Datatype

Length

Notes

TINYINT

-128 to 127

integer

-32,768 to 32,767

*

TINYINT UNSIGNED

0 to 255

byte

0 to 255

SMALLINT
-32,768 to 32,767
integer
-32,768 to 32,767
SMALLINT UNSIGNED 0 to 65,535 long -2,147,483,647 to 2,147,483,647 *
MEDIUMINT -8,388,608 to 8,388,607
long -2,147,483,647 to 2,147,483,647 *
MEDIUMINT UNSIGNED
0 to 16,777,215 long
-2,147,483,647 to 2,147,483,647 *
INT -2,147,483,647 to 2,147,483,647 long -2,147,483,647 to 2,147,483,647
INT UNSIGNED 0 to 4,294,967,295 double 64 Bit 1*
BIGINT 64 Bit N/A N/A 2
FLOAT 32 Bit Floating Point single 32 Bit Floating Point
DOUBLE 64 Bit Floating Point double 64 Bit Floating Point
DECIMAL Variable Floating Point double 64 Bit Floating Point 3*
CHAR 1 to 255 Characters string 1 to Approx. 2,000,000,000 Characters *
VARCHAR 1 to 255 Characters string 1 to Approx. 2,000,000,000 Characters *
TINYTEXT 1 to 255 Characters
string
1 to Approx. 2,000,000,000 Characters *
TEXT 1 to 65535 Characters string 1 to Approx. 2,000,000,000 Characters 4*
MEDIUMTEXT 1 to 16,777,215 Characters string
1 to Approx. 2,000,000,000 Characters 4*
LONGTEXT 1 to 4,294,967,295 Characters N/A N/A
5
all BLOB types 1 to 4,294,967,295 Bytes Variant Varies 6
DATE Date without Time date Date and Time value *
DATETIME Date and Time date Date and Time value
TIMESTAMP Date and Time date Date and Time value
TIME Time date Date and Time value *
YEAR Year integer -32,768 to 32,767 *
ENUM Enumeration of Value Set string 1 to Approx. 2,000,000,000 Characters *
SET Set of Values string
1 to Approx. 2,000,000,000 Characters *

Catatan :

  1. Tidak ada data integer 32 bit unsigned integer di VB, sehingga data harus disimpan dalam type “double”, yang sebenarnya merupakan “floating”, oleh karena itu, berhati-hatilah untuk memastikan bahwa setiap nilai yang akan anda deklarasikan untuk MySQL dibulatkan sebelum mengirimkan suatu nilai. Penggunaan yang “integer unsigned” tidak dianjurkan di VB6, tetapi memang (mungkin) memiliki beberapa kelebihan dengan bilangan bulat yang lebih besar pada VB.NET.
  2. BIGINT tidak dapat digunakan dengan ADO, karena akan mengakibatkan kesalahan, Anda dapat menggunakan MyODBC pilihan 16.384 (konversi dari BIGINT ke INT), tetapi data BIGINT akan terbatas dikarenakan ukuran data INT.
  3. DECIMAL dapat dikirimkan ke type data VB6 yang lain tergantung pada bagaimana anda mendefinisikan kolom DECIMAL saat membuat tabel. Secara pribadi saya akan merekomendasikan tidak menggunakan jenis DECIMAL, karena memerlukan waktu 1 byte per digit untuk penyimpanan datanya, Anda lebih baik menggunakan tipe “numeric” yang sesuai.
  4. Jika Anda memiliki masalah loading MEDIUMTEXT TEKS dan nilai-nilai dari sebuah recordset, pastikan parameter max_allowed_packet MySQL mempunyai nilai besar.
  5. Data LONGTEXT akan perlu diperlakukan sebagai BLOB dan ditulis langsung ke sebuah file menggunakan metode penanganan BLOB.
  6. Semua data BLOB harus dikirimkan dengan menggunakan metode “getchunk / appendchunk” atau ADO. Varian dalam kasus ini menjadi sebuah array, dan tidak dapat ditangani langsung oleh VB6.

Tidak ada komentar:

Posting Komentar