import pymssql import gzip from ProtoBuffEntitys import TickMessage_pb2 from ProtoBuffEntitys import OrderMessage_pb2 from ProtoBuffEntitys import TranseMessage_pb2 from ProtoBuffEntitys import TickQueueMessage_pb2 from ProtoBuffEntitys import KLineMessage_pb2 def ReadTick(ip,user,pw,dbName,code,date): conn = pymssql.connect(host=ip,user=user,password=pw,database=dbName) cursor = conn.cursor() sql = '''SELECT [S_INFO_WINDCODE] ,[TRADE_DT] ,[Bytes] FROM [{0}].[dbo].[Tick] WHERE [TRADE_DT]='{1}' AND [S_INFO_WINDCODE]='{2}' '''.format(dbName, date,code) cursor.execute(sql) rs = cursor.fetchall() if len(rs) == 0: return [] f_all=rs[0][2] f_all=gzip.decompress(f_all) dataArray=TickMessage_pb2.TickArray() dataArray.ParseFromString(f_all) return dataArray.dataArray array=ReadTick('10.10.11.61','yuhaomiao','yhm9591','Level2BytesTick','000001.SZ',20200911) print('''Tick Code:{0}'''.format(array[0].code)) def ReadTickQue(ip,user,pw,dbName,code,date): conn = pymssql.connect(host=ip,user=user,password=pw,database=dbName) cursor = conn.cursor() sql = '''SELECT [S_INFO_WINDCODE] ,[TRADE_DT] ,[Bytes] FROM [{0}].[dbo].[TickQue] WHERE [TRADE_DT]='{1}' AND [S_INFO_WINDCODE]='{2}' '''.format(dbName, date,code) cursor.execute(sql) rs = cursor.fetchall() if len(rs) == 0: return [] f_all=rs[0][2] f_all=gzip.decompress(f_all) dataArray=TickQueueMessage_pb2.TickQueueArray() dataArray.ParseFromString(f_all) return dataArray.dataArray array=ReadTickQue('10.10.11.61','yuhaomiao','yhm9591','Level2BytesTickQue','000001.SZ',20200911) print('''TickQue Code:{0}'''.format(array[0].code)) def ReadTranse(ip,user,pw,dbName,code,date): conn = pymssql.connect(host=ip,user=user,password=pw,database=dbName) cursor = conn.cursor() sql = '''SELECT [S_INFO_WINDCODE] ,[TRADE_DT] ,[Bytes] FROM [{0}].[dbo].[Transe] WHERE [TRADE_DT]='{1}' AND [S_INFO_WINDCODE]='{2}' '''.format(dbName, date,code) cursor.execute(sql) rs = cursor.fetchall() if len(rs) == 0: return [] f_all=rs[0][2] f_all=gzip.decompress(f_all) dataArray=TranseMessage_pb2.TranseArray() dataArray.ParseFromString(f_all) return dataArray.dataArray array=ReadTranse('10.10.11.61','yuhaomiao','yhm9591','Level2BytesTranse','000001.SZ',20200911) print('''Transe Code:{0}'''.format(array[0].code)) def ReadOrder(ip,user,pw,dbName,code,date): conn = pymssql.connect(host=ip,user=user,password=pw,database=dbName) cursor = conn.cursor() sql = '''SELECT [S_INFO_WINDCODE] ,[TRADE_DT] ,[Bytes] FROM [{0}].[dbo].[Order] WHERE [TRADE_DT]='{1}' AND [S_INFO_WINDCODE]='{2}' '''.format(dbName, date,code) cursor.execute(sql) rs = cursor.fetchall() if len(rs) == 0: return [] f_all=rs[0][2] f_all=gzip.decompress(f_all) dataArray=OrderMessage_pb2.OrderArray() dataArray.ParseFromString(f_all) return dataArray.dataArray array=ReadOrder('10.10.11.61','yuhaomiao','yhm9591','Level2BytesOrder','000001.SZ',20200911) print('''Order Code:{0}'''.format(array[0].code)) def ReadKLine(ip,user,pw,dbName,code,date): conn = pymssql.connect(host=ip,user=user,password=pw,database=dbName) cursor = conn.cursor() sql = '''SELECT [S_INFO_WINDCODE] ,[TRADE_DT] ,[Bytes] FROM [{0}].[dbo].[KLine] WHERE [TRADE_DT]='{1}' AND [S_INFO_WINDCODE]='{2}' '''.format(dbName, date,code) cursor.execute(sql) rs = cursor.fetchall() if len(rs) == 0: return [] f_all=rs[0][2] f_all=gzip.decompress(f_all) dataArray=KLineMessage_pb2.KLineArray() dataArray.ParseFromString(f_all) return dataArray.dataArray array=ReadKLine('10.10.11.61','yuhaomiao','yhm9591','Level2BytesKLine','000001.SZ',20200911) print('''KLine Code:{0}'''.format(array[0].code))