আমি সাইবাসের কিছু সংস্করণ থেকে পোস্টগ্রিজ এসকিউএলে কিছু কোড পোর্ট করছি। এটি সি সি অ্যাপ্লিকেশন যা সাইবাস গ্রাহক লাইব্রেরি ব্যবহার করে। আমার পদ্ধতিটি এমন একটি অনুবাদ স্তর লিখুন যা কলগুলিতে অনুবাদ dbsqlexec()
করে PQexec()
(উদাহরণস্বরূপ)। সেই অংশটি বেশিরভাগ ক্ষেত্রেই কাজ করছে।
এটি প্রদর্শিত হয় যে সাইবেস ডাটাবেসটি কেস সংবেদনশীল পদ্ধতিতে সেট করা হয়েছে (ডাটাবেস অবজেক্টের নামের সাথে)। উদাহরণস্বরূপ, একটি WIDGET
টেবিল এবং একটি widget
টেবিল উভয়ই রয়েছে। দেখে মনে হচ্ছে এই অ্যাপ্লিকেশনটির কনভেনশনটি হ'ল সর্ব-বড় নামগুলি প্রকৃত ডেটা টেবিলগুলি নির্দেশ করে, যখন কিছু প্রক্রিয়া চলাকালীন ছোট হাতের নামগুলি অস্থায়ী টেবিল হিসাবে ব্যবহৃত হয়।
৪.১ লেক্সিকাল স্ট্রাকচার অনুসারে , " মূল শব্দ এবং অব্যক্ত শনাক্তকারীরা কেস সংবেদনশীল " "আমি জানি যে আমি ছোট হাতের অক্ষরে স্বয়ংক্রিয় ফোল্ডিং অক্ষম করতে শনাক্তকারীদের ডাবল-কোট করতে পারি, তবে আমি জিলিয়ন লাইনের মাধ্যমে ম্যানুয়ালি তা করতে চাই না don't এই ডাটাবেস ব্যবহার করে এমন কোডের।
ডাটাবেস অবজেক্ট শনাক্তকারীদের জন্য এই স্বয়ংক্রিয় কেস ফোল্ডিংটি অক্ষম করার জন্য PostgreSQL সেট করার কোনও উপায় আছে কি?
আমার বিকল্পটি এমন কিছু কোড লিখতে হবে যা প্রতিটি এসকিউএল স্টেটমেন্ট পরীক্ষা করে এবং প্রতিটি সনাক্তকারী (এটি কোনও কীওয়ার্ড নয়) এর চারপাশে ডাবল কোট রাখে।
select * from TaBlEnAmE
হিসাবে একই টেবিলটি উল্লেখ করবে select * from tablename
বাselect * from TABLENAME
create table "tableName" (id integer primary key);
এবং তারপরে create table "tablename" (id integer primary key);
এই কোয়েরিটি select * from TaBlEnAmE;
"টেবিলনাম" থেকে নির্বাচন করবেন, "টেবিলের নাম" থেকে নয়। "অব্যর্থ নামগুলি সর্বদা ছোট হাতের জন্য ভাজ করা হয়" ।