2012-06-21 2 views
0

db2 테이블에 레코드를 삽입하고 response.write로 결과를 얻으려고합니다. 내 대답은 Insert OK이지만 레코드가 내 테이블에 삽입되지 않았습니다. 다음 코드는 내가 사용하는 것 :ASP를 사용하여 db2 테이블에 레코드를 삽입하고 결과를 리턴하십시오.

<% 
dim connection 
dim sSQL, sConnString 

sSQL="INSERT INTO db.tablename (LOGON,CREATION_DATE,CREATOR) VALUES ('logonTest','2012- 06-20-12.00.00.000000','blabla')" 

sConnString="data source=blabla;user id=jhonsonjack;password=mypassword" 

Set connection = Server.CreateObject("ADODB.Connection") 

connection.Open(sConnString) 

On Error Resume Next 

connection.execute(sSQL) 
if Err.number<>0 or connection.Errors.Count <> 0 Then 
response.write "Insert Failed" 
else 
response.write "Insert OK" 
end if 
On Error Goto 0 

Connection.Close 
Set Connection = Nothing 
%> 

그 안에 무엇이 잘못되었는지에 대한 어떤 생각?

업데이트로, 내 삽입물이 거의 정상적으로 작동하고 있습니다. 내가 거의 말하기 때문에 테이블에 4 개의 레코드를 삽입하려고했는데이 코드는 처음 두 개의 "insert into"를 처리하고 이유를 이해하지 못합니다.

<% 
dim connection 
dim sSQL 
dim sConnString 

sSQL="INSERT INTO XXXXX.XXXXX(LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');INSERT INTO XXXXX.XXXXX (LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');INSERT INTO XXXXX.XXXXX (LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');INSERT INTO XXXXX.XXXXX (LOGON,CREATION_DATE,CREATOR,ACCOUNT_TYPE,TO_DISABLE,APPLICATION_NAME,ACCOUNT_MODEL,DESCRIPTION,OWNER,FAC_SECURITY,CUPID,REG_FORM,CFIRM_DATE,TO_DELETE,DOCLINK) VALUES ('XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','4','XXXXX','XXXXX','XXXXX','XXXXX','0','XXXXX','','XXXXX');" 

sConnString="data source=XXXXX;user id=XXXXX;password=XXXXXXXXXX" 

Set connection = Server.CreateObject("ADODB.Connection") 

connection.Open(sConnString) 

set rs = connection.execute(sSQL) 
if Err.number<>0 or connection.Errors.Count <> 0 Then 
response.write "Insert Failed" 
else 
response.write "Insert OK" %><br><% response.write sSQL 
end if 
Connection.Close 
%> 

거기에 무슨 문제가 있습니까?

+0

오타, 또는 잘못된 시간 소인 문자열 실제로 삽입하는지 있다는 점이다 (그리고 나는 당신을 믿고있어 timestamp에 삽입하고 char/varchar가 아닌 필드). 그게 괜찮은거야? 연결 문자열을 열면 On Error Resume Next를 실행합니다. 즉, 열리지 않으면 프로그램이 알아 채지 못합니다. 또한, 거래는 어떨까요? 이것은 단순히 레코드를 COMMIT해야하는 간단한 경우 일 수 있습니까? –

+0

효과적으로 변형되었습니다. '2012-06-20-12.00.00.000000'이어야합니다. 그것은 응용 프로그램 자체에서와 같은 설정을 사용하여 OK 연결 때문에, 그것은 잘 작동하고 있습니다. 이 스크립트를 만들어 내 데이터베이스에 한 번에 여러 레코드를 추가하려고 시도합니다. –

+0

형식이 잘못되면 오류가 발생합니다 (시스템에서 "무엇을 나에게주는거야?"). "Insert OK"를 출력하는 것 이외에 더 많은 디버그 상태를 출력하지 않으면 문제에 대한 더 많은 통찰력을 얻을 수 있습니다. 또한 (그리고 나는 asp-classic을 망친 적도 없다)'On Error Goto 0'은 어디에 있는가? –

답변

0

모든 데이터가 같은 쿼리로 테이블에 삽입되어있는 경우가 확인할 수 있습니다

SELECT * FROM FINALE TABLE 
(INSERT INTO...) 
관련 문제