#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
  
 | 
import datetime  
 | 
  
 | 
char_encoding = "gbk"  
 | 
  
 | 
  
 | 
def TranslteToSqlStaments( groupID, eventTypeStr, eventdataStr ):  
 | 
    errorStr = "True;Translate successfully;"  
 | 
    sqlStmts = ""  
 | 
  
 | 
    try:  
 | 
        #print eventdataStr  
 | 
        #´´½¨Êý¾Ý¿âµÄsqlÓï¾äÉú³É  
 | 
        td = datetime.date.today()  
 | 
        dbNameStr = "EventData_Group%d_%04d_%02d" % ( groupID, td.year, td.month )  
 | 
        createDbStr = "create database if not exists %s default charset utf8 COLLATE utf8_general_ci;use %s;" % ( dbNameStr, dbNameStr )  
 | 
        sqlStmts += createDbStr  
 | 
  
 | 
        eventdict = eval( eventdataStr )  
 | 
  
 | 
        tableColumnFmtStr = ""  
 | 
        tableColumnStr = ""  
 | 
        insertValStr = ""  
 | 
        for key in eventdict.keys():  
 | 
            val = eventdict[key]  
 | 
            valc = type(val)  
 | 
  
 | 
            typeStr = "UNKNOWN TYPE"  
 | 
            if valc == type(1):  
 | 
                typeStr = "INT"  
 | 
                insertValStr += str(val) + ','  
 | 
            elif valc == type(0.1):  
 | 
                typeStr = "FLOAT"  
 | 
                insertValStr += str(val) + ','  
 | 
            #elif valc == type("") or valc == type({0:1}):  
 | 
            else:  
 | 
                typeStr = "VARCHAR(512)"  
 | 
                insertValStr += '"' + str(val).decode(char_encoding).encode("utf-8") + '",'  
 | 
  
 | 
            tableColumnFmtStr += key + " " + typeStr + ","  
 | 
            tableColumnStr += key + ","  
 | 
  
 | 
  
 | 
        tableNameStr = "%s_%04d_%02d_%02d" % ( eventTypeStr, td.year, td.month, td.day )  
 | 
        createTableStr = "create table if not exists %s ( event_store_id INT NOT NULL AUTO_INCREMENT, %s, PRIMARY KEY (event_store_id) );" % ( tableNameStr, tableColumnFmtStr[0:-1] )  
 | 
        sqlStmts += createTableStr  
 | 
  
 | 
        insertDataStr = "insert into %s (%s) value(%s);" % ( tableNameStr, tableColumnStr[0:-1], insertValStr[0:-1] )  
 | 
  
 | 
        return errorStr + sqlStmts + insertDataStr;  
 | 
  
 | 
    except Exception, e:  
 | 
        errorStr = "False;Failed to TranslteToSqlStaments:" + str(e) + ";"  
 | 
        return errorStr + sqlStmts  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
if __name__ == '__main__':  
 | 
    pass  
 | 
    eventdata = "{'PlayerID': 40006, 'AccID': '155958472', 'FamilyName': '\xcc\xec\xcf\xc2\xc3\xcb', 'time': '2012-06-22 16:11:05', 'FamilyID': 334888786}"  
 | 
    print TranslteToSqlStaments( 1, "DeleteItem_Add_LimitingBuff", eventdata )  
 | 
  
 |