Kamis, 17 Februari 2011

SQL Server to Fireberd / Interbase Version 1

Migrasi dari MSSQL ke FB nihhhh..
ada beberapa catatan ni selama migrasi. cekedottt

dari segi script PHP
1. ubah mssql_ ke ibase_ (jangan lupa koneksinya diubah juga ya)
2. - pencarian data case sensitif
contoh : where em_emplname like 'Nende%'
tidak bisa where em_emplname like 'nend%'.
Maka untuk handelnya, setaip pencarian dikasih script berikut :
"where UPPER(em_emplname) like '". strttoupper($name)."%'";
3. Semua field object yang ditampilkan, jika memakai fungsi ibase_fetch_object , semuanya dirubah menjadi UPPER CASE
cat : field bisa tidak dirubah ke Upper Case jika saat create table di Firebird nama kolom dibuat didalam double quote.
contoh : create table TEST ("EmplName" varchar(50))
tetapi tetap object harus ditulis case sensitif sesuai nama kolom yang dibuat.
penulisan kolom di php, tidak berpengaruh.


Dari segi database
1. EXTRACT(MONTH FROM RB_DATE) buat pengganti script month(rb_date)
2. Top diganti First
3. Foreign Key on FB
for action delete or update
1.RESTRICT
2.NO ACTION
3.CASCADE
4.SET DEFAULT
5.SET NULL

Restrict = Data tidak bisa dirubah atau dihapus selama data tersebut masih ada relasi ke tabel lain

No Action = Hampir sama seperti Restrict perbedaanya hanya pada proses pengecekannya.
pada Restrict pengecekan dilakukan diawal sedangkan sebelum trasaksi dilakukan sedangkan No Action transaksi dicoba dijalankan dahulu, jika ternyata setelah dijalankan masih ada tabel2 terkait dengan data tersebut, maka tetap transaksi delete dan update tidak bisa dijalankan

Cascade : jika data diupate maka semua data yang relasi ke data tersebut akan dirubah. begitu pula jika data dihapus maka semua yang ref ke data tersebut akan dihapus

Set Default & SET NULL : semua data yang berhubungan akan di set ke fdefault atau null jika data headernya dirubah atau di delete.

- Pada SQL server jika data yang di insert panjang karakternya melebihi panjang karakter yang ditetapkan, proses insert / update masih bisa diproses dengan catatan data yang masuk akan dipotong sesuai karakter yg diperbolehkan.
- Pada Firebird proses akan error. jika data yang diinsert melebihi jumlah yg diperbolehkan

4. tipe data int kalo kosong musti diisi 0 atau NULL gak boleh ''

.. kerjaan belum selese.. ntar kalo nemuin hal2 lain lagi nyambung ceritanye yeeeee