ฉันมีข้อกำหนดในการดำเนินการ SQL พื้นฐาน (ในกรณีนี้คือส่วนแทรก) กับไฟล์บน AS400 ฉันกำลังเขียนไคลเอ็นต์แบบหนา แอปบรรทัดคำสั่งใน C# ที่ทำงานบน Windows 2008
หากฉันระบุไลบรารีและไฟล์ดังนี้:
insert into somelibrary.somefile (col1,col2) values val1,val2
แล้วมันได้ผล ปัญหาคือค่า somelibrary
จะแตกต่างกันระหว่างผู้ใช้และสภาพแวดล้อม ฉันต้องการใช้รายการไลบรารี *LIBL เพื่อดึงไลบรารีใดก็ตามที่ผู้ใช้ได้รับการจัดสรรตามลำดับที่ถูกต้อง ฉันต้องการหลีกเลี่ยงการใช้ไฟล์การกำหนดค่าหากเป็นไปได้
ผู้ใช้ที่ฉันกำลังทดสอบด้วยมีไลบรารีซึ่งมี somefile
ในรายการห้องสมุดของเขา ถ้าฉันลอง:
insert into somefile (col1,col2...) values val1,val2
ฉันได้รับข้อผิดพลาด:
ERROR [42S02] [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0204 - somefile in username type *FILE not found.
ฉันได้ลองเพิ่ม *LIBL ใน SQL และในสตริงการเชื่อมต่อด้วย แต่ไม่พบไฟล์ ฉันได้ลองใช้ชุดค่าผสมหลายอย่าง รวมถึงการใช้เครื่องหมายทับเพื่อแยกไลบรารีและไฟล์
ในกรณีที่เกี่ยวข้อง สตริงการเชื่อมต่อคือ:
Driver={Client Access ODBC Driver (32-bit)}; System=" + server + "; UID=" + DBUser + "; PWD=" + DBPassword + ";";
Naming Convention=1
ลงในสตริงการเชื่อมต่อของคุณเพื่อสลับเข้าสู่โหมดการตั้งชื่อ *SYS - person dmc   schedule 22.01.2013