¾È³çÇϼ¼¿ä...
Connection °³Ã¼ÀÇ ¼Ó¼º ´ëÇؼ °£´ÜÈ÷ ¾Ë¾Æº¸¼ÌÂÇ????
¿À´ÃÀº ÀÌ °³Ã¼ÀÇ ¸Þ¼Òµå´Â ¾î¶²°ÍµéÀÌ ÀÖ´ÂÁö¸¦ ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
5.4.1 BeginTrans, CommitTrans, RollbackTrans ¸Þ¼Òµå
À§ ¼¼°³ÀÇ ¸Þ¼Òµå¸¦ »ç¿ëÇÑ ¿¹Á¦ ÀÔ´Ï´Ù.
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
objCnn.BeginTrans
strSql=" INSERT INTO BOARD(NUMBER,TITLE,CONTENT) VALUES(1,'¿¬½À','³»¿ëÀÔ´Ï´Ù.')"
Set objRs = objCnn.Execute(strSql)
If objCnn.Errors.Count > 0 Then
objCnn.RollBackTrans
objCnn.close
Set objCnn=Nothing
response.write "Error Transection"
Else
objCnn.CommitTrans
objCnn.close
Set objCnn=Nothing
response.write "OK Transection"
End If
objCnn.close
Set objCnn=Nothing
Æ®·£Á§¼Ç¿¡ ´ëÇÑ °³³äÀº ¾Ë°í °è½Ã¸®¶ó ¹Ï½À´Ï´Ù. Ȥ½Ã ¸ð¸£½Å´Ù¸é, MS_SQL °ÁÂÂÊ¿¡
Transaction & Lock ¸Þ´º¸¦ ¸ÕÀú º¸½ÅÈÄ¿¡ ¿À¼¼¿ë.
¿©±â¿¡¼´Â Æ®·£Àè¼Ç¿¡ ´ëÇÑ ³»¿ëÀÌ ¾Æ´Ï¶ó Connection °³Ã¼¿¡ ¸Þ¼Òµå¿¡ ´ëÇÑ ³»¿ëÀ̱⠶§¹®ÀÌÁ®.
À§ÀÇ ¼Ò½º¸¦ º¸¸é, objCnn.BeginTrans ¶ó°í Çß½À´Ï´Ù. Áï, Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÑ´Ù´Â ³»¿ëÀä.
ÀÌÈÄ¿¡ ³ª¿À´Â µðºñ Çڵ鸵Çϴ°Ϳ¡ ´ëÇؼ´Â commitTrans,rollbackTrans¸¦ ¸¸³ª¾ß
µ¥ÀÌÅͼöÁ¤ÀÌ Á¾·áµÇ´Â°ÍÀ» ¶æÇÕ´Ï´Ù.
¾Æ½ÃÁ®???
À§ÀÇ ¿¹Á¦¿¡¼´Â error Ä÷º¼ÇÀ» ÀÌ¿ëÇؼ rollbacktrans,commitTransÀ» ó¸®ÇÏ°Ô µÇ¾î ÀÖ½À´Ï´Ù.
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
objCnn.BeginTrans
strSql=" INSERT INTO BOARD(board_idx,TITLE,CONTENT) VALUES(1,'¿¬½À','³»¿ëÀÔ´Ï´Ù.')"
Set objRs = objCnn.Execute(strSql)
objCnn.RollbackTrans
objCnn.close
Set objCnn=Nothing
À§ÀÇ ¿¹Á¦´Â µ¥ÀÌÅ͸¦ ÀúÀåÇÑÈÄ ¹Ù·ç rollbackTrans À» ó¸®ÇÑ ¿¹ÀÔ´Ï´Ù.
µðºñ¿¡¼ È®ÀÎÇØ º¸¸é, ÀúÀåÀÌ µÇÁö ¾Ê¾Ò°ÚÁö¿ä???
5.4.2 Close ¸Þ¼Òµå
ÀÌ ¸Þ¼µå´Â ¿·ÁÁø Connection °³Ã¼¿Í ±× ÇÏÀ§ °³Ã¼¸¦ ´Ý´Â ¸Þ¼Òµå ÀÔ´Ï´Ù.
5.4.3 Execute ¸Þ¼Òµå
°¡Àå ¸¹ÀÌ »ç¿ëÇÏ´Â ¸Þ¼Òµå Áß¿¡ ÇϳªÀÌÁö¿ä???
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
strSql=" INSERT INTO BOARD(board_idx,TITLE,CONTENT) VALUES(1,'¿¬½À','³»¿ëÀÔ´Ï´Ù.')"
Set objRs = objCnn.Execute(strSql)
objCnn.close
Set objCnn=Nothing
À§¿Í ÇÔ²² »ç¿ë »ç¿ëÇϼÌÁö¿ä???
¿©±â±îÁö´Â ´Ù ¾Æ½Ã´Â ³»¿ëÀÌ´Ï, ³Ñ¾î°¡±â·ç Çϱ¸¿ä. ¿ì¸° ¿©±â¿¡¼ ÇÑ´Ü°è ±íÀÌ µé¾î°¡ º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
¸¸¾à ¿©·¯ºÐÀÌ ¿©±â¿¡¼ SQL ¹®ÀåÀ» ÅëÇØ ¿µÇâÀ» ¹ÞÀº ·¹ÄÚµåÀÇ ¼ö¸¦ ¾Ë¾Æº¸°íÀÚ ÇÑ´Ù¸é
¾î¶»°Ô ÇϽðڽÀ´Ï±î???
À¢ °©Àڱ⠷¹ÄÚµå ¼ö³Ä±¸¿ä???
Execute ¸Þ¼Òµå¿¡¼ ÀÌ·¯ÇÑ Á¤º¸µµ »Ì¾Æº¼¼ö ÀÖ½À´Ï´Ù. ±×¸®±¸, ¿©·¯°¡Áö ¸Å°³º¯¼ö¸¦ ÅëÇØ ¼öÇàµÇ´Â
commandText(¿©±â¿¡¼´Â strSql)°¡ SQL ¹®ÀåÀÎÁö,Å×À̺í¸íÀÎÁö, ÀúÀå ÇÁ·Î½ÃÁ®ÀÎÁö¸¦ ÁöÁ¤ÇÒ¼öµµ ÀÖ½À´Ï´Ù.
±×·³, ÀÏ´Ü Execute ¸Þ¼ÒµåÀÇ ±¸¹®À» ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
1) RecordsetÀÌ ¹ÝȯµÉ°æ¿ì
Set objCnn = Server.CreateObject("ADODB.Connection")
:
SET objRs=objCnn.Execute(CommandText As String,[RecordsAffected As Long],[Options As Enum])
2) Recordset °³Ã¼°¡ ¹ÝȯµÇÁö ¾ÊÀ» °æ¿ì
Set objCnn = Server.CreateObject("ADODB.Connection")
:
Connection.Execute CommandText As String,[RecordsAffected As Long],[Options As Enum]
|
À§¿Í °°Àº ±¸¹®À» »ç¿ëÇÕ´Ï´Ù.
1. CommandText : ¼öÇàÇÒ ¸í·ÉÀ» ±â¼úÇÏ´Â ¸Å°³º¯¼öÀÔ´Ï´Ù.SQL ¹®Àå,Å×À̺í¸í,ÀúÀå ÇÁ·Î½ÃÁ®µîÀ» ±â¼úÇÕ´Ï´Ù.
2. RecordsAffected : Execute ¸Þ¼Òµå¿¡ ÀÇÇؼ ¿µÇâÀ» ¹ÞÀº ·¹ÄÚµåÀÇ °¹¼ö¸¦ ¹ÝȯÇÕ´Ï´Ù.
3. Options : Provider°¡ CommandText¸¦ ¾î¶»°Ô ¼öÇàÇÒÁö¸¦ °áÁ¤ÇÏ´Â ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â °ªÀÔ´Ï´Ù.
Options ¸Å°³º¯¼ö¿¡´Â ¾Æ·¡ Ç¥ÁßÀÇ ÇϳªÀÇ °ªÀ» °¡Áú¼ö ÀÖ½À´Ï´Ù.
¼Ó ¼º |
¼³ ¸í |
adCmdText
adCmdTable
adCmdTableDirect
adCmdStoredProc
adCmdUnknown
adAsyncExecute
adAsyncFetch |
CommandTextÀÇ °ªÀ» SQL ¹®ÀåÀ¸·Î ó¸®ÇÑ´Ù.
CommandTextÀÇ °ªÀ» Å×ÀÌºí ¸íÀ¸·Î ÇÏ´Â sql ¹®ÀåÀ» ¸¸µé¾î ó¸®ÇÑ´Ù.
CommandTextÀÇ °ªÀ» Å×À̺í¸íÀ¸·Î ó¸®ÇÑ´Ù.
CommandTextÀÇ °ªÀ» ÀúÀå ÇÁ·Î½ÃÁ®·Î ó¸®ÇÑ´Ù.
¸í·ÉÀÇ Çü½ÄÀ» ¾Ë¼ö ¾øÀ½À¸·Î ó¸®ÇÑ´Ù.
¸í·ÉÀ» ºñµ¿±âÀûÀ¸·Î ¼öÇàÇÑ´Ù.
CasheSize ¼Ó¼º¿¡ ÁöÁ¤µÈ ¼ö ¸¸ÅÀÇ ·¹Äڵ徿 ºñµ¿±âÀûÀ¸·Î ó¸®ÇÑ´Ù. |
±×·³, °£´ÜÇÏ°Ô ¸î°¡Áö ¿¹Á¦¸¦ º¸¸é¼ Å×½ºÆ® Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
strSql=" INSERT INTO BOARD(board_idx,TITLE,CONTENT) VALUES(1,'¿¬½À','³»¿ëÀÔ´Ï´Ù.')"
Set objRs = objCnn.Execute(strSql,aa)
response.write aa
objCnn.close
Set objCnn=Nothing
À§ÀÇ ¿¹Á¦¸¦ º¸¸é
Set objRs = objCnn.Execute(strSql,aa)
aa ¸Å°³º¯¼ö´Â sql¹®ÀåÀ» ¼öÇàÇÑÈÄ ¿µÇâÀ» ¹ÞÀº ·¹ÄÚµåÀÇ ¼ö¸¦ ¹ÝȯÇÏ´Â º¯¼ö°¡ µË´Ï´Ù.
À§ÀÇ ¿¹Á¦¿¡¼´Â ·¹Äڵ尡 Çϳª ¿µÇ⠹޾ұ⠶§¹®¿¡ '1'À̶õ °ªÀÌ Ãâ·ÂÀÌ µË´Ï´Ù.
¾Æ·¡ÀÇ ¿¹Á¦´Â Options ¸Å°³º¯¼ö±îÁö »ç¿ëÇÑ ¿¹ ÀÔ´Ï´Ù.
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
Set objRs = objCnn.Execute("test 1",aa,adCmdStoredProc)
response.write aa&"<br>"
response.write objRs("title")
objCnn.close
Set objCnn=Nothing
ÀúÀå ÇÁ·Î½ÃÁ® ³»¿ë....
CREATE PROCEDURE test (@class varchar(50)) AS
select board_idx,title from board where board_idx=@class
test¶õ À̸§À¸·Î ÀúÀåÇÁ·Î½ÃÁ®¸¦ Çϳª ¸¸µé¾ú½À´Ï´Ù.
À§ÀÇ °æ¿ì adCmdStoredProc ´Â ÀúÀåÇÁ·Î½ÃÁ®¸¦ ¶æÇÏ°Ô µÇ¹Ç·Î ÀúÀåÇÁ·Î½ÃÁ®¿¡¼ Àоî¿Í ½ÇÇàÇÏ°Ô µË´Ï´Ù.
¿µÇâÀ» ¹ÞÀº ·¹ÄÚµå´Â ¾ø±â¶§¹®¿¡ aa º¯¼ö´Â -1ÀÌ ¹ÝȯµÇ±¸ title¿¡´Â °á°ú°¡ ³ª¿À´Â°ÍÀ» ¾Ë¼ö ÀÖ½À´Ï´Ù.
5.4.4. OpenSchema ¸Þ¼Òµå
OpenSchema ¸Þ¼µå´Â ¼¹ö¿¡ ÀÖ´Â µ¥ÀÌÅͺ£À̽ºÀÇ Á¤º¸ ¶Ç´Â Å×À̺íÀÇ ÇʵåÀÇ Á¤º¸¿Í °°Àº µ¥ÀÌÅÍ ¼Ò½ºÀÇ
Á¤º¸¸¦ ¹ÝȯÇÏ´Â ¸Þ¼µå ÀÔ´Ï´Ù.
OpenSchema ±¸¹®À» »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
set Rs=objCnn.OpenSchema(QueryType,Criteria,SchemaID)
'---- SchemaEnum Values ----
Const adSchemaProviderSpecific = -1
Const adSchemaAsserts = 0
Const adSchemaCatalogs = 1
Const adSchemaCharacterSets = 2
Const adSchemaCollations = 3
Const adSchemaColumns = 4
Const adSchemaCheckConstraints = 5
Const adSchemaConstraintColumnUsage = 6
Const adSchemaConstraintTableUsage = 7
Const adSchemaKeyColumnUsage = 8
Const adSchemaReferentialConstraints = 9
Const adSchemaTableConstraints = 10
Const adSchemaColumnsDomainUsage = 11
Const adSchemaIndexes = 12
Const adSchemaColumnPrivileges = 13
Const adSchemaTablePrivileges = 14
Const adSchemaUsagePrivileges = 15
Const adSchemaProcedures = 16
Const adSchemaSchemata = 17
Const adSchemaSQLLanguages = 18
Const adSchemaStatistics = 19
Const adSchemaTables = 20
Const adSchemaTranslations = 21
Const adSchemaProviderTypes = 22
Const adSchemaViews = 23
Const adSchemaViewColumnUsage = 24
Const adSchemaViewTableUsage = 25
Const adSchemaProcedureParameters = 26
Const adSchemaForeignKeys = 27
Const adSchemaPrimaryKeys = 28
Const adSchemaProcedureColumns = 29
Const adSchemaDBInfoKeywords = 30
Const adSchemaDBInfoLiterals = 31
Const adSchemaCubes = 32
Const adSchemaDimensions = 33
Const adSchemaHierarchies = 34
Const adSchemaLevels = 35
Const adSchemaMeasures = 36
Const adSchemaProperties = 37
Const adSchemaMembers = 38
Const adSchemaTrustees = 39
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
Set objRs = objCnn.OpenSchema(adSchemaTables)
do until objRs.eof
response.write objRs("TABLE_CATALOG")&":"&objRs("TABLE_SCHEMA")&":"
&objRs("TABLE_NAME")&":"&objRs("TABLE_TYPE")&"<BR>"
objRs.movenext
loop
À§ÀÇ ¿¹Á¦´Â OpenSchema ¸Þ¼ÒµåÀÇ QueryTypeÀÌ adSchemaTables ÀÎ °ª(Criteria)µéÀ» »Ì¾Æ ¿Â°ÍÀÔ´Ï´Ù.
adSchemaTables QueryTypeÀ» ÀÌ¿ëÇؼ »Ì¾Æ¿Ã¼ö ÀÖ´Â °ªµéÀº 4°¡Áö°¡ ÀÖ½À´Ï´Ù.
TABLE_CATALOG -> µ¥ÀÌŸº£À̽º À̸§
TABLE_SCHEMA -> Å×ÀÌºí ½ºÅ°¸¶ À̸§
TABLE_NAME -> Å×À̺í À̸§
TABLE_TYPE -> Å×À̺í ŸÀÔ
QueryType ÀÇ Á¾·ùÀÇ À§ ¼Ò½º¿¡¼ ¼±¾ðÇÑ°Í°ú °°ÀÌ 39°¡Áö³ª µÇ´Â±º¿ä.
°¢±â ´Ù¸¥ QueryType º°·Î »Ì¾Æ¿Ã¼ö ÀÖ´Â Criteria °ªµµ ¸ðµÎ Ʋ¸³´Ï´Ù.
(°øºÎÇÒ°Ô ³Ê¹« ¸¹±º¿ä)
Const adSchemaTables = 20
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
Set objRs = objCnn.OpenSchema(adSchemaTables)
do until objRs.eof
if objRs("table_type")="TABLE" THEN
response.write objRs("TABLE_NAME")&"<BR>"
end if
objRs.movenext
loop
objCnn.close
¸¸¾à »ç¿ëÀÚ°¡ ¸¸µç Å×À̺í À̸§¸¸À» °¡Áö°í ¿À°í ½Í´Ù¸é À§Ã³·³ »ç¿ëÇصµ µË´Ï´Ù.
±×·¯³ª, ¾Æ·¡Ã³·³ Criteria °ªÀ» ³Ö¾î¼ °¡Áö°í ¿À¸é ´õ ÆíÇÏ°ÚÁö¿ä?
Const adSchemaTables = 20
Set objCnn = Server.CreateObject("ADODB.Connection")
objCnn.Open ("Provider=SQLOLEDB;User ID=sa;Password=;Initial Catalog=test;Data Source=MOBBIE-ANKYU")
Set objRs = objCnn.OpenSchema(adSchemaTables,table_name)
do until objRs.eof
response.write objRs("TABLE_NAME")&"<BR>"
objRs.movenext
loop
objCnn.close
¾î¶°¼¼¿©. Á»´õ °£´ÜÇØ Á³Áö¿ä????
ÇÒ°Ô ¾ÆÁ÷µµ ³Ê¹« ¸¹Áö¸¸, OpenSchema ¸Þ¼Òµå´Â ¿©±â¿¡¼ Á¢¾î¾ß ÇÒ°Í °°³×¿ä....