Pemrograman PERL Lanjutan Bagian 9: Akses Database

Pada bahasan sebelumnya membahas mengenai operasi commit, autocommit, rollback dan sebagainya, untuk tulisan hari ini akan membahas mengenail error handling dan penggunaan nilai NULL.

Automatic Error Handling
Ketika anda membuat koneksi call, anda dapat menspesifikasi sebuah opsi RaiseErrors yang akan mengatasi error secara otomatis. Ketika terdapat sebuah error, DBI akan menghentikan program dan mengembalika kode yang salah. Jika anda ingin menghentikan program ketika error, anda bisa gunakan kode berikut.

my $dbh = DBI->connect($dsn, $userid, $password, {RaiseError => 1}) or die $DBI::errstr;

RaiseErrors menggunakan value 1 atau 0.

Memutus Koneksi Database
Untuk memutus koneksi database, anda bisa menggunakan API disconnect seperti berikut:

$rc = $dbh->disconnect or warn $dbh->errstr;

Beberapa database seperti Oracle dan Ingres akan melakukan commit secara otomatis untuk setiap perubahan, namun database lainnya seperti Informix akan melakukan operasi rollback. Aplikasi yang tidak menggunakan operasi autocommit sebaiknya memanggil operais commit atau rollback sebelum memutus koneksi database.

Menggunakan NULL values
Nilai yang tak terdefinisi akan digunakan sebagai nilai NULL. Anda dapat melakukan operasi insert dan update dengan nilai NULL. Berikut contohnya:

$sth = $dbh->prepare(qq{ INSERT INTO TEST_TABLE (FIRST_NAME, AGE) VALUES (?, ?) });
$sth->execute(“Joe”, undef);

Disini qq{} digunakan untuk mengembalikan string yang ada dalam kutip untuk API prepare. Hal lain jika penggunaan nilai NULL pada klausa WHERE bisa anda lihat seperti ini:

SELECT FIRST_NAME FROM TEST_TABLE WHERE age = ?

Melakukan binding dengan nilai NULL untuk placeholder tidak akan menampilkan nilai age namun akan bernilai NULL. Berikut teknik sederhana untuk mengganti placeholder pada kasus non-NULL:

$sql_clause = defined $age? “age = ?” : “age IS NULL”;
$sth = $dbh->prepare(qq{ SELECT FIRST_NAME FROM TEST_TABLE WHERE $sql_clause });
$sth->execute(defined $age ? $age : ());

Demikian tulisan hari semoga bermanfaat.

Advertisements

One thought on “Pemrograman PERL Lanjutan Bagian 9: Akses Database

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