def parseTable(self ,line): """parse table definition.""" # get table name m = re_table_start.search(line) if m : tblname = line[m.end():] tblname = tblname.strip(' (\t') tbl = Table() tbl.name = tblname if len(self.tblcomments) > 0: tbl.comment = self.tblcomments.pop() # parse each field step by step. li = self.handle.readline() while li: # if it's the end of create table if li.strip(' \t\n') == ');': break if not self.parseField(tbl,li): return li = self.handle.readline() # save table for p in self.currPrimaryKeys: if tbl.getFields()[p]: tbl.getFields()[p].setPrimaryKey(True) self.currPrimaryKeys = [] self.tables.append(tbl)
def parseTable(self, line): """parse table definition.""" # get table name m = re_table_start.search(line) if m: tblname = line[m.end():] tblname = tblname.strip(' (\t') tbl = Table() tbl.name = tblname if len(self.tblcomments) > 0: tbl.comment = self.tblcomments.pop() # parse each field step by step. li = self.handle.readline() while li: # if it's the end of create table if li.strip(' \t\n') == ');': break if not self.parseField(tbl, li): return li = self.handle.readline() # save table for p in self.currPrimaryKeys: if tbl.getFields()[p]: tbl.getFields()[p].setPrimaryKey(True) self.currPrimaryKeys = [] self.tables.append(tbl)
def test(): parse = SQLParse('') v = parse.splitString('id varchar(3)default getvalue(ffd)',' ' ,'\t' ,')') print v v = parse.splitString('; fim',' ','\t',';') print v testFld = 'id integer primary key, --@ ол╣Щ' table = Table('table1') parse.parseField(table,testFld) for n,t in table.getFields().items(): print t.name print t.type print t.length print t.comment
def test(): parse = SQLParse('') v = parse.splitString('id varchar(3)default getvalue(ffd)', ' ', '\t', ')') print v v = parse.splitString('; fim', ' ', '\t', ';') print v testFld = 'id integer primary key, --@ ол╣Щ' table = Table('table1') parse.parseField(table, testFld) for n, t in table.getFields().items(): print t.name print t.type print t.length print t.comment