´ë¹®    
FindPage  |  TitleIndex  |  UserPreferences  |  [http]me2day  |  redpixel
RecentChanges
 


luaDB - ·ç¾Æ¿ë ODBC ¿¬°áÅø

Contents

1 ¼Ò°³
2 Ư¡
3 °£ÀÌ ¸Þ´º¾ó
4 ¿¹Á¦

1 ¼Ò°³ #

  • ¸ÞÀÎ ¸µÅ© : [http]http://www.xtgsystems.com/linux/lua/luasimdb.php
  • ´Ù¿î·Îµå : [http]http://www.xtgsystems.com/linux/download/lua/luadb/
  • ·ç¾Æ¿ë ¸ÖƼ µ¥ÀÌŸº£À̽º ¿¬°á ÅøÀÔ´Ï´Ù. ¶óÀ̺귯¸® Çü½ÄÀ¸·Î µÇ¾îÀÖ°í »ó´çÈ÷ ÆíÇÏ°í °­·ÂÇÕ´Ï´Ù.
  • ÆÐÄ¡ ¼º°ø! Å×±× ¸Þ¼Òµå·Î ÄÚµùµÇ¾îÀÖ´Â °ÍÀ» ¸ðµÎ ¸ÞŸÅ×À̺í·Î º¯°æÇß½À´Ï´Ù. :D RedpixelÀÇ ·ç¾Æ lib ´Ù¿î·Îµå¿¡ ÀÖ´Â Á¦ º£Æ÷º»¿¡ Æ÷ÇԵǾîÀÖÀ¸¹Ç·Î »ç¿ëÇÏ½Ç ºÐÀº ¹Þ¾Æ°¡½Ã±æ... Âü°í·Î ÀÌ ¹èÆ÷º»Àº ·ç¾Æ 5.0 ¾ËÆÄ¹öÁ¯À» ±â¹ÝÀ¸·Î ÇÑ °ÍÀÔ´Ï´Ù.

2 Ư¡ #

  • LuaDB´Â SimpleDB API¿¡¼­ Á¦°øÇÏ´Â ±â´É Àüü¸¦ Á¦°ø.
  • ¼­·Î´Ù¸¥ µ¥ÀÌŸº£À̽º¿¡ ¿¬°áÇÏ´Â °Í¿¡¼­ ºÎÅÍ µ¿½Ã¿¡ ¼­·Î ´Ù¸¥ ¹é¿£µå »ç¿ëÀÌ °¡´É.
  • Æ®·»Á§¼Ç±â´É(commit°ú rollback±â´É)À» Á¦°øÇϸç, NULL°ªÀ» Áö¿øÇÑ´Ù. (·ç¾Æ¿¡¼­´Â nil°ªÀ¸·Î Ç¥ÇöµÈ´Ù).
  • 'ÇϺο¡ ±ò·ÁÀÖ´Â' ¿¬°á Ç®¸µÀÌ °¡´ÉÇÏ´Ù. (À̰ÍÀº ¹é¿£µå¿¡ ÀÇÇØ Á¦°øµÈ´Ù¸é ´ÙÁß ¿¬°áÀÇ È¿À²À» ¿Ã¸±¼ö ÀÖ´Â ±â´ÉÀÌ´Ù.)
  • ¹é¿£µå Á¤º¸¿¡ µû¸¥ ÀÚµ¿ µ¥ÀÌŸ ŸÀÔ º¯È¯À» Á¦°øÇÑ´Ù. À̰ÍÀº À妽º¿Í Ä÷³ÀÇ À̸§(¾Ë¸®¾î½º)µÑ´Ù¿¡ ÀÇÇØ Űó¸®µÈ °á°ú°ªµéÀ» ¹ÝȯÇϸç, ÀüÁ¤ÇÑ °áÇÕ º¯¼ö±â´ÉÀ» Áö¿øÇÑ´Ù. (´Ù½Ã¸»Çϸé, ÁúÀǹ®À» ¸¸µé¶§ °ªÀ» º¯È¯Çϰųª º´ÇÕÇÒ Çʿ䰡 ¾ø´Ù.)
  • ENV-CON-STMT °èÃþ¹æ½ÄÀº DB¶ó´Â ÇϳªÀÇ °´Ã¼·Î ÀÛµ¿ÇÏ°Ô µÇ¾îÀÖ¾î, º¹ÀâÇÑ ÄÚµù½Ã°£À» ÁÙÀÏ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ´Ù.

