저는 jython 2.2.1과 jdbc 1.2를 사용하고 있고 mssql 2000 데이터베이스에 연결하여 이메일 내용을 쓰고 있습니다. 이메일 본문에 꽤 큰 크기가 될 때가 있는데, 데이터를 5000 자로자를 필요가 있습니다. Exclus mssql & jdbc는 학교 야드 괴롭힘처럼 나를 강타합니다. 데이터베이스의 데이터로드가 누락 될 때마다 매번 max chars = 256 문자가 표시됩니다.JDBC와 MSSQL이 큰 필드를 잘라내는 것 같습니다
필드의 크기를 확인했으며 5000으로 설정되었습니다. 무엇을 제공합니까?
저는 이전 버전이 사용 된 것처럼 jdbc와 관련이 있다는 것을 확신합니다 .... vb6 & odbc, 장애없이. 여기
몇 가지 코드 : 내 대답을 삭제BODY_FIELD_DATABASE=5000
def _execute_insert(self):
try:
self._stmt=self._con.prepareStatement(\
"INSERT INTO EmailHdr (EntryID, MailSubject, MailFrom, MailTo, MailReceive, MailSent, AttachNo, MailBody)\
VALUES (?, ?, ?, ?, ?, ?, ?, cast(? as varchar (" + str(BODY_FIELD_DATABASE) + ")))")
self._stmt.setString(1,self._emailEntryId)
self._stmt.setString(2,self._subject)
self._stmt.setString(3,self._fromWho)
self._stmt.setString(4,self._toWho)
self._stmt.setString(5,self._emailRecv)
self._stmt.setString(6,self._emailSent)
self._stmt.setString(7,str(int(self._attachmentCount) + 1))
self._stmt.setString(8,self._format_email_body())
self._stmt.execute()
self._prepare_inserting_attachment_data()
self._insert_attachment_data()
except:
raise
def _format_email_body(self):
if not self._emailBody:
return " "
if len(self._emailBody) > BODY_FIELD_DATABASE:
return self._clean_body(self._emailBody[:BODY_FIELD_DATABASE])
else:
return self._clean_body(self._emailBody)
def _clean_body(self,dirty):
'''used to clean =20 occurrence in email body that contains chinese characters
http://en.wikipedia.org/wiki/Quoted-printable'''
dirty=str(dirty)
return dirty.replace(r"=20","")
아니요 텍스트에 공백이 있고 형식이 잘 지정되어 있고 = 20 초를 뺀 것입니다. – Setori
= 20이 문제와 관련된이 http://stackoverflow.com/questions/320166/emailretr-retrieves-strange-20-characters-when-the-email-body-has-chinese-chara이 문제는 – Setori
도 해결됩니다. 아스키 전용 이메일 일 때 no = 20이지만, 여전히 db에 256 글자에 앉아 있습니다. – Setori