FIX: Å×À̺í À̸§, ±â°£ Æ÷Ç﵃ ¶§ SQLColAttribute À߸øµÈ Å×ÀÌºí Æ¯¼º ¹ÝȯÇÕ´Ï´Ù.

±â¼ú ÀÚ·á: 290646 - ÀÌ ¹®¼­°¡ Àû¿ëµÇ´Â Á¦Ç° º¸±â.
# BUG: 46409 (SHILOH_bug)
# ¹ö±×: 56030 (sqlbug_70)
¸ðµÎ È®´ë | ¸ðµÎ Ãà¼Ò

ÀÌ ÆäÀÌÁö¿¡¼­

Çö»ó

SQL_DESC_SCHEMA_NAME, SQL_DESC_TABLE_NAME, SQL_DESC_BASE_TABLE_NAME, SQL_DESC_CATALOG_NAME ¶Ç´Â ¼³¸íÀÚ Á¤º¸¸¦ ¹ÝȯÇÏ·Á¸é SQLColAttribute ÇÔ¼ö¸¦ »ç¿ëÇϸé Å×À̺í À̸§¿¡ ¸¶Ä§Ç¥°¡ ÀÖ½À´Ï´Ù ¶§ À߸øµÈ °ªÀÌ ¹ÝȯµÉ ¼ö ÀÖ½À´Ï´Ù.

¿øÀÎ

ODBC´Â SQL Server °³Ã¼ Çü½ÄÀ¸·Î Computer.Database.Owner.Object ±¸ºÐÇÏ·Á¸é ¸¶Ä§Ç¥¸¦ »ç¿ëÇÕ´Ï´Ù.

ÇØ°á ¹æ¹ý

SQL Server 2000

ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é Microsoft SQL Server 2000ÀÇ Ãֽм­ºñ½º ÆÑÀ» ±¸ÇϽʽÿÀ. ÀÚ¼¼ÇÑ ³»¿ëÀº Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.
290211INF: SQL Server 2000ÀÇ Ãֽм­ºñ½º ÆÑÀ» ±¸ÇÏ´Â ¹æ¹ý

SQL Server 7.0

ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é SQL Server °³Ã¼ÀÇ À̸§ ³»¿¡¼­ ¸¶Ä§Ç¥¸¦ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À.

Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò (MDAC)

ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò 2.6 Ãֽм­ºñ½º ÆÑÀ» ±¸ÇϽʽÿÀ. ÀÚ¼¼ÇÑ ³»¿ëÀº Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.
300635Á¤º¸: ÃֽŠMDAC 2.6 ±¸ÇÏ´Â ¹æ¹ý ¼­ºñ½º ÆÑ

ÇöÀç »óÅÂ

Microsoft ¹®Á¦´Â ÀÌ ¹®¼­ÀÇ ½ÃÀÛ ºÎºÐ¿¡ ³ª¿­ÇÑ Á¦Ç°¿¡¼­ ¹®Á¦¸¦ È®ÀÎÇß½À´Ï´Ù.

SQL Server 2000

ÀÌ ¹®Á¦´Â SQL Server 2000 ¼­ºñ½º ÆÑ 1¿¡¼­ óÀ½ ¼öÁ¤µÇ¾ú½À´Ï´Ù.

Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò (MDAC)

ÀÌ ¹®Á¦´Â Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò 2.6 ¼­ºñ½º ÆÑ 1¿¡¼­ óÀ½ ¼öÁ¤µÇ¾ú½À´Ï´Ù.

Ãß°¡ Á¤º¸

