ข้อมูล: วิธีการที่เปิดใช้งานการเชื่อมต่อที่รวมในการโปรแกรมประยุกต์ ODBC

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 164221
ขยายทั้งหมด | ยุบทั้งหมด

สรุป

บทความนี้อธิบายวิธีการเปิดใช้งานการเชื่อมต่อร่วมกันในโปรแกรมประยุกต์ ODBC

ข้อมูลเพิ่มเติม

3.0 รุ่น ODBC Microsoft แนะนำแนวคิดของการเชื่อมต่อร่วมกัน
เชื่อมต่อร่วมกันทำให้เกิดการเรียกใช้โปรแกรมประยุกต์ ODBC เพื่อนำมาใช้ใหม่จากที่มีอยู่
การเชื่อมต่อจากพู เพื่อให้โปรแกรมประยุกต์ ODBC ไม่ได้มีการไป
ผ่านขั้นตอนการเชื่อมต่อที่สมบูรณ์สำหรับการเชื่อมต่อในภายหลังใด ๆ

เมื่อโปรแกรมประยุกต์ ODBC disconnects การเชื่อมต่อ การเชื่อมต่อได้รับการบันทึก
ยกเลิกการลงในพูแทนการจัดทำต่อ การเชื่อมต่อนี้ยังคงระยะเวลา
ในการเก็บพักขึ้นคุณสมบัติ CPTimeout โปรแกรมควบคุม ODBC เมื่อการ
หมดเวลาหมดอายุ ปิด และเอาออกจากประเภทการเชื่อมต่อ ODBC
โปรแกรมประยุกต์สามารถใช้ SQLConfigDriver เพื่อเปลี่ยนค่าของ CPTimeout และนี้
ค่าที่ใช้กับโปรแกรมประยุกต์ ODBC ทั้งหมดที่กำลังใช้โปรแกรมควบคุม ODBC ที่ระบุ

ค่าเริ่มต้นสำหรับการ CPTimeout คือ 60 วินาทีเชื่อมต่อร่วมกันจะมีประโยชน์มากเมื่อโปรแกรมประยุกต์ ODBC เช่นอินเทอร์เน็ตของ Microsoft
เซิร์ฟเวอร์รายละเอียด (เช่น) เชื่อมต่อ และ disconnects บ่อยครั้ง Microsoft
ข้อมูลทางอินเทอร์เน็ต Server (IIS) รุ่น 3.0 กับ Active Server หน้า (ASP)
ใช้ประโยชน์ของการเชื่อมต่อร่วมกัน คุณสามารถเปิดใช้การเชื่อมต่อร่วมกันสำหรับ
ผู้ใช้ของ iis ด้วยการเปลี่ยนแปลงค่าStartConnectionPool1StartConnectionPoolอยู่ภายใต้:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters
โปรแกรมประยุกต์ ODBC สามารถใช้ SQLSetEnvAttr เพื่อเปิดใช้งานการเชื่อมต่อร่วมกัน ต่อไปนี้เป็นตัวอย่างของวิธีการเปิดใช้งานการเชื่อมต่อร่วมกันในโปรแกรมประยุกต์ ODBC:
   #include <windows.h>
   #include <stdio.h>
   #include <sql.h>
   #include <sqlext.h>

   void main()
   {
   SQLHENV   henv;
   SQLHDBC   hdbc;
   int       i=0;

   if (!SQL_SUCCEEDED(SQLSetEnvAttr(
      NULL,  // make process level cursor pooling
      SQL_ATTR_CONNECTION_POOLING,
      (SQLPOINTER)SQL_CP_ONE_PER_DRIVER,
      SQL_IS_INTEGER)))
   printf("SQLSetEnvAttr/SQL_ATTR_CONNECTION_POOLING error\n");

   if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv)))
      printf("SQLAllocHandle error\n");

   // set the ODBC behavior version.
   if (!SQL_SUCCEEDED(SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
   (SQLPOINTER) SQL_OV_ODBC2, SQL_IS_INTEGER)))
      printf("SQLSetEnvAttr/SQL_ATTR_ODBC_VERSION error\n");

   //set the matching condition for using an existing connection in the
   pool
   if (!SQL_SUCCEEDED(SQLSetEnvAttr(henv, SQL_ATTR_CP_MATCH,
   (SQLPOINTER) SQL_CP_RELAXED_MATCH, SQL_IS_INTEGER)))
   printf("SQLSetEnvAttr/SQL_ATTR_CP_MATCH error\n");

while (i < 10) {
   if (!SQL_SUCCEEDED(SQLAllocHandle(SQL_HANDLE_DBC,
      henv, &hdbc)))
      printf("SQLAllocHandle error\n");
      if (!SQL_SUCCEEDED(SQLConnect(hdbc,
   (unsigned char*)"testing\0", SQL_NTS,
      (unsigned char*)"sa\0", SQL_NTS,
   (unsigned char*)"\0", SQL_NTS)))
      printf("SQLConnect error\n");
   else
      printf("Connect successfully %d times\n", i);
   //the first time, the application calls SQLDisconenct, it will return
                 //the connection to the //pool
   SQLDisconnect(hdbc);

   if (!SQL_SUCCEEDED(SQLFreeHandle(SQL_HANDLE_DBC, hdbc)))
      printf("SQLFreeHandle error\n");
   i++;
   }
   SQLFreeHandle(SQL_HANDLE_ENV, henv);
   }
				
เมื่อโปรแกรมประยุกต์ ODBC เรียกSQLDisconnectครั้งแรก การเชื่อมต่อถูกบันทึกไปยังเก็บพัก ใด ๆ ในเวลาต่อมา SQLConnect/SQLDisconnect ที่ตรงกับเงื่อนไขที่ต้องจะนำมาใช้การเชื่อมต่อแรก

คุณสมบัติ

หมายเลขบทความ (Article ID): 164221 - รีวิวครั้งสุดท้าย: 6 มกราคม 2554 - Revision: 2.0
Keywords: 
kbinfo kbprogramming kbmt KB164221 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:164221
การปฏิเสธความรับผิดชอบในเนื้อหาของ KB ที่จะไม่มีการปรับปรุงอีกต่อไป
บทความนี้กล่าวถึงผลิตภัณฑ์ที่ Microsoft ไม่มีการสนับสนุนอีกต่อไป เนื้อหาของบทความจึงมีการนำเสนอ "ตามลักษณะที่เป็น" และจะไม่มีการปรับปรุงข้อมูลอีก

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com