โปรดอธิบายวิธีที่เราสามารถฝัง ms access db ในแอปพลิเคชัน winform ของเราเพื่อให้สามารถทำงานบนเครื่องอื่นได้อย่างง่ายดายด้วยไฟล์เพียงไฟล์เดียว .EXE ฉันทำการค้นหาไปมากแล้ว แต่ยังไม่สามารถหาวิธีแก้ปัญหาที่เหมาะสมได้ ขอบคุณล่วงหน้า
เราจะทำให้ ms access db ฝังอยู่ในแอปพลิเคชั่น winform เพื่อให้พกพาได้อย่างไร
คำตอบ (1)
สมมติว่าคุณกำลังใช้ MDB ดังนั้นเอ็นจิ้นฐานข้อมูล (32 บิต) (JET) ก็เป็นส่วนหนึ่งของ Windows ดังนั้นจึงไม่ควรมีข้อกำหนดในการตั้งค่าสำหรับสิ่งนั้น หากฐานข้อมูลเป็นแบบอ่านอย่างเดียวและไม่ได้เขียนลงไป คุณสามารถเพิ่มฐานข้อมูลนั้นเป็นทรัพยากรใน EXE ได้ และเมื่อแอปพลิเคชันเริ่มทำงาน ให้แตกทรัพยากรลงในไดเร็กทอรี TEMP หรือหากฐานข้อมูลมีขนาดใหญ่และคุณไม่รังเกียจที่จะออก แคชเกี่ยวกับลงในโฟลเดอร์ย่อยภายใต้ข้อมูลแอปพลิเคชันในเครื่อง (CSIDL_LOCAL_APPDATA) หากคุณทำอย่างหลัง ในครั้งถัดไปที่แอปพลิเคชันเริ่มทำงาน จะสามารถตรวจสอบเพื่อดูว่ามี MDB ที่แยกออกมาที่ถูกต้องอยู่แล้วหรือไม่ และใช้สิ่งนั้นหากเป็นเช่นนั้น คุณสามารถทำสิ่งที่คล้ายกันได้หากต้องการเขียนฐานข้อมูล แต่สำหรับที่จัดเก็บในตัวเครื่องเท่านั้น ซึ่งในกรณีนี้ MDB ที่เชื่อมโยงจะทำหน้าที่เป็นฐานข้อมูล 'เทมเพลต'
หากคุณใช้ Delphi หรือ C++ ฉันขอแนะนำให้ตรวจสอบ SQLite เป็นทางเลือกที่เป็นไปได้แทน JET แม้ว่าฉันจะถือว่ามันเป็น C# (แท็ก 'c' ค่อนข้างสับสน) คุณจะไม่สามารถเชื่อมโยง SQLite แบบคงที่ได้ รหัสซึ่งไม่ผ่านข้อกำหนด EXE แบบสแตนด์อโลน