Most label data already lives in a database — your ERP, WMS, MES or LIMS. LabelInn connects to it directly, so the lot number, batch, expiry date, GHS phrases or shipping fields on a label come from the same source of truth your business runs on. No CSV export. No copy-paste. No middleware.
And you don't need to be a SQL expert to use it: describe the data you want in plain English and the AI query builder writes the read-only SQL for you.
Run your labels off live data. Connect Oracle, SQL Server, PostgreSQL, MySQL or SAP HANA, preview a query, and bind it onto a label in minutes. Start a free trial → · Download the desktop app →
Databases LabelInn connects to
A local LabelInn bridge loads your installed ODBC/OLEDB/Oracle client driver and keeps the connection alive, so you supply the driver once and LabelInn manages the rest. Each engine has its own setup page:
- Print labels from Oracle — listener on port 1521, Oracle SQL
- Print labels from Microsoft SQL Server — port 1433, T-SQL
- Print labels from PostgreSQL — port 5432
- Print labels from MySQL / MariaDB — port 3306
- Print labels from SAP HANA — port 30015, database connection only (no RFC/IDoc/BAPI)
No database? The same field binding works from an Excel file, a CSV export or the REST API. All sources are listed on label data sources.
| Database | Supported | Notes |
|---|---|---|
| Oracle Database | ✓ | Service name or SID addressing; FETCH FIRST row limits |
| Microsoft SQL Server | ✓ | Named catalog; SELECT TOP row limits; @param binds |
| PostgreSQL | ✓ | Schema override supported; LIMIT row limits |
| MySQL / MariaDB | ✓ | Named database; LIMIT row limits |
| SAP HANA | ✓ | Optional schema; FETCH FIRST row limits |
Each connection is set up with a guided wizard — host, port, database/service, username, password and TLS mode (require / prefer / disable / strict) — and a one-click Test connection that reports the server version and confirms the account is read-only before you save anything.
AI Query Builder — describe it in plain English, get safe SQL
The hardest part of connecting labels to a database is usually writing the query. LabelInn's AI Query Assistant removes that step. Type what you want in plain language and it generates dialect-correct, read-only SQL for whichever engine you're connected to:
- Quick mode — one-shot: describe the result, get a ready-to-run
SELECT. - Chat mode — agentic: the assistant reads your cached schema, runs read-only test queries to see real column values, and refines the query with you over a few turns.
- Dialect-aware — it knows
FETCH FIRST N ROWS ONLYfor Oracle & SAP HANA,LIMIT Nfor MySQL/PostgreSQL, andSELECT TOP Nfor SQL Server. - Parameterized by default — filters become bind parameters (
:lot,:warehouse) you can fill at print time, instead of brittle string concatenation. - Read-only guaranteed — the assistant only ever returns
SELECT/WITHstatements; anything that would modify data is rejected before it reaches your database.
Whether you bring your own Gemini key or use LabelInn Credits, the AI never sees your database password — it only works against the schema and the read-only bridge running on your own machine.
Your credentials never leave your machine
This is the part enterprise IT cares about. LabelInn does not tunnel your database to the cloud. Queries run through an on-premises sidecar — the LabelInn db-bridge — installed next to the app:
- Loopback only — the bridge listens on
127.0.0.1, not on your network. - Bearer-authenticated — every request to the bridge must present a token.
- Protected at rest — a desktop-managed connection keeps the password in OS-backed secure storage (DPAPI on Windows, Keychain on macOS) and never sends it to the cloud. A cloud-managed connection seals it with AES-256-GCM under a per-company key (master key in Secret Manager); the cloud holds only ciphertext, never returns it from any endpoint, and decrypts it solely for an authenticated, audited edge fetch. Connection metadata (host, port, username, schema) is stored in your tenant record either way.
- SELECT-only guard — the bridge rejects
INSERT,UPDATE,DELETE,DROPandEXEC. LabelInn physically cannot change your data. - Local query audit log — every query the bridge runs is appended to a JSONL audit file on that machine (one file per UTC day, under
%PROGRAMDATA%). It records the timestamp, request id, endpoint, connection fingerprint, a SHA-256 of the statement, row count, duration and outcome — deliberately not the SQL text and not any result rows. So you can answer "what did the label system read, and when?" without the audit file itself becoming a copy of your data. It stays on your machine and is never sent to us. - Bring a read-only user — for defense in depth, point the bridge at a database account that only has
SELECTrights.
Where database data shows up on a label
Once a connection is live, the data can flow into labels three ways:
- Print-dialog lookup — the operator types a value (a lot number, an order ID) and LabelInn runs the filter on the bridge (
WHERE match = :key), so even a 500,000-row table returns the matching rows instantly. The operator picks a row and the label fills in. - Canvas table importer — drop a database table onto the canvas, preview the result set, and bind columns to text, barcodes or list elements for a sheet of labels.
- Saved query library — store reusable, parameterized queries per connection so the whole team prints from the same vetted SQL.
From there it's the same LabelInn you already know: render to the printer's native language (ZPL, TSPL, Toshiba TPCL, Epson ESC/Label), print over driverless USB / TCP-IP / Bluetooth, or push the job through a visual workflow or the REST API.
LabelInn vs traditional label software for database printing
| Capability | Typical label software | LabelInn |
|---|---|---|
| Database connectors | Often a paid/Enterprise add-on | Oracle, SQL Server, PostgreSQL, MySQL / MariaDB, SAP HANA |
| Write the query | Hand-write SQL or map columns manually | AI query builder — plain English → read-only SQL |
| Where credentials live | Varies; sometimes stored centrally | On-prem loopback bridge — OS keystore (DPAPI/Keychain) for desktop-managed connections, AES-256-GCM under a per-company key for cloud-managed ones |
| Write protection | Depends on the DB account you give it | SELECT-only guard rejects writes at the bridge |
| Query audit | Rarely built in | Hash-chained, tamper-evident query log |
| Large tables | Often pulls the whole table client-side | Push-down filter on the bridge — 500k+ rows stay fast |
| Platforms | Windows only | Design anywhere; bridge runs on Windows next to your DB |
How it works, end to end
- Connect — run the wizard, point it at your Oracle / SQL Server / PostgreSQL / MySQL / SAP HANA host, and Test connection.
- Query — describe the rows you need in plain English; the AI query builder writes the read-only SQL, or pick a saved query.
- Bind — map the columns onto a label design (text, barcodes, GHS phrases, colors — even color bound to a data field).
- Print — operators look up a row in the print dialog and print; or automate it through a workflow or the REST API.
Frequently Asked Questions
Can LabelInn print labels directly from an Oracle or SQL Server database?
Yes. LabelInn connects directly to Oracle, Microsoft SQL Server, PostgreSQL, MySQL / MariaDB and SAP HANA. You select a connection and a query (or let the AI query builder write one), preview the rows, and bind them straight onto a label design — there's no CSV export step.
Do my database credentials get sent to the cloud?
No. Queries run through an on-premises sidecar — the LabelInn db-bridge — on your own Windows machine. It listens on loopback only, requires a bearer token, and handles the password one of two ways. A desktop-managed connection keeps it on your machine in OS-backed secure storage (DPAPI on Windows, Keychain on macOS) and never transmits it. A cloud-managed connection — created from the dashboard or REST so any edge node can fetch it just-in-time — stores it as AES-256-GCM ciphertext under a per-company key, never returns it from any list or get endpoint, and decrypts it only for an authenticated, audited edge fetch.
What is the AI query builder?
It's a natural-language-to-SQL assistant inside LabelInn. Describe the data you want in plain English and it generates dialect-correct, read-only SQL — FETCH FIRST for Oracle and SAP HANA, LIMIT for MySQL/PostgreSQL, TOP for SQL Server — using bind parameters. It can read your cached schema and run read-only test queries to refine the result. Only SELECT / WITH statements are ever returned.
Is the database connection read-only and safe?
Yes. The db-bridge enforces a SELECT-only guard that rejects INSERT, UPDATE, DELETE, DROP and EXEC statements, so LabelInn cannot modify your data. There is exactly one sanctioned exception: an optional single-row “mark row as printed” write-back used by the workflow row-watcher, which is matched against a fixed statement shape, fully parameterised and bounded to one row — it cannot express a free-form UPDATE, and anything not matching that exact shape falls through to the SELECT-only rules and is rejected. Every query is recorded in a local audit log on your own machine (a SHA-256 of the statement and a row count — never the SQL text or the rows), and we recommend giving the bridge a read-only database user so the restriction is enforced by your database as well as by the bridge.
Do I need to write SQL?
No. The AI query builder writes the SQL for you from a plain-English description, and operators can simply type a value (like a lot number) into the print dialog to look up the matching row. SQL-fluent users can still write and save parameterized queries by hand.
How large a table can it handle?
Lookups push the filter down to the database (WHERE match = :key) and run on the bridge, so tables with 500,000+ rows still return the matching records quickly instead of being pulled client-side.
Put your labels on live data
Connect your database, describe the rows you need in plain English, and print labels straight from your ERP — read-only, encrypted, and audited.
Start a free trial → Download the appTechnical buyer? Read the developer docs & API reference →