Zero , One or many state records may be associated with a program.

The state record:

Is used to hold runtime variables for the Application Engine run.
Is Maintained by the developer and is invisible to the user.
Is used to hold all SQL Select results.
Can be a derived/work record or a SQL table.

So, for the statrecord. State records are like working storage for your Application Engine program, and they have the following uses that being of program variables. They initialize values passed between programs, steps and actions. You see the results of SQL Select values that are used to insert and update, used for counters and calculations, programmable switches or flags are used in application engine restarts. And state records are associate with an Application Engine program in its properties on the state records tab.