def tables(self, table=None, catalog=None, schema=None, tableType=None): 
        if not self.connection:
            self.close()
            
        l_catalog = l_schema = l_table = l_tableType = 0
        
        if unicode in [type(x) for x in (table, catalog, schema,tableType)]:
            string_p = lambda x:wchar_pointer(UCS_buf(x))
            API_f = ODBC_API.SQLTablesW
        else:
            string_p = ctypes.c_char_p
            API_f = ODBC_API.SQLTables
            
        
        
        if catalog is not None:
            l_catalog = len(catalog)
            catalog = string_p(catalog) 

        if schema is not None: 
            l_schema = len(schema)
            schema = string_p(schema)
            
        if table is not None:
            l_table = len(table)
            table = string_p(table)
            
        if tableType is not None: 
            l_tableType = len(tableType)
            tableType = string_p(tableType)
        
        self._free_stmt()
        self._last_param_types = None
        self.statement = None
        ret = API_f(self.stmt_h,
                                catalog, l_catalog,
                                schema, l_schema, 
                                table, l_table,
                                tableType, l_tableType)
        check_success(self, ret)
    
        self._NumOfRows()
        self._UpdateDesc()
        #self._BindCols()
        return self
args:
dataset/ETHPy150Open harryliu/edwin/edwinServer/site_packages/pypyodbc.py/Cursor.tables--crossover with--dataset/ETHPy150Open polaris-gslb/polaris-gslb/polaris_health/state/globalname.py/GlobalName.__init__