Importing data from an ADO data source¶
Use the Data Transfer Wizard to import data from any ADO-accessible source — such as SQL Server, Microsoft Access, or another OLE DB / ODBC database — into the selected SQLite database.
To import from an ADO data source:
- Choose Import/Export → Data Transfer Wizard from the main menu.
- On the Action page, select Import data into the selected database, then click Next.
- On the Source page, select ADO Data Source, then click Next.
-
Click the … button to build the ADO connection string in the standard Windows dialog.

-
When the connection string is ready, click Next.
-
Choose additional options, then click Next. Two of them are worth knowing about: Continue on error decides what a failure does to the rest of the run — see When a transfer hits an error — and Column types decides how the columns of the tables this creates are declared, described below.

-
Select the types of objects to import, then click Next.

-
Select the individual objects to import, then click Next.

-
Review your choices and click Next to start, or Back to adjust. You can Cancel during the transfer.
- Click Finish to close the wizard.
How the columns are declared¶
The database you are importing from says how long its text columns are. SQLite
does not: it stores whatever it is given, and reads no limit out of a
declaration. So a varchar(50) carried across as TEXT(50) is not a narrower
column — it is a note, and one SQLite Expert reads as the column's length when
it puts a cell editor on it.
Column types, on the options page, says what to write instead. The same four choices the text and JSON imports offer, and they mean the same things there:
Descriptive types with no sizes — the default. Each column keeps the name
that describes it, without the length the source declared: TEXT, INTEGER,
REAL.
STRICT types, regular table — only the type names a
STRICT table allows: INTEGER, REAL, TEXT
and BLOB. The table is created without the STRICT keyword, so SQLite applies
its ordinary affinity rules and refuses nothing.
STRICT table — the same names, and the table is created STRICT. Each type
is the one that will hold what the transfer writes into it, so the tables this
creates are ones this transfer can fill.
Descriptive types with sizes (legacy) — the descriptive names with the
source's own lengths after them, TEXT(50), and a floating-point column named
FLOAT rather than REAL. What earlier versions always did.
The box is offered for an ADO source alone, because this is the only transfer that decides a destination table's columns for itself. Coming from another SQLite database or from a script the columns are already declared and are carried across as they stand; rewriting those is what Convert to STRICT is for. It applies to the tables the transfer creates — a table that already exists and is not dropped first keeps the columns it has.