ODBC ÇÚµé
¿ì¼± sql.h¿Í sqlext.hÇì´õ¸¦ Æ÷ÇÔ½ÃÄÑÁà¾ßÇÑ´Ù. ±×¸®°í odbc32.lib¿Í ¿¬°áÀ» ½ÃÄÑÁà¾ßÇÑ´Ù.
SQLRETURN SQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, SQLHANDLE *OutputHandlePtr);
SQLÇÚµéÀ» ÇÒ´çÇÑ´Ù.
HandleType¿¡´Â 4°¡Áö°¡ ÀÖ´Ù. SQL_HANDLE_ENV, SQL_HANDLE_DBC, SQL_HANDLE_STMT, SQL_HANDLE_DESCÁß Çϳª¸¦ ¼±ÅÃÇÒ¼ö ÀÖ´Ù.
InputHandle¿¡´Â ¸¸µé¾îÁú Çڵ鿡 ¿¬°áµÇ´Â ÇÚµéÀÌ´Ù. ȯ°æÇÚµéÀº óÀ½ ¼³Á¤µÇ¹Ç·Î SQL_NULL_HANDLEÀ» ³Ö¾îÁØ´Ù.
OutputHandlePtr¿¡´Â »õ·Î ¸¸µé¾îÁú ÇÚµéÀÇ ÁÖ¼Ò¸¦ ³Ö¾îÁØ´Ù.
SQLRETURN SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle);
SQLÇÚµéÀ» ÇØÁ¦ÇÑ´Ù.
ȯ°æ ÇÚµé
µ¥ÀÌÅÍ ¾×¼¼½º¿¡ ÇÊ¿äÇÑ ¿©·¯ °¡Áö Á¤º¸µéÀÌ ÀúÀåµÈ´Ù. ȯ°æÀÇ ÇöÀç »óÅÂ, Áø´Ü Á¤º¸, ȯ°æÀÇ ¼Ó¼º, ¿¬°á¿¡ °ü·ÃµÈ Á¤º¸µîÀÌ´Ù.
SQLAllocHandle(SQL_HANDLE_DBC,SQL_NULL_HANDLE,ȯ°æ ÇÚµéÀÇ ÁÖ¼Ò);
SQLRETURN SQLSetEnvAttr(SQLHENV EnvironmentHandles, SQLINTEGER Attribute, SQLPOINTER ValuePtr, SQLINTEGER StringLength);
EnvironmentHandlesÀº ȯ°æ ÇÚµé, Attribute´Â ¼³Á¤ÇϰíÀÚ ÇÏ´Â ¼Ó¼ºÀÇ Á¾·ù, ValuePtrÀº ¼Ó¼º°ª, StringLength´Â ¼Ó¼º°ªÀÇ ±æÀÌÀÌ´Ù.
ȯ°æ¼Ó¼ºÁß °¡Àå Áß¿äÇÑ °ªÀº SQL_ATTR_ODBC_VERSION ¼Ó¼ºÀε¥ 3.0¹öÁ¯Àº SQL_OV_ODBC3À» ³Ö¾îÁØ´Ù.
¿¬°á ÇÚµé
¿¬°áÇÚµéÀº µ¥ÀÌÅÍ ¼Ò½º¿Í µå¶óÀ̹ö¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áø´Ù. ¿¬°áÀÇ »óÅÂ, Áø´Ü Á¤º¸, ¸í·É ÇÚµé°ú ¼³¸íÀÚ ÇÚµéÀÇ ¸ñ·Ï, ¿¬°áÀÇ ¼Ó¼ºµîÀÇ
Á¤º¸°¡ Æ÷ÇԵȴÙ.
¿¬°á ÇÚµéÀ» ÇÒ´çÇÒ¶§ ¿ì¼± ȯ°æÇÚµéÀÇ ¼Ó¼ºÀÌ ÇÊ¿äÇÏ´Ù
SQLAllocHandle(SQL_HANDLE_DBC,ȯ°æÇÚµé,¿¬°áÇÚµéÀÇ ÁÖ¼Ò);
SQLRETURN SQLDriverConnect(
SQLHDBC ConnectionHandle, // ÇÒ´çÇÑ ¿¬°áÇÚµé
SQLHWND WindowHandle, // À©µµ¿ì ÇÚµé
SQLCHAR *InConnectionString, // ¿¬°á ¹®ÀÚ¿(¿¬°áÀ» À§ÇÑ Á¤º¸¸¦ °¡Áö´Â ¹®ÀÚ¿·Î ÀϹÝÀûÀ¸·Î ÀÏ·ÃÀÇ Å° = °ªÀ¸·Î ±¸¼ºµÈ´Ù.)
SQLSMALLINT StringLength1, // ¿¬°á ¹®ÀÚ¿ÀÇ ±æÀÌ
SQLCHAR *OutConnectionString, // ÀԷµǴ µ¥ÀÌÅÍ¿¡ µû¶ó ¿Ï¼ºµÈ ¹®ÀÚ¿ÀÌ »ý¼ºµÈ´Ù. ±× ¹®ÀÚ¿À» ¾òÀ» ¼ö ÀÖ´Ù.
SQLSMALLINT BufferLength, // Ãâ·Â ¿¬°á ¹®ÀÚ¿ÀÇ ¹öÆÛÀÇ ±æÀÌ
SQLSMALLINT *StringLength2Ptr, // Ãâ·ÂµÇ´Â ¹®ÀÚ¿ÀÇ ÃÑ ±æÀÌ
SQLUSMALLINT DriverCompletion); // ±âº»Àº SQL_DRIVER_NOPROMPTÀÌ´Ù. SQL_DRIVER_COMPLETE·Î ÇʼöÀûÀÎ Á¤º¸Áß¿¡ ´©¶ôµÈ Á¤º¸¸¦ ÀԷ¹ްí ÁøÇàÇÑ´Ù.
¿¬°áµÇ´Â ŸÀÔ¿¡ µû¸¥ InConnectionStringÀÇ °ª.
MDB´Â ¿¢¼¼½ºÀε¥ ÆÄÀÏ·Î Á¸ÀçÇÏ´Â DBÀÌ´Ù.
µé¾î°¡´Â ¹®ÀÚ¿Àº "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=ÆÄÀÏÀ̸§" ÀÌ·¸°Ô µé¾î°£´Ù.
FileDSNÀ» »ç¿ëÇÏ´Â °æ¿ì´Â ¹®ÀÚ¿·Î "FileDsn=°æ·Î" °¡ µé¾î°£´Ù.
SQL¼¹ö¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ¹ØÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÏÀÚ. °£ÆíÇÏ´Ù.
SQLRETURN SQLConnect(
SQLHDBC ConnectionHandle, // ¿¬°á ÇÚµé
SQLCHAR *ServerName, // ¼¹ö À̸§
SQLSMALLINT NameLength1, // ¼¹ö À̸§ÀÇ ±æÀÌ. SQL_NTS¸¦ »ç¿ëÇÏ¸é ÆíÇÏ´Ù.
SQLCHAR *UserName, // À¯Àú ID.
SQLSMALLINT NameLength2, // À¯Àú IDÀÇ ±æÀÌ. SQL_NTS¸¦ »ç¿ëÇÏ¸é ÆíÇÏ´Ù.
SQLCHAR *Authentication, // ÆÐ½º¿öµå.
SQLSMALLINT NameLenght3 // ÆÐ½º¿öµåÀÇ ±æÀÌ. SQL_NTS¸¦ »ç¿ëÇÏ¸é ÆíÇÏ´Ù.
);
SQLRETURN SQLDisconnect(SQLHDBC ConnectionHandle);
¿¬°á ÇÚµéÀÇ ¿¬°áÀ» ²÷¾îÁØ´Ù.
¸í·É ½ÇÇà
SQLRETURN SQLExecDirect(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINEGER TextLength);
StatementHandle´Â ¸í·ÉÇÚµé, StatementText´Â SQL¹®, TextLengthÀº SQL¹®ÀÇ ±æÀÌ
¿©±â¼ SQL¹®ÀÇ ±æÀ̸¦ ³ÖÀ»¶§ ¹®ÀÚ¿ÀÌ ³Î¹®ÀÚ·Î ³¡³ª´Â °æ¿ì SQL_NTS·Î ÁöÁ¤ÇÏ¸é µÈ´Ù.
SQLRETURN SQLBindCol(
SQLHSTMT StatementHandle, // ¸í·É ÇÚµé
SQLUSMALLINT ColumnNumber, // ¹ÙÀεùµÉ Ä÷³ÀÇ ¹øÈ£. Ä÷³ÀÇ ¹øÈ£´Â 1ºÎÅÍ ½ÃÀÛÇÑ´Ù.
SQLSMALLINT TargetType, // ¹ÙÀεùµÉ µ¥ÀÌÅÍ Å¸ÀÔ. À§ÀÇ CÇü½ÄÀÇ µ¥ÀÌÅÍ Å¸ÀÔ.
SQLPOINTER TargetValuePtr, // °á°ú°ªÀ» ¹ÞÀ» ¹öÆÛ
SQLINTEGER BufferLength, // ¹öÆÛÀÇ ±æÀÌ
SQLLEN *StrLen_or_Ind // ±æÀÌ ¶Ç´Â »óŰªÀ» ¹Þ´Âµ¥ Ä÷³ÀÇ ±æÀ̳ª »óŸ¦ ¹ÝȯÇÑ´Ù. ¾Æ¹«Ä®·³ÀÌ ¾øÀ»¶§ SQL_NULL_DATA¸¦ ¹ÝȯÇÑ´Ù.
);
°á°ú°ª 󸮸¦ À§ÇØ ¹ÙÀεùÀÌ ÇÊ¿äÇÏ´Ù.
insert¹®À̳ª update¹®ÀÌ ¾Æ´Ñ select¹®ÀÏ °æ¿ì °á°ú¸¦ ¹Þ´Â µ¥ÀÌÅÍ Å¸ÀÔÀ¸·Î º¯È¯À» ÇÑ´Ù.
SQLRETURN SQL_Fetch(SQLHSTMT StatementHandle);
¹ÙÀεùµÈ º¯¼ö¿¡ °á°ú°ªÀ» ä¿öÁÖ°í Çà(row)¿¡ µû¶ó ´ÙÀ½À¸·Î À̵¿ÇÑ´Ù.
¾Æ¹« °ªµµ ¾øÀ» °æ¿ì SQL_NO_DATA¸¦ ¹ÝȯÇÑ´Ù.
StatementHandle¿¡´Â ¸í·É ÇÚµéÀÌ µé¾î°£´Ù.
SQLRETURN SQL_CloseCursor(SQLHSTMT StateHandle);
¸í·É Çڵ鿡 ¿·ÁÁø Ä¿¼¸¦ ´Ý°í °á°ú¼ÂÀ» ¹ö¸°´Ù. ¸í·É ÇÚµéÀ» »èÁ¦Çϱâ Àü¿¡ ÀÌ·ç¾î Áø´Ù.
ÆÄ¶ó¹ÌÅÍ »ç¿ë
µî·ÏµÈ SQL¹®ÀÚ¿¿¡ ?(Parameter Market)µÈ ºÎºÐ¿¡ ½ÇÇàÁß¿¡ ¹ÙÀεùµÈ º¯¼ö°ªÀ¸·Î ´ëüÇÒ ¼ö ÀÖ´Ù.
±×³É ¹®ÀÚ¿ Á¶ÇÕµµ ÇÒ ¼ö ÀÖ°ÚÁö¸¸ ÀÌ·¸°Ô ÇÏ´Â ÆíÀÌ ¼Óµµ°¡ ºü¸£´Ù.
SQLRETURN SQLBindParameter(
SQLHSTMT StatementHandle, // ¸í·É ÇÚµé
SQLUSMALLINT ParameterNumber, // ÆÄ¶ó¹ÌÅÍ ¹øÈ£. ?°¡ ³ªÅ¸³»´Â ½ÃÁ¡¿¡¼ 1ºÎÅÍ ½ÃÀÛÇÑ´Ù.
SQLSMALLINT InputOutputType, // ÆÄ¶ó¹ÌÅÍÀÇ ¿ëµµ¸¦ ¼³Á¤ÇÑ´Ù. ÀԷ¿ë(SQL_PARAM_INPUT), Ãâ·Â¿ë, ÀÔÃâ·Â°â¿ëÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.
SQLSMALLINT ValueType, // ÆÄ¶ó¹ÌÅÍÀÇ µ¥ÀÌÅÍ Å¸ÀÔ. CÇü
SQLSMALLINT ParameterType, // ÆÄ¶ó¹ÌÅÍÀÇ µ¥ÀÌÅÍ Å¸ÀÔ. SQLÇü
SQLUINTEGER ColumnSize, // º¯¼öÀÇ Å©±â. ±×³É ¹®ÀÚ¿¸¸ ±æÀ̸¦ ¾Æ´Ô 0À¸·Î..
SQLSMALLINT DecimalDigits, // ÀÚ¸®¼ö. ±×³É 0À¸·Î..
SQLPOINTER ParameterValuePtr, // ÆÄ¶ó¹ÌÅÍ¿Í ¿¬°áµÉ º¯¼öÀÇ ¹øÁö
SQLINTEGER BufferLength, // ÆÄ¶ó¹ÌÅÍ ¹®ÀÚ¿À̳ª ÀÌÁøÇüÀÏ ¶§ ¹öÆÛÀÇ Å©±â¸¦ ÁöÁ¤. ±×³É 0À¸·Î..
SQLINTEGER *Strlen_or_IndPtr // ±æÀ̳ª »óÅÂ. ±æÀÌ´Â ¿ª½Ã SQL_NTS¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
);
SQLRETURN SQLPrepare(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength);
À̸§ ±×´ë·Î SQL½ÇÇàÀ» ÁغñÇÑ´Ù. ¿©±â¼ Áغñ¶ó´Â °ÍÀº ¹Ì¸® ÄÄÆÄÀÏÇØ ³õ´Â´Ù´Â ¶æÀε¥ ÁÖ·Î ÆÄ¶ó¹ÌÅÍ¿Í °°ÀÌ »ç¿ëµÈ´Ù.
¿©±â¼ ÆÄ¶ó¹ÌÅÍ·Î ¹ÙÀεùµÇ´Â º¯¼öÀÇ ³»¿ëÀ» ¹Ù²ãÁÖ¸é¼ ¹Ýº¹ÇÒ °æ¿ì µ¿ÀÏÇÑ ¹®ÀÚ¿ Á¶ÇÕº¸´Ù ºü¸£´Ù.
StatementHandleÀº ¸í·É ÇÚµéÀ̰í StatementText´Â SQL¹®ÀåÀÌ´Ù. TextLength´Â ¹®ÀÚ¿ÀÇ ±æÀÌ·Î ¿ª½Ã³ª SQL_NTS¸¦ »ç¿ë½Ã °£ÆíÇÏ´Ù.
SQLRETURN SQLExecute(SQLHSTMT StatementHandle);
½ÇÇàÇÑ´Ù. StatementHandleÀº ¿¬°áÇÚµéÀ̰í À§ÀÇ ÇÔ¼ö¿Í ¿¬°áµÇ¼ »ç¿ëµÈ´Ù.
Áø´Ü Á¤º¸
SQLRETURN ÇüÀÌ´Ù.
-----------------------------------------------------------------------------------------------------------------------
¿¡·¯ ½ÇÁ¦°ª ÀǹÌ
-----------------------------------------------------------------------------------------------------------------------
SQL_SUCCESS 0 ÇÔ¼ö È£ÃâÀÌ ¼º°ø.
SQL_SUCCESS_WITH_INFO 1 ÇÔ¼ö È£ÃâÀº ¼º°øÇßÀ¸³ª °æ°í°¡ ¹ß»ý. °æ¿ì¿¡ µû¶ó ¹«½ÃÇÒ¼öµµ ÀÖ°í ±×·¸Áö ¾ÊÀ»¼öµµ ÀÖÀ½
SQL_ERROR -1 ÀϹÝÀûÀÎ ¿¡·¯ÀÌ´Ù.
SQL_INVALID_HANDLE -2 ÇÚµéÀÌ ¹«È¿ÇÏ´Ù. ÀÌ°Ç 100%Äڵ带 À߸ø »ç¿ëÇÏ¿´±â ¶§¹®ÀÌ´Ù. ¹Ýµå½Ã ¼öÁ¤.
SQL_NO_DATA 100 ´õÀÌ»ó Àоî¿Ã µ¥ÀÌÅͰ¡ ¾ø´Ù. ¸ðµç ·¹Äڵ带 ´Ù ÀÐÀº EOF»óȲÀÌ´Ù.
SQL_NEED_DATA 99 Ãß°¡ÀûÀÎ Á¤º¸°¡ ÇÊ¿äÇÏ´Ù. ½ÇÇàÁß¿¡ ´õ ¸¹Àº ÇÊ¿äÇÑ ÆÄ¶ó¹ÌÅÍ µ¥ÀÌÅ͸¦ º¸³»¾ß ÇÏ´Â °æ¿ì´Ù.
SQL_STILL_EXECUTING 2 ÇÔ¼ö°¡ ºñµ¿±âÀûÀ¸·Î ½ÇÇàµÇ¾ú°í ¾ÆÁ÷ ½ÇÇàÁßÀÌ´Ù.
-----------------------------------------------------------------------------------------------------------------------
À©µµ¿ìÀÇ GetLastError¿Í °°Àº ¿ªÈ°À» ÇÏ´Â SQLGetDiagFieldÇÔ¼ö
Á¤º¸´Â Çì´õ·¹ÄÚµå¿Í »óÅ·¹Äڵ尡 ÀÖ´Ù.
Çì´õ·¹ÄÚµå(Header Record)´Â ÇÔ¼öÀÇ ¼º°øÀ¯¹«¶ûÀº »ó°ü¾øÀÌ ¸®ÅÏÄÚµå, ¸®ÅÏµÈ ·¹Äڵ尳¼ö, »óÅ ·¹ÄÚµåÀÇ °³¼ö, ½ÇÇàµÈ ¸í·É¾îÀÇ Á¾·ùµîÀÌ Æ÷ÇԵȴÙ.
»óÅ·¹ÄÚµå(Status Record)´Â º¸Åë Çϳª°¡ ¸®Åϵdzª ¿©·¯ °³ÀÇ ¿¡·¯°¡ µ¿½Ã¿¡ »ý°åÀ»¶§´Â »óÅ·¹ÄÚµåÀÇ °³¼öµµ ±×¸¸Å ¸®ÅϵȴÙ.
SQLRETURN SQLGetDiagField(
SQLSMALLINT HandleType, // ÇÚµé ŸÀÔÀÌ´Ù.
SQLHANDLE Handle, // ÇÚµéÀÌ´Ù.
SQLSMALLINT RecNumber, // 0¹ø Çì´õ ·¹ÄÚµå, 1¹ø ÀÌ»ó »óÅ ·¹ÄÚµå
SQLSMALLINT DiagIdentifier, // ÀаíÀÚ ÇÏ´Â ÇʵåÀÇ À̸§. ·¹ÆÛ·±½º ÂüÁ¶ ÇϽÿÀ.
SQLPOINTER DiagInfoPtr, // Á¤º¸¸¦ ¾ò±âÀ§ÇÑ Ãâ·Â¿ë º¯¼ö
SQLSMALLINT BufferLength, // À§ÀÇ º¯¼öÀÇ ¹öÆÛÀÇ Å©±â
SQLSMALLINT *StringLengthPtr // Ãâ·Â µÇ°íÀÚ ÇÏ´Â ³»¿ëÀÇ Å©±â
);
ÀÌ ÇÔ¼ö´Â ·¹ÄÚµåÀÇ ³»¿ëÀ» Çʵå´ÜÀ§·Î ÀÐÀ» ¼ö ÀÖ´Ù.
SQLRETURN SQLGetDiagRec(
SQLSMALLINT HandleType, // ÇÚµé ŸÀÔ
SQLHANDLE Handle, // ÇÚµé
SQLSMALLINT RecNumber, // 0¹ø Çì´õ ·¹ÄÚµå, 1¹ø ÀÌ»ó »óÅ ·¹ÄÚµå
SQLCHAR *SqlState, // ´Ù¼¸ÀÚ·ÎµÈ ¹®ÀÚ¿·Î ±¸¼º ¹Ø¿¡ ´ëÇ¥ÀûÀÎ ¸î°¡ÁöÀÌ´Ù.
SQLINTEGER *NativeErrorPtr, // °íÀ¯ ¿¡·¯ ÄÚµå. DBMS¸¶´Ù ´Ù¸§. ±×·¯¹Ç·Î Àß ¾È¾²ÀÓ.
SQLCHAR *MessageText, // ¿¡·¯ ¹ß»ý ¿øÀÎÀÇ ÅØ½ºÆ®. ¿¹¸¦ µé¸é "Å×À̺íÀÌ ¾ø³×¿ä." "Ä÷³ À̸§ÀÌ Æ²·È¾î¿ä" ÀÌ·±-_-
SQLSMALLINT BufferLength, // À§ÀÇ º¯¼öÀÇ ¹öÆÛÀÇ Å©±â
SQLSMALLINT *TextLengthPtr // Ãâ·Â µÇ°íÀÚ ÇÏ´Â ³»¿ëÀÇ Å©±â
);
ÀÌ ÇÔ¼ö´Â ·¹ÄÚµåÀÇ ³»¿ëÀÎ ¸ðµç Çʵ带 Çѹø¿¡ ÀÐ¾î ¿Â´Ù.
-------------------------------------------------------------
SQLSTATE ¼³¸í
-------------------------------------------------------------
01000 ÀϹÝÀûÀÎ ¿¡·¯
01004 ¹®ÀÚ¿ÀÇ ¿À¸¥ÂÊÀÌ Àß·È´Ù. ¹ÙÀεùµÈ ¹öÆÛÀÇ ±æÀ̰¡ ª´Ù.
01S02 ¿É¼ÇÀÌ º¯°æµÇ¾ú´Ù.
22003 ¼ýÀÚÀÇ ¹üÀ§°¡ ³Ñ¾ú´Ù.
42000 ¹®¹ý¿¡·¯ ¶Ç´Â ¾×¼¼½º À§¹Ý
42S02 Å×ÀÌºí ¶Ç´Â ºä°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù.
HY000 ÀϹÝÀûÀÎ ¿¡·¯
HYC00 ¿É¼ÇÀ¸·Î Á¦°øµÇ´Â ±â´ÉÀÌ ±¸ÇöµÇÁö ¾Ê¾úÀ½.
HYT00 Á¦Çѽð£ Ãʰú
-------------------------------------------------------------
EditText
of this page
(last modified 2008-11-05 11:01:00)
FindPage
by browsing, searching, or an index
Or try one of these actions:
DeletePage,
DeleteUploadedFile,
LikePages,
SpellCheck,
UploadFile