3 °£ÀÌ ¸Þ´º¾ó #

ÀÌ ÅøÀº ENV, CON, CUR¿¡ ÇØ´çÇÏ´Â 3Ƽ¾î SQL ÇÔ¼öµéÀ» ´Ü¼øÈ­ ½ÃÄѳõ¾Ò´Ù. ´Ü¼øÈ÷ ENV(µå¶óÀ̹ö °´Ã¼¿¡ ÇØ´ç)°ú DB(¿¬°á°ú Ä¿¼­ °´Ã¼¿¡ ÇØ´ç)À» »ç¿ëÇÏ¸é µÈ´Ù. ¿¬°áµéÀº ÀÚµ¿ÀûÀ¸·Î Ç®¸µÃ³¸®µÇ¸ç ½±°Ô º¹»çµÉ ¼ö ÀÖ´Ù. Ä¿¼­µéÀº ¸Þ¸ð¸®¸¦ Àý¾àÇϱâ À§ÇØ °¡´ÉÇÑÇÑ ºü¸£°Ô ÀÚµ¿ÀûÀ¸·Î ÇÒ´ç/ÇØÁ¦µÈ´Ù. (fetch°¡ È£ÃâµÇ°í ´õÀÌ»ó µ¥ÀÌŸ°¡ ¾ø´Â °æ¿ì³ª ȤÀº close ¶Ç´Â gc°¡ È£ÃâµÈ °æ¿ì¿¡ Ä¿¼­µéÀº ´ÙÀ½ ½ÇÇàÀ» ¼öÇàÇϱâ Àü¿¡ ¸Þ¸ð¸® ÇØÁ¦µÈ´Ù.)

¸ÕÀú µå¶óÀ̹ö¸¦ ·ÎµùÇÏÀÚ.
ENV,err = SQLOpen( 'simdb_odb.dll' ); print(err); -- ODBC µå¶óÀ̹ö¸¦ ·ÎµùÇÑ´Ù.

±×´ÙÀ½ ´ÙÀ½ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© DB¿¡ ¿¬°áÀ» ½ÃµµÇÒ ¼ö ÀÖ´Ù.
DB,err = ENV:ConnectDB{ db='crts', uid='sysdba', pwd='masterkey', host='localhost' }; print(err);

°°Àº ÀÎÀÚ¸¦ °¡Áø ¶Ç´Ù¸¥ ConnectDB°¡ È£ÃâµÇ¸é ¿¬°áÀº °øÀ¯µÈ´Ù. ¶ÇÇÑ º¹ÀâÇÑ ÀÎÀÚ¸¦ ¾²Áö ¾Ê°í¼­µµ ÀÌ¹Ì Á¸ÀçÇÏ´Â DB°´Ã¼·ÎºÎÅÍ ¶Ç´Ù¸¥ DB°´Ã¼¸¦ º¹Á¦ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.
DB2 = DB:Clone();

ÁúÀǹ®À» ½ÇÇàÇÏ·Á¸é Execute¸¦ »ç¿ëÇÑ´Ù. ¹Ýȯ°ªÀº 1À̸é Á¤»ó, nilÀÌ¸é ¿¡·¯ÀÌ´Ù.
ret,err = DB:Execute( "select * from MYTABLE" ); print(err);

ÆäÄ¡µµ Á¤¸»·Î ½±´Ù.
ind,row = DB:Fetch();

