|
|
|
[edit]
1 ¼Ò°³ #
[edit]
2 Ư¡ #
[edit]
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 ÄÚµùÇѹøÀÌ¶óµµ ÇØº» ºÐÀº »À.Àú.¸®.°Ô. ´À³¥¼ö ÀÖÀ»°ÍÀÌ´Ù.)
[edit]
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();
|
|
|||||||||