修改了插入数据时发生错误时输出错误sql语句
修改了插入数据时字符串数据‘号的问题
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..e206d70
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
+</project>
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..7038ae8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7.3 virtualenv at ~/Dev/py27-dev64" project-jdk-type="Python SDK" />
+</project>
+
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..6e94566
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/v2convert.iml" filepath="$PROJECT_DIR$/.idea/v2convert.iml" />
+ </modules>
+ </component>
+</project>
+
diff --git a/.idea/other.xml b/.idea/other.xml
new file mode 100644
index 0000000..9d2e7e9
--- /dev/null
+++ b/.idea/other.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="PyDocumentationSettings">
+ <option name="myDocStringFormat" value="Plain" />
+ </component>
+</project>
+
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
new file mode 100644
index 0000000..922003b
--- /dev/null
+++ b/.idea/scopes/scope_settings.xml
@@ -0,0 +1,5 @@
+<component name="DependencyValidationManager">
+ <state>
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
+ </state>
+</component>
\ No newline at end of file
diff --git a/.idea/testrunner.xml b/.idea/testrunner.xml
new file mode 100644
index 0000000..0d97b74
--- /dev/null
+++ b/.idea/testrunner.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="TestRunnerService">
+ <option name="projectConfiguration" value="Unittests" />
+ <option name="PROJECT_TEST_RUNNER" value="Unittests" />
+ </component>
+</project>
+
diff --git a/.idea/v2convert.iml b/.idea/v2convert.iml
new file mode 100644
index 0000000..1ba372b
--- /dev/null
+++ b/.idea/v2convert.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <content url="file://$MODULE_DIR$" />
+ <orderEntry type="jdk" jdkName="Python 2.7.3 virtualenv at ~/Dev/py27-dev64" jdkType="Python SDK" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module>
+
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..c80f219
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
+ </component>
+</project>
+
diff --git a/convert-example.json b/convert-example.json
index 2053606..def9d61 100755
--- a/convert-example.json
+++ b/convert-example.json
@@ -38,7 +38,7 @@
OPENDATE, CLOSEDATE, CARDVERNO, LASTSAVED",
"remark": "导入卡表前更新 begin_time 不能为空",
"pre_exec" : ["update ykt_cur.t_pif_card set begin_time='20061001' where card_id=43430"],
- "dst_pre_exec": ["update t_card where cardid=10"],
+ "pre_dst_exec": ["update t_card where cardid=10"],
"post_exec": ["update t_card set cardphytype=20"]
}
]
diff --git a/v2convert.py b/v2convert.py
index d23a210..218a5fa 100755
--- a/v2convert.py
+++ b/v2convert.py
@@ -12,7 +12,7 @@
import re
-VERSION = "1.4"
+VERSION = "1.5"
SYSENCODING = locale.getdefaultlocale()[1]
if not SYSENCODING:
@@ -111,7 +111,7 @@
self._dst_db = self._connect_db(self._dst_type, **param)
print u"连接目标库成功"
except Exception, ex:
- print u"连接数据失败, {0}".format(ex)
+ print u"连接数据失败, {0}".format(str(ex).decode('utf-8'))
return
self._convert()
@@ -202,19 +202,21 @@
elif isinstance(data, float):
v.append('%f' % data)
elif isinstance(data, str) or isinstance(data, unicode):
- v.append("'{0}'".format(data))
+ v.append("'{0}'".format(data.replace("'", "''")))
elif data is None:
v.append('NULL')
else:
v.append(data)
values = ",".join(v)
- insert_sql = 'insert into {0} ({1}) values({2})'.format(rule['name'],
- rule['dest_column'], values)
+ values = values.decode('utf-8')
+ insert_sql = u'insert into {0} ({1}) values({2})'.format(rule['name'],
+ rule['dest_column'], values)
# print insert_sql
count += 1
if not self._dst_db.exec_sql(insert_sql):
print u"导入第{0}条记录错误".format(count)
self._dst_db.rollback()
+ print u"SQL<{0}>".format(insert_sql)
return False
if count % self._commit_count == 0: