Kasus Pertama saya saat mengahadapi Database “Si Gajah” a.k.a PostgreSql, pada kasus ini saya memakai versi 9.1
yaitu tidak bisa menyimpan char yang mengandung Backslash ‘\’ , setelah tanya kesana kemari akhirnya menemukan solusi yang pas mantab dari Forum Komunitas Penggemar Pemrograman Delphi Indonesia (KPPDI), tempat dimana saya mendapatkan segudang ilmu tentang Delphi..
karena jika menyimpan data langsung yang mengandung char backslash, maka didalam database akan tersimpan dengan tambahan char 134
misal pada kasus ini saya menyimpan data directory sebuah file sebagai text kedalam database :
D:\Data\Musik
maka didalam database akan tertulis…
D:\134Data\134Musik
Saya langsung colek beberapa master disana yang sudah terbiasa menjinakan Si Gajah, dan solusi yang paling mujarab saya dapat dai om Cahyo Sasongko salah satu master, ehem begini kata beliau
klo mulai versi 9.1 “standard_conforming_strings” defaultnya on, yg artinya backslash dianggap ordinar constant bukan escape string constant…
solusi paling mudah pada postgresql.conf, standard_conforming_strings disetting off
coba lagi cara parameterizes yg ane berikan di atas
ingat..effect perubahan settingan akan berlaku setelah server di restart…
sesuai petunujuk beliau saya langsung buka postgresql.conf yang terletak di (Installasi Standart)
C:\Program Files\PostgreSQL\9.1\data\
kemudian saya buka file postgresql.conf dengan notepad++
saya gunakan fasilitas search untuk mencari line “standard_conforming_strings ” , dan akirnya saya menemukanya di line 536 #standard_conforming_strings = on
saya hilangkan tanda pagar (#) dan rubah on menjadi off
standard_conforming_strings = off
setelah itu saya melakukan save prubahan, dan restart service server postgresql, pada bagian Delphi coding saya rubah sesuai petunjuk om Cahyo dengan parameterize
With Qback do
begin
Close;
SQL.Clear;
SQL.Text:='insert into backup (code,backupdate,directory,filename)';
SQL.Text:=SQL.Text+' values (:p0,:p1,:p2,:p3)';
Params[0].AsString:=nom;
Params[1].AsString:=FormatDateTime('dd/mm/yyyy',now);
Params[2].AsString:=xdir;
Params[3].AsString:=filename;
ExecSQL;
End;
Dan tara….
Ahirnya sukses menyimpan ke PostgreSql charter backslash, tanpa ada gangguan si 134 lagi
