ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 DML
ÀÚ ÀÌÁ¦ºÎÅÍ ¿ÏÀüÇÑ ÇÁ·Î±×·¥ ¿¹Á¦¸¦ º¸±â·Î ÇÑ´Ù. ´ëÃæ ±âº»ÀûÀÎ °ÍµéÀº ¸ðµÎ ¹è¿ü´Ù. ÀÏ´Ü Á¶±Ý ¹è¿üÀ¸´Ï Çѹø ½á¸Ô¾î º¸ÀÚ.
¸ÕÀú Pro*C/C++ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸µµ·Ï ÇÑ´Ù. Pro*C/C++ ÇÁ·Î±×·¥Àº C ÄÄÆÄÀÏ·¯·Î ÄÄÆÄÀÏ ÇϱâÀü¿¡ ¸ÕÀú ÇÁ¸®-ÄÄÆÄÀÏ °úÁ¤À» °ÅÃÄ¾ß Çϸç ÇÁ¸®-ÄÄÆÄÀÏ·¯´Â ¿À¶óŬÀ» ¼³Ä¡ÇÒ ¶§ °°ÀÌ ¼³Ä¡µÇ°Å³ª Ãß°¡·Î ¼³Ä¡ÇØ¾ß ÇÑ´Ù. $ORACLE_HOME/bin ¹Ø¿¡ proc ¶ó´Â À̸§À¸·Î ¼³Ä¡µÇ¸ç ÇÊ¿äÇÑ Çì´õÆÄÀϵéÀº $ORACLE_HOME/precomp/public ¹Ø¿¡ ¶óÀ̺귯¸® ÆÄÀϵéÀº $ORACLE_HOME/lib ¹Ø¿¡ µé¾î°¡¸ç ½ÇÁ¦ ¸µÅ·°úÁ¤¿¡¼ ¾²ÀÌ´Â ¶óÀ̺귯¸® ÆÄÀÏÀº $ORACLE_HOME/lib/libclntsh.so ÆÄÀÏÀÌ´Ù.
ÇÁ·Î±×·¥ ÀÛ¼º °úÁ¤À» »ìÆìº¸ÀÚ.
ÀÌ ÇÁ·Î±×·¥Àº Pro*C/C++À» ÀÌ¿ëÇÑ DMLÀÛ¾÷ÀÌ´Ù. /* --------------------------------------------------------------------------------
ÆÄÀÏ À̸§ : dml.pc
°³¹ß ÀÏÀÚ : 2002-10-28
ÀÛ¼ºÀÚ : ·ù¸íȯ
-------------------------------------------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
/*
* $ORACLE_HOME/precomp/public/sqlca.h ¸¦ Æ÷ÇÔÇØ ÁÖ±â À§Çؼ
*/
exec sql include sqlca;
/*
* È£½ºÆ® º¯¼ö ¼±¾ð
*/
exec sql begin declare section;
/*
* »ç¿ëÀÚ ID¿Í ÆÐ½º¿öµå
*/
char *username;
char *password;
/*
* emp Å×À̺íÀÇ Ä®·³ ¸®½ºÆ®
*/
int empno;
int mgr;
int sal;
int comm;
int deptno;
char *ename;
char *job;
char *hiredate;
/*
* emp Å×À̺í Ä®·³µéÀÇ Indicator º¯¼ö
*/
short ind_empno;
short ind_mgr;
short ind_sal;
short ind_comm;
short ind_deptno;
short ind_ename;
short ind_job;
short ind_hiredate;
exec sql end declare section;
/*
* SQL ¿¡·¯ ¹ß»ý½Ã ½ÇÇàÇÒ ÇÔ¼ö
* ¿¡·¯Äڵ带 ÇÁ¸°Æ® ÇÏ°í ·Ñ¹é ÈÄ¿¡ Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
*/
void sql_error (void)
{
printf ("SQL Error Code : %d\n", sqlca.sqlcode);
printf ("SQL Error Message : %s\n", sqlca.sqlerrm.sqlerrmc);
exec sql whenever sqlerror continue;
exec sql rollback work release;
exit (EXIT_FAILURE);
}
/*
* Standard Input ¿¡¼ ¹®ÀÚ¿À» ¹Þ¾Æ¼ ÀúÀåÇÏ´Â ÇÔ¼ö
* ÀÔ·ÂÀÌ ¾øÀ¸¸é -1À» ¸®ÅÏÇÑ´Ù.
*/
int get_value (char *buf, char *prompt)
{
printf (prompt);
fgets (buf, 256, stdin);
/*
* \r\nÀ» Á¦°ÅÇÑ´Ù.
*/
buf [strlen (buf) - 1] = '\0';
if (strlen (buf) == 0)
{
return -1;
}
else
{
return 0;
}
}
/*
* µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇϰí Insert, Update, Delete¸¦
* ÁøÇàÇÑ ÈÄ Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
*/
int main (void)
{
char buf [256];
printf ("Input Data to Insert\n");
ind_empno = get_value (buf, "Empno (Max 4) : ");
empno = atoi (buf);
ind_ename = get_value (buf, "Ename (Max 10) : ");
ename = (char *)strdup (buf);
ind_job = get_value (buf, "Job (Max 10) : ");
job = (char *)strdup (buf);
ind_mgr = get_value (buf, "Manager (Max 4) : ");
mgr = atoi (buf);
ind_sal = get_value (buf, "Salary (Max 7) : ");
sal = atoi (buf);
ind_comm = get_value (buf, "Comm (Max 7) : ");
comm = atoi (buf);
ind_deptno = get_value (buf, "Deptno (Max 2) : ");
deptno = atoi (buf);
/*
* »ç¿ëÀÚ ID¿Í Password¸¦ ¼³Á¤ÇÏ°í µ¥ÀÌŸº£À̽º¿¡ Á¢¼ÓÇϰí
* sqlca.sqlcode ¸¦ ÅëÇØ ¿¡·¯°¡ ÀÖ´ÂÁö °Ë»çÇÑ´Ù.
*/
username = (char *)strdup ("scott");
password = (char *)strdup ("tiger");
exec sql
connect :username identified by :password;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Connected to Oracle Database\n");
/*
* Insert ¸¦ ¼öÇàÇÑ´Ù. Ä®·³ °ª µÚ¿¡ Indicator¸¦ ºÙ¿©¼
* NULLÀÌ ÀÖÀ» °æ¿ì Á¤È®È÷ NULLÀ» ³Öµµ·Ï ÇÑ´Ù.
* sqlca.sqlcode ¸¦ »ç¿ëÇÏ¿© SQL ½ÇÇà¿¡ ¿¡·¯°¡ ÀÖ¾ú´ÂÁö °Ë»çÇÑ´Ù.
*/
exec sql
insert into emp
values (:empno:ind_empno, :ename:ind_ename, :job:ind_job, :mgr:ind_mgr,
sysdate, :sal:ind_sal, :comm:ind_comm, :deptno:ind_deptno);
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Inserted to Emp table in Oracle Database\n");
/*
* Insert ÇÑ ÈÄ¿¡ µ¥ÀÌÅ͸¦ Àû¿ëÇÑ´Ù.
* À̶§ µ¥ÀÌÅͺ£À̽º¿Í Á¢¼ÓÀÌ ²÷¾îÁöÁö ¾Êµµ·Ï ÁÖÀÇÇÑ´Ù.
*/
exec sql
commit work;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Input Data to Update\nSalary Increase and Comm Increase\n");
ind_empno = get_value (buf, "Empmo (Max 4) : ");
empno = atoi (buf);
ind_sal = get_value (buf, "Sal (Max 7) : ");
sal = atoi (buf);
ind_comm = get_value (buf, "Comm (Max 7) : ");
comm = atoi (buf);
/*
* Update ÇÑ´Ù.
* µ¥ÀÌÅ͸¦ Àû¿ëÇϱâÀü¿¡ SQL ¹®ÀåÀÌ Àß ½ÇÇàµÇ¾ú³ª °Ë»çÇÑ´Ù.
*/
exec sql
update emp
set sal = :sal:ind_sal, comm = :comm:ind_comm
where empno = :empno;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Updated to Emp table in Oracle Database\n");
/*
* º¯°æµÈ µ¥ÀÌÅÍ Àû¿ëÇÑ´Ù.
*/
exec sql
commit work;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Input Data to Delete\n");
/*
* »èÁ¦ÇÒ »ç¶÷ÀÇ »ç¿ø ¹øÈ£¸¦ ÀÔ·Â ¹Þ´Â´Ù.
*/
ind_empno = get_value (buf, "Empmo (Max 4) : ");
empno = atoi (buf);
/*
* Delete ÇÑ´Ù. ¿ª½Ã SQL ½ÇÇà °á°ú¸¦ °Ë»çÇÑ´Ù.
*/
exec sql
delete from emp
where empno = :empno;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Deleted from Emp table in Oracle Database\n");
/*
* º¯°æµÈ µ¥ÀÌÅ͸¦ Àû¿ëÇÑ´Ù.
*/
exec sql
commit work;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
/*
* µ¥ÀÌÅͺ£À̽º¿Í Á¢¼ÓÀ» Á¾·áÇÑ´Ù.
* Rollback À¸·Î Á¢¼ÓÀ» Á¾·áÇÑ °ÍÀº Ưº°ÇÑ ÀÌÀ¯´Â ¾ø´Ù. ^^
*/
exec sql
rollback work release;
if (sqlca.sqlcode != 0)
{
sql_error ();
}
printf ("Disconnect from Oracle Database\n");
exit (EXIT_SUCCESS);
}
ÄÚµåÀÇ ³»¿ëÀº emp Å×ÀÌºí¿¡ »õ·Î¿î »ç¶÷ÀÇ Á÷¿ø Á¤º¸¸¦ ÀÔ·ÂÇÑ ÈÄ Á¢¼ÓÀ» À¯ÁöÇÑ »óÅ¿¡¼ µ¥ÀÌÅÍÀÇ º¯°æÀ» Àû¿ëÇÏ°í ¾î¶² »ç¶÷ÀÇ Á¤º¸¿¡¼ ±Þ¿©¿Í »ó¿©¸¦ »õ·Î ÀÔ·Â¹Þ¾Æ ¼öÁ¤ÇÑ ÈÄ Àû¿ëÇÑ´Ù. ±×¸®°í ¾î¶² »ç¶÷ÀÇ »ç¿ø ¹øÈ£¸¦ ÀԷ¹޾Ƽ »èÁ¦ÇÏ´Â °ÍÀÌ´Ù. ÇÁ·Î±×·¥»ó ¾î·Á¿î Á¡Àº ¾øÀ» °ÍÀÌ´Ù. ÇÁ·Î±×·¥µµ ½±°Ô ÀÛ¼º µÇ¾ú°í ÁÖ¼®µµ Àß ´Þ¾Æ³õ¾Ò´Ù. Çѹø ºÐ¼®Çغ¸°í ½ÇÇàÇØº¸¶ó.
À§¿¡ º¸¾Ò´ø ÇÁ·Î±×·¥Àº Pro*C/C++ ¿¡¼ °¡Àå ±âº»µÇ´Â °ÍÀÌ´Ù. ¹¹ ±×·¸´Ù°í ÀÌ·± ÇÁ·Î±×·¥Àº ¾²ÀÓ»õµµ ¾ø´Ù´Â °ÍÀº ¾Æ´Ï´Ù. ½ÇÁ¦·Î ÀÌÁ¤µµ ¼öÁØÀÌ¸é ¿Ø¸¸ÇÑ ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß¿¡¼± ¸¸Á·ÇÒ ¸¸ÇÏ´Ù. ½ÇÁ¦ ´ëºÎºÐÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ »ç¿ëµÇ´Â ¼öÁØÀÌ ÀÌÁ¤µµÀÌ´Ù. ´Ü¼øÈ÷ DMLÁ¤µµ·Î »ç¿ëÀÚ Á¤º¸¸¦ °¡Á®¿Â´Ù´øÁö »ðÀÔ, »èÁ¦, ¼öÁ¤ÀÌ ´ëºÎºÐÀÇ ÀÛ¾÷À̱⠶§¹®ÀÌ´Ù.
|
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|