FIX: Å×À̺í À̸§, ±â°£ Æ÷Ç﵃ ¶§ SQLColAttribute À߸øµÈ Å×ÀÌºí Æ¯¼º ¹ÝȯÇÕ´Ï´Ù. # 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 ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼¸¦ ÂüÁ¶ÇϽʽÿÀ.
290211
(http://support.microsoft.com/kb/290211/EN-US/
)
INF: SQL Server 2000ÀÇ Ãֽмºñ½º ÆÑÀ» ±¸ÇÏ´Â ¹æ¹ý
SQL Server 7.0 ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é SQL Server °³Ã¼ÀÇ À̸§ ³»¿¡¼ ¸¶Ä§Ç¥¸¦ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À.
Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò (MDAC) ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò 2.6 Ãֽмºñ½º ÆÑÀ» ±¸ÇϽʽÿÀ. ÀÚ¼¼ÇÑ ³»¿ëÀº Microsoft ±â¼ú ÀÚ·áÀÇ ´ÙÀ½ ¹®¼¸¦ ÂüÁ¶ÇϽʽÿÀ.
300635
(http://support.microsoft.com/kb/300635/EN-US/
)
Á¤º¸: ÃֽŠMDAC 2.6 ±¸ÇÏ´Â ¹æ¹ý ¼ºñ½º ÆÑ
Microsoft ¹®Á¦´Â ÀÌ ¹®¼ÀÇ ½ÃÀÛ ºÎºÐ¿¡ ³ª¿ÇÑ Á¦Ç°¿¡¼ ¹®Á¦¸¦ È®ÀÎÇß½À´Ï´Ù.
SQL Server 2000 ÀÌ ¹®Á¦´Â SQL Server 2000 ¼ºñ½º ÆÑ 1¿¡¼ óÀ½ ¼öÁ¤µÇ¾ú½À´Ï´Ù.
Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò (MDAC) ÀÌ ¹®Á¦´Â Microsoft µ¥ÀÌÅÍ ¾×¼¼½º ±¸¼º ¿ä¼Ò 2.6 ¼ºñ½º ÆÑ 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);
}
Äڵ带 ÄÄÆÄÀÏÇϰí À̸¦ ½ÇÇàÇϽʽÿÀ. °á°ú´Â ´ÙÀ½°ú °°½À´Ï´Ù:
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´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù.
°¨»çÇÕ´Ï´Ù! º¸³»ÁֽŠÀǰßÀº Áö¿ø ÄÜÅÙÃ÷¸¦ Çâ»ó½ÃŰ´Â µ¥ »ç¿ëµÉ °ÍÀÔ´Ï´Ù. ÀÚ¼¼ÇÑ Áö¿ø ¿É¼ÇÀ» º¸·Á¸é
Microsoft °í°´Áö¿ø ȨÆäÀÌÁö ¸¦ ¹æ¹®ÇØ Áֽñ⠹ٶø´Ï´Ù.