# US 7,610,302 B2 · Modifying table definitions within a database application

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,610,302 B2
- Document ID: US7610302B2
- Status: Granted
- Kind: B2
- Application number: 11/169,856
- Filed: 2005-06-29
- Published: 2007-01-04
- Granted: 2009-10-27
- Earliest claimed: 2005-06-29
- Assignees: Microsoft Corporation
- Inventors: Vitore Selca; Christopher W. Bryant; Shane L. Groff; Theresa A. Naramore; Tiginesh M. Beyene; Clinton D. Covington
- Web page: https://patentgrep.com/patent/US7610302B2

## Abstract

Methods, systems, and computer program products modify a table definition of a database table within a database application. A method involves providing a user interface for creating a new field in the database table, receiving data that creates the new field while displaying the database table, and modifying schema of the database table to include the new field and the data. The method also involves interpreting a data type of the data as the data is received. A data type interpreted for a column in the database table that contains the new field is the data type of the data received in the new field. Still further, the method involves handling objects dependent on the database table in a manner unbeknownst to a user of the database table. Thus, the schema is modified while the objects dependent on the database table remain visible or open to the user.

## Claims

### Claim 1

A computer-implemented method for modifying a table definition of a database table within a database application, the method comprising:
at a computer, providing a user interface for creating a new field in the database table, wherein the user interface illustrated by a computer screen;
receiving a paste command in a database table column and pasting tabular data in the database table to insert multiple new fields in the database table column via the user interface while rendering the database table;
modifying a schema of the database table to include each new field of inserted multiple new fields and the tabular data; and
interpreting a data type of the tabular data that is pasted in the database table column to insert the multiple new fields, wherein the interpreting a data type of the tabular data comprises:
examining all of data values in a range comprising the pasted tabular data, wherein a number of records comprising the pasted tabular data is higher than a predetermined threshold;
determining a data type from among a plurality of data types for each individual data value in the range comprising the pasted tabular data comprises:
determining whether the pasted tabular data includes a currency;
in response to the pasted tabular data including the currency,
determining whether a higher precision or the currency plus numbers are required;
in response to the higher precision or the currency plus numbers being required, setting the data type as a number;
in response to the higher precision or the currency plus numbers not being required, determining whether the pasted tabular data includes multiple currencies or a mixed data type;
in response to the pasted tabular data not including the multiple currencies or the mixed data type, setting the data type as a currency;
in response to the pasted tabular data including the multiple currencies or the mixed data type, determining whether any cell containing the pasted tabular data contains text that exceeds a threshold number of characters;
in response to the text exceeding the threshold number of characters, setting the data type as a memo;
in response to the text not exceeding the threshold number of characters, setting the data type as a text;
determining whether the pasted tabular data includes numbers;
in response to the pasted tabular data including numbers, setting the data type as a number;
determining whether the pasted tabular data includes at least one of a date or time;
in response to the pasted tabular data including at least one of a date or time, setting the data type as at least one of date or time;
determining whether the pasted tabular data includes a hyperlink;
in response to the pasted tabular data including the hyperlink, setting the data type as a hyperlink;
determining whether the pasted tabular data includes Boolean values;
in response to the pasted tabular data including the Boolean values, setting the data type as a Boolean; and
applying a broadest of the plurality of data types that can store all of the data values without at least one of loss of data, truncation of data, and loss of precision.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving data in a cell of the column in the database table containing the new fields;
in response to the data in the cell not being of a same data type as interpreted for the column, rendering a dialog providing notice that the data in the cell is not of the same data type interpreted for the column and presenting resolution options; and
in response to rendering the dialog, receiving and implementing an option for resolution of conflicting data types.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
handling one or more objects dependent on the database table unbeknownst to a user of the database table wherein modifying the schema of the database table comprises modifying the schema of the database table while the objects dependent on the database table remain visible to the user.

### Claim 4 (depends on 3)

