def get_dict_mfrid(server_ip): """ 读取lidong_icgoo 的厂商和厂商别名表,得到字典 {厂商id:[厂商或者厂商别名,...],...} server_ip: lidong_icgoo数据库的所在服务器ip地址 2011年 06月 03日 星期五 15:01:21 CST """ fun = 'function get_dict_mfrid of python_function.py' dict_mfrid = {} cur_obj = return_cur(server_ip,'daimm','123456','lidong_icgoo','utf8') try: ''' 厂商表 ''' sql = "select id,name,short_name from icbase_mfr" result = execute_sql('select',cur_obj,sql) for id,name,short_name in result: if name == short_name: list_name = [name] else: list_name = [name,short_name] dict_mfrid[id] = list_name ''' 厂商别名表 ''' sql = "select name,mfr_id from icbase_mfralias" result = execute_sql('select',cur_obj,sql) for name,mfr_id in result: list_name = dict_mfrid.get(mfr_id,[]) if list_name and name not in list_name: ''' list_name不为空列表 并且 厂商别名未加入 ''' list_name.append(name) dict_mfrid[mfr_id] = list_name else: pass close_cur(cur_obj,'cur_obj of %s' % fun) except Exception,e: dict_mfrid = {} print '%s exception:%s',(fun,str(e)) close_cur(cur_obj,'cur_obj of %s' % fun)
def get_dict_mfr(server_ip,**dict_args): """ 读取lidong_icgoo 的厂商和厂商别名表,得到字典 {厂商名称 / 厂商简写名称 / 厂商别名:厂商id,...} server_ip: daimm_operate_icbase数据库的所在服务器ip地址 2011年 06月 03日 星期五 14:29:19 CST 添加关键字参数 传递数据库连接游标 防止由于服务器ip的变更导致连接异常 2012年 10月 30日 星期二 10:31:58 CST 添加关键字参数 传递两个sql查询语句: 1 sql_mfr 2 sql_mfralias 防止目标数据库对应表 表名和字段名称与理想有差别 2012年 10月 30日 星期二 10:40:43 CST """ fun = 'function get_dict_mfr of python_function.py' from python_database import return_cur,close_cur,execute_sql dict_mfr = {} cur_obj = dict_args.get('cur_obj',None) boolean_close = True if cur_obj: ''' 游标由参数传递 该函数无须关闭 ''' boolean_close = False else: ''' 在程序的运行环境中 连接mysql数据库 ''' cur_obj = return_cur(server_ip,'daimm','123456','daimm_operate_icbase','utf8') try: ''' 厂商表 ''' sql_mfr = dict_args.get('sql_mfr',None) if not sql_mfr: sql_mfr = "select id,name,short_name from icbase_mfr" result = execute_sql('select',cur_obj,sql_mfr) for id,name,short_name in result: if name == short_name: list_name = [name] else: list_name = [name,short_name] for ln in list_name: if ln: ln = ln.upper() if dict_mfr.has_key(ln): ''' 已经存在 ''' pass else: dict_mfr[ln] = id else: ''' short_name字段取值可能为None null ''' pass ''' 厂商别名表 ''' sql_mfralias = dict_args.get('sql_mfralias',None) if not sql_mfralias: sql_mfralias = "select name,mfr_id from icbase_mfralias" result = execute_sql('select',cur_obj,sql_mfralias) for name,mfr_id in result: name = name.upper() if dict_mfr.has_key(name): ''' 已经存在 ''' pass else: dict_mfr[name] = mfr_id if boolean_close: close_cur(cur_obj,'cur_obj of %s' % fun) except Exception,e: dict_mfr = {} print '%s exception:%s',(fun,str(e)) if boolean_close: close_cur(cur_obj,'cur_obj of %s' % fun)