ind´Â »óÅ Áö½ÃÀÚÀÌ´Ù. (nilÀÌ¸é µ¥ÀÌŸÀÇ ³¡À» ÀǹÌÇÑ´Ù.) ±×¸®°í row´Â µ¥ÀÌŸÀÇ ÇÑ ¿­À» ³ªÅ¸³½´Ù. (Ä÷³¸í/¾Ë¸®¾Æ½º¿Í 1~n±îÁöÀÇ ¼ýÀÚ¿¡ ÀÇÇØ À妽ºµÇ¾îÁ® ÀÖ´Ù.)

Commit°ú RollbackÀº ¸»±×´ë·Î ½ÇÇàÇÏ¸é µÈ´Ù. Close ÇÔ¼ö´Â DB°´Ã¼ÀÇ ¿¬°áÀ» ²÷°í ¸Þ¸ð¸® ÇØÁ¦¸¦ ½ÃµµÇÑ´Ù. Close¸¦ ½ÇÇàÇÑ ÈÄ¿¡´Â °´Ã¼¸¦ »ç¿ëÇÏ¸é ¾ÈµÈ´Ù. (ºñÁ¤»óÀûÀ¸·Î Á¾·áÇÏ°Ô µÈ´Ù.) ¸ðµç DB°´Ã¼µéÀº "gc" ¸Þ¼Òµå°¡ ÁöÁ¤µÇ¾îÀÖÀ¸¹Ç·Î ¸í½ÃÀûÀ¸·Î Close¸¦ ÇÒ ÇÊ¿ä´Â ¾ø´Ù. À̰ÍÀº ENV°´Ã¼¿¡µµ ¸¶Âù°¡Áö·Î Àû¿ëµÈ´Ù. DB:Close¸¦ ½ÇÇàÇÏÁö ¾Ê¾Ò´Ù¸é Àý´ë·Î ENV:Close¸¦ È£ÃâÇÏÁö ¸»µµ·Ï ÇØ¶ó!

ÀÚµ¿ ¿¬°á Ç®¸µÀ» ²ô·Á¸é ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÑ´Ù.
ENV:SetOptions{ pooling=0 };

¹Ý´ë·Î ÄÑ·Á¸é ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÑ´Ù.
ENV:SetOptions{ pooling=1 };

(¿ªÁÖ : °£´ÜÇÏ´Ù. À̺¸´Ù ´õ ½¬¿ï¼ö´Â ¾ø´Ù. _ ODBC³ª ADO ÄÚµùÇѹøÀÌ¶óµµ ÇØº» ºÐÀº »À.Àú.¸®.°Ô. ´À³¥¼ö ÀÖÀ»°ÍÀÌ´Ù.)

4 ¿¹Á¦ #

ENV,err =SQLOpen( 'simdb_odb.dll' ); print(err); -- MySQL µå¶óÀ̹ö¸¦ ÃʱâÈ­ÇÏ°í ¿¬°áÇÑ´Ù.
-- µ¥ÀÌŸº£À̽º¿¡ ¿¬°áÇÏÀÚ
DB,err = ENV:ConnectDB{ db='crts', uid='sysdba', pwd='masterkey', host='localhost' }; print(err);

ret,err = DB:Execute( "insert into RQ_DTYP (id_dtyp,nazev) values (12,?)", 'hello' ); print(err);

ret,err = DB:Execute( "select * from RQ_FAZE" ); print(err);

while 1 do
   ind,row = DB:Fetch();
   if not ind then break; end;   -- ³¡±îÁö Àоîµé¿´À¸¸é ·çÇÁ¸¦ Á¾·áÇÑ´Ù.
   print(row[1] .. ' ' .. row[2]);
end;

DB:Close();
ENV:Close();


EditText | FindPage | DeletePage | LikePages

Powered by MoniWiki
xhtml1 | css2 | any browser | rss
Last modified 2004-02-26 12:56:43
Loading 0.0657 sec