The method of claim 3, wherein handling the objects dependent on the database table comprises:
examining a database for one or more objects utilizing the database table;
determining an object type and a view of each object utilizing the database table;
tracking a primary key identifier for a row in which a new field is created; and
handling each object utilizing the database table based on the object type and the view;
wherein the object type includes at least one of the following:
another table having a lookup query to the database table;
a query;
a form having a record source that depends on the database table; and
a report; and
wherein the view includes at least one of the following:
a design view;
a datasheet view;
a form view;
a report view;
a print preview view; and
a chart or pivot view.

### Claim 5 (depends on 4)

The method of claim 4, wherein handling each object based on the object type and the view, comprises at least one of the following:
saving any edit in progress and after modifying the schema returning to a focus state rendered prior to modifying the schema when the view comprises the datasheet view and the object type comprises a table, a query, or a form or when the view comprises the form view and the object type comprises the form;
returning after modifying the schema to a page rendered just before modifying the schema when the view comprises the print preview view and the object type comprises the table, the query, the report or the form;
returning after modifying the schema to the focus state rendered just before modifying the schema when the view comprises the chart view or the pivot view and the object type comprises the table, the query, or the form;
closing a saved browse state rendered prior to modifying the schema when the view comprises the datasheet view and the object type comprises the report or the form; and
returning after modifying the schema to the focus state rendered just before modifying the schema when the view comprises the report view and the object type comprises the report;
wherein tracking the primary key identifier for the row in which the new field is created locates the focus state rendered just before modifying the schema.

### Claim 6

A computer-readable storage medium comprising computer-executable instructions which, when executed by a computer, cause the computer to perform a method of modifying a table definition of a database table within a database application, the method comprising:
providing a user interface for creating a new field in the database table;
receiving a paste command in a database table column and pasting tabular data in the database table to insert multiple new fields in the database table column via the user interface while rendering the database table;
modifying a schema of the database table to include each new field of inserted multiple new fields and the tabular data; and
interpreting a data type of the tabular data that is pasted in the database table column to insert the multiple new fields, wherein the interpreting a data type of the tabular data comprises:
examining all of data values in a range comprising the pasted tabular data, wherein a number of records comprising the pasted tabular data is higher than a predetermined threshold;
determining a data type from among a plurality of data types for each individual data value in the range comprising the pasted tabular data comprises:
determining whether the pasted tabular data includes a currency;
in response to the pasted tabular data including the currency, determining whether a higher precision or the currency plus numbers are required;
in response to the higher precision or the currency plus numbers being required, setting the data type as a number;
in response to the higher precision or the currency plus numbers not being required, determining whether the pasted tabular data includes multiple currencies or a mixed data type;
in response to the pasted tabular data not including the multiple currencies or the mixed data type, setting the data type as a currency;
in response to the pasted tabular data including the multiple currencies or the mixed data type, determining whether any cell containing the pasted tabular data contains text that exceeds a threshold number of characters;
in response to the text exceeding the threshold number of characters, setting the data type as a memo;
in response to the text not exceeding the threshold number of characters, setting the data type as a text;
determining whether the pasted tabular data includes numbers;
in response to the pasted tabular data including numbers, setting the data type as a number;
determining whether the pasted tabular data includes at least one of a date or time;
in response to the pasted tabular data including at least one of a date or time, setting the data type as at least one of date or time;
determining whether the pasted tabular data includes a hyperlink;
in response to the pasted tabular data including the hyperlink, setting the data type as a hyperlink;
determining whether the pasted tabular data includes Boolean values;
in response to the pasted tabular data including the Boolean values, setting the data type as a Boolean; and
applying a broadest of the plurality of data types that can store all of the data values without at least one of loss of data, truncation of data, and loss of precision.

### Claim 7 (depends on 6)

