Skip to content

pyaccesskit.queries

pyaccesskit.queries

Saved queries: the db.queries collection and :class:Query handles.

Query

Query(session: Session, name: str)

A saved query (a live, name-based handle).

name property

name: str

The query name.

sql property writable

sql: str

The SQL text (Access reformats SQL when saving it).

kind property

kind: QueryKind

Select, update, append, crosstab... as classified by Access.

parameters property

parameters: list[ParameterInfo]

Declared and implicit parameters.

description property

description: str | None

The query Description.

properties property

properties: PropertyBag

The query's DAO properties.

to_spec

to_spec() -> QuerySpec

The query's current definition (SQL as Access stored it).

execute

execute(params: Mapping[str, Any] | None = None) -> int

Run an action query; returns the number of affected rows.

fetch

fetch(
    params: Mapping[str, Any] | None = None,
    *,
    limit: int | None = None,
) -> list[dict[str, Any]]

Return the rows of a select query as dictionaries.

rename

rename(new_name: str) -> None

Rename the query.

drop

drop() -> None

Delete the query.

QueryCollection

QueryCollection(session: Session)

db.queries: saved queries (hidden ~ queries are excluded unless asked for).

names

names(*, include_hidden: bool = False) -> list[str]

Query names.

get

get(name: str) -> Query | None

The query called name (case-insensitive), or None.

create

create(
    spec: QuerySpec, /, *, replace: bool = False
) -> Query
create(
    name: str,
    sql: str,
    /,
    *,
    description: str | None = None,
    replace: bool = False,
) -> Query
create(
    spec_or_name: QuerySpec | str,
    sql: str | None = None,
    /,
    *,
    description: str | None = None,
    replace: bool = False,
) -> Query

Create a saved query (replace=True updates the SQL of an existing one).

create_pass_through

create_pass_through(
    name: str,
    sql: str,
    *,
    connect: str,
    returns_records: bool = True,
    timeout: int = 60,
    replace: bool = False,
) -> Query

Create an ODBC pass-through query (connect must start with ODBC;).

drop

drop(name: str) -> None

Delete a saved query.