@@ -28,33 +28,46 @@ def get_bytes_buffer():
28
28
29
29
from .helpers import drop_table , mssqlconn , clear_table , config , eq_ , pymssqlconn
30
30
31
+
31
32
def typeeq (v1 , v2 ):
32
33
eq_ (type (v1 ), type (v2 ))
33
34
34
- tblsql = """
35
- CREATE TABLE pymssql (
36
- pk_id int IDENTITY (1, 1) NOT NULL,
37
- real_no real,
38
- float_no float,
39
- money_no money,
40
- stamp_datetime datetime,
41
- stamp_date date,
42
- stamp_time time,
43
- stamp_datetime2 datetime2,
44
- data_bit bit,
45
- comment_vch varchar(50),
46
- comment_nvch nvarchar(50),
47
- comment_text text,
48
- comment_ntext ntext,
49
- data_image image,
50
- data_binary varbinary(40),
51
- decimal_no decimal(38,2),
52
- decimal_no2 decimal(38,10),
53
- numeric_no numeric(38,8),
54
- stamp_timestamp timestamp,
55
- uuid uniqueidentifier
56
- )
57
- """
35
+ create_test_table_sql = [
36
+ 'CREATE TABLE pymssql ('
37
+ ' pk_id int IDENTITY (1, 1) NOT NULL,' ,
38
+ ' real_no real,' ,
39
+ ' float_no float,' ,
40
+ ' money_no money,' ,
41
+ ' stamp_datetime datetime,' ,
42
+ ' data_bit bit,' ,
43
+ ' comment_vch varchar(50),' ,
44
+ ' comment_nvch nvarchar(50),' ,
45
+ ' comment_text text,' ,
46
+ ' comment_ntext ntext,' ,
47
+ ' data_image image,' ,
48
+ ' data_binary varbinary(40),' ,
49
+ ' decimal_no decimal(38,2),' ,
50
+ ' decimal_no2 decimal(38,10),' ,
51
+ ' numeric_no numeric(38,8),' ,
52
+ ' stamp_timestamp timestamp,' ,
53
+ ' uuid uniqueidentifier' ,
54
+ ')' ,
55
+ ]
56
+
57
+
58
+ def build_create_table_query (conn ):
59
+ if get_sql_server_version (conn ) < 2008 :
60
+ create_sql = '\n ' .join (create_test_table_sql )
61
+ else :
62
+ create_sql = '\n ' .join (
63
+ create_test_table_sql [:- 1 ] + [
64
+ ','
65
+ 'stamp_date date,' ,
66
+ 'stamp_time time,' ,
67
+ 'stamp_datetime2 datetime2' ] +
68
+ create_test_table_sql [- 1 :])
69
+ return create_sql
70
+
58
71
59
72
class TestTypes (unittest .TestCase ):
60
73
tname = 'pymssql'
@@ -63,7 +76,8 @@ class TestTypes(unittest.TestCase):
63
76
def setup_class (cls ):
64
77
cls .conn = mssqlconn ()
65
78
drop_table (cls .conn , cls .tname )
66
- cls .conn .execute_non_query (tblsql )
79
+ ddl_str = build_create_table_query (cls .conn )
80
+ cls .conn .execute_non_query (ddl_str )
67
81
68
82
def setUp (self ):
69
83
clear_table (self .conn , self .tname )
@@ -273,8 +287,9 @@ class TestTypesPymssql(unittest.TestCase):
273
287
def setup_class (cls ):
274
288
cls .conn = pymssqlconn ()
275
289
drop_table (cls .conn ._conn , cls .tname )
290
+ ddl_str = build_create_table_query (cls .conn ._conn )
276
291
with cls .conn .cursor () as c :
277
- c .execute (tblsql )
292
+ c .execute (ddl_str )
278
293
279
294
def setUp (self ):
280
295
clear_table (self .conn ._conn , self .tname )
0 commit comments