Select the product you need help with
รายละเอียด: การใช้ ActiveX Data Objects (ADO) ผ่านทาง #import ใน VC ++หมายเลขบทความ (Article ID): 169496 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้ เนื้อหาบนหน้านี้สรุปไดเรกทีฟ #import ใน c ++ Visual เสนอกลไกใหม่ที่มีประสิทธิภาพสำหรับ
จัดการกับเซิร์ฟเวอร์ OLE เมื่อใช้กับ ActiveX Data Objects (ADO),
#import สามารถทำให้การเรียกดูที่ข้อมูลของคุณ บทความนี้กล่าวถึงคืออะไร
จำเป็นต้องใช้ประโยชน์จาก #import กับ ADO ข้อมูลเพิ่มเติมก่อนที่คุณสร้างอินสแตนซ์ของใด ๆ คลาสที่สร้างโดย #importการเตรียมใช้งาน OLE ได้ก่อนที่จะสร้างอินสแตนซ์ใด ๆ ของคลาสที่เป็นสำคัญ สร้าง โดย #import ตัวอย่างเช่น รหัสต่อไปนี้มีความปลอดภัย ได้ประกาศตัวชี้สมาร์ท #import สร้าง OLE แล้ว instantiates สมาร์ท ตัวชี้:ข้อยกเว้นที่ไม่สามารถจัดการได้ใน [โปรแกรม] (KERNEL32DLL): 0XE06D7363 ข้อยกเว้น c ++ Microsoft การใช้งาน #import ที่ถูกต้องจำเป็นต้องเรียกใช้ ADO อย่างถูกต้องในโปรแกรมของคุณ หรือคุณสามารถมี ข้อผิดพลาดของคอมไพเลอร์ รหัสต่อไปนี้อธิบายเกี่ยวกับวิธีการใช้ #import กับ Msado10.dll MSADO15.dll ถูกต้อง:การจัดการข้อผิดพลาดด้วย ADO คุณอาจได้รับข้อผิดพลาดใน HRESULT ส่งคืนมาจากวิธีการของ ADO คุณอาจได้รับข้อยกเว้นที่ยกกำลัง ด้วยคลา #import ที่สร้างขึ้น และสำหรับ เงื่อนไขอย่างใดอย่างหนึ่งคอลเลกชันของข้อผิดพลาด ADO อาจรวบรวม เมื่อต้องการ รับที่เก็บรวบรวมข้อผิดพลาด ที่คุณต้องการให้วัตถุที่ถูกต้องในการเชื่อมต่อ สำหรับข้อมูลเพิ่มเติมโปรดดูบทความในฐานความรู้ของ Microsoft ต่อไปนี้:169498
(http://support.microsoft.com/kb/169498/EN-US/
)
ข้อมูล: ดึงข้อมูลรายละเอียดข้อผิดพลาดจาก ADO ใน VC ++ ด้วย #importADO และ Dbdaoint.hความพยายามที่จะรวม ADO (ผ่าน #import) และ MFC DAO หรือ SDK DAO ในแฟ้มเดียวกันกับการใช้งาน เป็นดังนี้:สร้างข้อผิดพลาดที่หกดังต่อไปนี้: ข้อผิดพลาด C2011: 'EditModeEnum': 'enum' พิมพ์ redefinition ข้อผิดพลาด C2011: 'LockTypeEnum': 'enum' พิมพ์ redefinition ข้อผิดพลาด C2011: 'FieldAttributeEnum': 'enum' พิมพ์ redefinition ข้อผิดพลาด C2011: 'DataTypeEnum': 'enum' พิมพ์ redefinition ข้อผิดพลาด C2011: 'ParameterDirectionEnum': 'enum' พิมพ์ redefinition ข้อผิดพลาด C2011: 'RecordStatusEnum': 'enum' พิมพ์ redefinition
#import สร้างแฟ้มสองแฟ้ม Msado105.tlh และ Msado15.tli ออกของ typelib ที่อยู่ภายใน Msado15.dll โครงสร้างของไฟล์.tlh สามารถแตกออกเป็นดังนี้:
การอ้างอิงไปข้างหน้าและ Typedefsมีสร้างการอ้างอิงไปข้างหน้าและ Typedefs โดยใช้การ struct ไม่ __declspec(uuid("...")) บน GUID สำหรับอินเทอร์เฟซคู่สำหรับ อินเทอร์เฟซ และ CoClass ที่กำหนดไว้ใน typelib
...
struct __declspec(uuid("00000274-0000-0010-8000-00aa006d2ea4"))
/* dual interface */ _Connection;
...
struct __declspec(uuid("00000275-0000-0010-8000-00aa006d2ea4"))
/* interface */ ICADOConnection;
...
struct /* coclass */ Connection;
...
ประกาศ TypeDef ชี้สมาร์ทสำหรับอินเทอร์เฟซและอินเตอร์เฟสที่สอง ตัวชี้สมาร์ทถูกประกาศ ซึ่ง อย่างมากทำโดยใช้อินเทอร์เฟซ:... _COM_SMARTPTR_TYPEDEF(_Connection, __uuidof(_Connection)); ... _COM_SMARTPTR_TYPEDEF(ICADOConnection, __uuidof(ICADOConnection)); ... รายการไลบรารีชนิดซึ่งรวมถึงชนิดใด ๆ ที่ระบุที่กำหนดไว้ในการ typelib เช่นเดียวกัน การใช้งานตัวชี้สมาร์ทและสินค้า typelib:ในขณะที่คุณไม่สามารถเรียก GetConnectionString หรือ PutConnectionString เป็น จริง ๆ ไม่จำเป็น ตั้งแต่ ConnectionString คือ คุณสมบัติที่คุณต้องการ อ้างอิงจะเป็นดังนี้: จะมีการใช้งานจริงของ GetConnectionString/PutConnectionString พบในแฟ้ม Msado15.tli เมื่อเวลาการใช้วัตถุการเชื่อมต่อในรหัสของคุณ คุณจะต้องใช้ อินสแตนซ์ของตัวชี้สมาร์ทสำหรับอินเทอร์เฟซที่สองรูปแบบที่กำหนดไว้ใน Msado15.tlh ดัง: Pubs ซึ่งเป็นแหล่งข้อมูล ODBC #import และชัดเจนเรียก Release()ประโยชน์ของ #import คือ ใช้ดูแลของ AddRef, QueryInterface และปล่อยให้คุณโดยอัตโนมัติ อย่างไรก็ตาม ถ้าคุณตัดสินใจที่จะเริ่มการโทร Release() อย่างชัดเจน คุณสามารถสร้างปัญหาด้วยตัวคุณเองภายใน _com_ptr_t เป็น m_pInterface ตัวแปรของสมาชิก เป็น #import ตัวมาก แรปเปอร์สำหรับบาง มันทำไม่แยกความแตกต่างกับ m_pInterface หลังจากวัตถุดังกล่าว จริง ๆ แล้ว ออก และ decrementing เพียงการอ้างอิงของนับโดยไม่มี จริง ๆ destroying วัตถุ โดยเรียกอย่างชัดเจนปล่อย()--โดยไม่ AddRef() เรียกอย่างชัดเจนมากดุล it--#import gladly พยายามที่จะ ปล่อยวัตถุที่ไม่มีอยู่ การสร้างลักษณะพิเศษด้านที่น่าสนใจ และ ความล้มเหลวของลักษณะการทำงาน คำแนะนำที่ดีที่สุด คุณไม่ AddRef() ไม่ได้ (หรือน้อยไม่จำเป็นต้อง) ไม่ปล่อยอย่างใดอย่างหนึ่ง ข้อมูลอ้างอิง
182389
(http://support.microsoft.com/kb/182389/EN-US/
)
แฟ้ม: ADO เท่ากับ #import และ Getrows/ที่ คั่นหน้า Adovcbm.exe184968
(http://support.microsoft.com/kb/184968/EN-US/
)
แฟ้ม: Adovcsp.exe แสดงโดยใช้เก็บกระบวนการของ ADO186387
(http://support.microsoft.com/kb/186387/EN-US/
)
ตัวอย่าง: Ado2atl.exe กลับอินเทอร์เฟซ ADO จาก COM181733
(http://support.microsoft.com/kb/181733/EN-US/
)
แฟ้ม: #import Adovcbtd.exe ใช้ UpdateBatch และ CancelBatch166112
(http://support.microsoft.com/kb/166112/EN-US/
)
PRB: การขัดแย้งกับ EOF เมื่อใช้ #import กับ ADO168354
(http://support.microsoft.com/kb/168354/EN-US/
)
รายละเอียด: ต้นแบบ OLE และข้อผิดพลาดในการให้บริการ OLEDB จะแสดงผ่าน ADOคุณสมบัติหมายเลขบทความ (Article ID): 169496 - รีวิวครั้งสุดท้าย: 28 มกราคม 2554 - Revision: 5.0
แปลโดยคอมพิวเตอร์ ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:169496
(http://support.microsoft.com/kb/169496/en-us/
)
| การแปลบทความ
|




กลับไปด้านบน








