Bazı kod Sybase PostgreSQL için bazı porting. Bu Sybase istemci kitaplığını kullanan bir C uygulamasıdır. Benim yaklaşımım çağrıları çeviren bir çeviri katmanı yazmaktır dbsqlexec()
için PQexec()
(örneğin). Bu kısım çoğunlukla işe yarıyor.
Sybase veritabanı, büyük / küçük harfe duyarlı bir şekilde ayarlanmıştır (veritabanı nesne adlarına göre). Örneğin, hem bir WIDGET
tablo hem de bir tablo vardır widget
. Bu uygulamadaki kural, büyük harf adlarının gerçek veri tablolarını gösterdiği, küçük harf adlarının ise bazı işlemler çalıştırılırken geçici tablolar olarak kullanıldığı şeklindedir.
Göre 4.1 Leksikal Yapısı , " Anahtar kelime ve tırnaksız tanımlayıcılar. Harf duyarsız Ben çift tırnak ki tanımlayıcıları küçük harfe devre dışı otomatik katlanır bilmek", ama satır katrilyonlar aracılığıyla el ile yapmak zorunda kalmak istemiyoruz Bu veritabanını kullanan kod.
PostgreSQL'i veritabanı nesne tanımlayıcıları için bu otomatik vaka katlamasını devre dışı bırakacak şekilde ayarlamanın bir yolu var mı?
Alternatifim, her SQL ifadesini inceleyen ve her tanımlayıcının (anahtar kelime olmayan) etrafına çift tırnak koyan bir kod yazmak olacaktır.
select * from TaBlEnAmE
select * from tablename
select * from TABLENAME
create table "tableName" (id integer primary key);
ve sonra create table "tablename" (id integer primary key);
bu sorgu select * from TaBlEnAmE;
"tableName" değil, "tablename" arasından seçim yapar. "Alıntı yapılmayan adlar her zaman küçük harfe katlanır" .