The computer-readable storage medium of claim 6, further comprising: receiving data in a cell of the column in the database table containing the new fields; and
in response to the data in the cell not being of a same data type as interpreted for the column, display a dialog providing notice that the data in the cell is not of the same data type interpreted for the column the dialog including resolution options.

### Claim 8 (depends on 6)

The computer-readable storage medium of claim 6, further comprising computer-readable:
handling one or more objects dependent on the database table unbeknownst to a user of the database table;
wherein modifying the schema comprises modifying the schema while the objects dependent on the database table remain visible to the user.

### Claim 9 (depends on 8)

The computer-readable storage medium of claim 8, wherein handling the objects dependent on the database table comprises:
examining a database for one or more objects utilizing the database table;
determining an object type and a view of each object utilizing the database table;
tracking a primary key identifier for a row in which a new field is created; and
handling each object utilizing the database table based on the object type and the view.

### Claim 10

A computer-implemented system for modifying a table definition of a database table within a database application, the system comprising:
a computer that includes a processor;
means for providing a user interface for creating a new field in the database table, wherein the user interface illustrated by a computer screen;
means for receiving a paste command in a database table column and pasting tabular data in the database table to insert multiple new fields in the database table column via the user interface while displaying the database table; and
means for modifying a schema of the database table to include each new field of inserted multiple new fields and the tabular data; and
means for interpreting a data type of the tabular data that is pasted in the database table column to insert the multiple new fields, wherein the interpreting a data type of the tabular data comprises:
means for examining all of data values in a range comprising the pasted tabular data, wherein a number of records comprising the pasted tabular data is higher than a predetermined threshold;
means for determining a data type from among a plurality of data types for each individual data value in the range comprising the pasted tabular data comprises:
means for determining whether the pasted tabular data includes a currency;
in response to the pasted tabular data including the currency, means for determining whether a higher precision or the currency plus numbers are required;
in response to the higher precision or the currency plus numbers being required, means for setting the data type as a number;
in response to the higher precision or the currency plus numbers not being required, means for determining whether the pasted tabular data includes multiple currencies or a mixed data type;
in response to the pasted tabular data not including the multiple currencies or the mixed data type means for setting the data type as a currency;
in response to the pasted tabular data including the multiple currencies or the mixed data type, means for determining whether any cell containing the pasted tabular data contains text that exceeds a threshold number of characters;
in response to the text exceeding the threshold number of characters, means for setting the data type as a memo;
in response to the text not exceeding the threshold number of characters, means for setting the data type as a text;
means for determining whether the pasted tabular data includes numbers;
in response to the pasted tabular data including numbers, means for setting the data type as a number;
means for determining whether the pasted tabular data includes at least one of a date or time;
in response to the pasted tabular data including at least one of a date or time, means for setting the data type as at least one of date or time;
means for determining whether the pasted tabular data includes a hyperlink;
in response to the pasted tabular data including the hyperlink, means for setting the data type as a hyperlink;
means for determining whether the pasted tabular data includes Boolean values;
in response to the pasted tabular data including the Boolean values, means for setting the data type as a Boolean; and
means for applying a broadest of the plurality of data types that can store all of the data values without at least one of loss of data, truncation of data, and loss of precision; and
means for handling one or more objects dependent on the database table unbeknownst to a user of the database table, wherein the handling one or more objects dependent on the database table comprises means for tracking a primary key identifier for a row in which the new field in the database table is created, wherein the primary key identifier comprises an identifier for a hidden column in the database table;
wherein the means for modifying the schema comprises means for modifying the schema while the objects dependent on the database table remain visible to the user.

### Claim 11 (depends on 3)

The method of claim 3, wherein tracking a primary key identifier for a row in which a new field is created comprises tracking an identifier for a hidden column in the database table.

### Claim 12 (depends on 9)

The computer-readable storage medium of claim 9, wherein tracking a primary key identifier for a row in which a new field is created comprises tracking an identifier for a hidden column in the database table.
