示例#1
0
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)
示例#2
0
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)