¹®Á¦¸¦ ÀçÇöÇϱâ À§ÇÑ ´Ü°è

  1. »õ .cpp ÆÄÀÏ¿¡ ´ÙÀ½ Äڵ带 ºÙ¿©:
    #include <windows.h>
    #include <stdio.h>
    #include <tchar.h>
    
    #include "sql.h"
    #include "sqlext.h"
    #include "odbcss.h"
    
    int main()
        {
        // ODBC handles
        SQLHENV     henv = NULL;
        SQLHDBC     hdbc = NULL;
        SQLHSTMT    hstmt = NULL;
    
    	char szData[100];
    	short l;
     	//These must be modified for your specific DSN
        PTSTR       szDataSource = _T("localserver");
        PTSTR       szUID = _T("UserName");
        PTSTR       szPWD = _T("Password");
    
    	PTSTR		szDropTable = _T("if exists (select * from dbo.sysobjects where id = object_id(N'[my.table]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [my.table]");
    	PTSTR		szCreateTable = _T("Create Table [my.table] (col1 int)");
    	PTSTR       szSQLSelect = _T("Select * from dbo.[my.table]");
    
        // Initialize the ODBC environment.
        if (SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv) == SQL_ERROR)
            goto EXIT;
    
        SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3, SQL_IS_INTEGER);
    
        // Allocate a connection handle and connect to the data source.
        if (SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc) == SQL_ERROR)
            goto EXIT;
    
        if (SQLConnect(hdbc, (SQLTCHAR*) szDataSource, SQL_NTS, (SQLTCHAR*) szUID, SQL_NTS, (SQLTCHAR*) szPWD, SQL_NTS) == SQL_ERROR)
            goto EXIT;
    
        // Get a statement handle and execute a Transact-SQL SELECT statement.
        if (SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt) == SQL_ERROR)
            goto EXIT;
    
    	if(SQLSetScrollOptions( hstmt, SQL_CONCUR_VALUES, SQL_SCROLL_DYNAMIC, 1) == SQL_ERROR)
    		goto EXIT;
    
    	if (SQLExecDirect(hstmt, (SQLTCHAR*) szDropTable, SQL_NTS) == SQL_ERROR)
            goto EXIT;
    
    	if (SQLExecDirect(hstmt, (SQLTCHAR*) szCreateTable, SQL_NTS) == SQL_ERROR)
            goto EXIT;
    
    
    	if (SQLExecDirect(hstmt, (SQLTCHAR*) szSQLSelect, SQL_NTS) == SQL_ERROR)
            goto EXIT;
    
    
    
    	if (SQLColAttribute(hstmt, 1, SQL_DESC_SCHEMA_NAME , &szData, 100, &l, NULL) ==SQL_ERROR)
    		goto EXIT;
    
    	_tprintf(_T("SQL_DESC_SCHEMA_NAME = %s, should be dbo\n"),szData);
    
    	if (SQLColAttribute(hstmt, 1, SQL_DESC_TABLE_NAME , &szData, 100, &l, NULL) ==SQL_ERROR)
    		goto EXIT;
    
    	_tprintf(_T("SQL_DESC_TABLE_NAME = %s, should be my.table\n"),szData);
    
    	if (SQLColAttribute(hstmt, 1, SQL_DESC_BASE_TABLE_NAME , &szData, 100, &l, NULL) ==SQL_ERROR)
    		goto EXIT;
    
    	_tprintf(_T("SQL_DESC_BASE_TABLE_NAME = %s, should be my.table\n"),szData);
    
    	if (SQLColAttribute(hstmt, 1, SQL_DESC_CATALOG_NAME, &szData, 100, &l, NULL) ==SQL_ERROR)
    		goto EXIT;
    
    	_tprintf(_T("SQL_DESC_CATALOG_NAME = %s, should be database specified in dsn\n"),szData);
    
    EXIT:
        if (hstmt != NULL)
            {
            SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
            }
    
        if (hdbc != NULL)
            {
            SQLDisconnect(hdbc);
            SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
            }
    
        if (henv != NULL)
            {
            SQLFreeHandle(SQL_HANDLE_ENV, henv);
            }
    
        return (0);
        }
    					
  2. Äڵ带 ÄÄÆÄÀÏÇϰí À̸¦ ½ÇÇàÇϽʽÿÀ. °á°ú´Â ´ÙÀ½°ú °°½À´Ï´Ù:
    SQL_DESC_SCHEMA_NAME = my, should be dbo
    SQL_DESC_TABLE_NAME = table, should be my.table
    SQL_DESC_BASE_TABLE_NAME = table, should be my.table
    SQL_DESC_CATALOG_NAME = dbo, should be database specified in dsn
    					

¼Ó¼º

±â¼ú ÀÚ·á: 290646 - ¸¶Áö¸· °ËÅä: 2003³â 10¿ù 31ÀÏ ±Ý¿äÀÏ - ¼öÁ¤: 3.2
º» ¹®¼­ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
Ű¿öµå:?
kbmt kbbug kbfix kbmdac260sp1fix kbsqlserv2000sp1fix KB290646 KbMtko
±â°è ¹ø¿ªµÈ ¹®¼­
Áß¿ä: º» ¹®¼­´Â Àü¹® ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ °ÍÀÌ ¾Æ´Ï¶ó Microsoft ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î·Î ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù. Microsoft´Â ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ ¹®¼­ ¹× ±â°è ¹ø¿ªµÈ ¹®¼­¸¦ ¸ðµÎ Á¦°øÇϹǷΠMicrosoft ±â¼ú ÀÚ·á¿¡ ÀÖ´Â ¸ðµç ¹®¼­¸¦ Çѱ۷ΠÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±â°è ¹ø¿ª ¹®¼­°¡ Ç×»ó ¿Ïº®ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼­ ±â°è ¹ø¿ª ¹®¼­¿¡´Â ¸¶Ä¡ ¿Ü±¹ÀÎÀÌ Çѱ¹¾î·Î ¸»ÇÒ ¶§ ½Ç¼ö¸¦ ÇÏ´Â °Íó·³ ¾îÈÖ, ±¸¹® ¶Ç´Â ¹®¹ý¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Microsoft´Â ³»¿ë»óÀÇ ¿À¿ª ¶Ç´Â Microsoft °í°´ÀÌ ÀÌ·¯ÇÑ ¿À¿ªÀ» »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ºÎ Á¤È®¼º, ¿À·ù ¶Ç´Â ¼ÕÇØ¿¡ ´ëÇØ Ã¥ÀÓÀ» ÁöÁö ¾Ê½À´Ï´Ù. Microsoft´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù.

Çǵå¹é º¸³»±â