Menyimpan Character Backslash di PostgreSQL Delphi

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
:)

About these ads

, , , , ,

  1. Membuat Database PostgreSQL « Mboloz's Blog

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 )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: