MSSQL IO
Flutter plugin for Microsoft SQL Server. Works on Android, iOS, Windows, macOS, Linux, and Web.
Installation
dependencies:
mssql_io: ^0.0.3
Quick Setup
Mobile:
cd android && ./build_freetds.sh # Android (15-20 min first time)
cd ios && ./build_freetds.sh # iOS - macOS only (10-15 min)
Desktop:
brew install freetds # macOS
sudo apt-get install freetds-dev # Linux
vcpkg install freetds:x64-windows # Windows
Web: Requires backend API proxy.
Usage
import 'package:mssql_io/mssql_io.dart';
final request = MssqlConnection.getInstance();
// Connect
await request.connect(
host: '192.168.1.100',
databaseName: 'MyDB',
username: 'sa',
password: 'Password123',
);
// Query
final result = await request.getData('SELECT * FROM Users');
// Parameterized query (prevents SQL injection)
final users = await request.getDataWithParams(
'SELECT * FROM Users WHERE Age > @age',
[SqlParameter(name: 'age', value: 18)],
);
// Insert with parameters
await request.writeDataWithParams(
'INSERT INTO Users (Name, Email) VALUES (@name, @email)',
[SqlParameter(name: 'name', value: 'Alice'),
SqlParameter(name: 'email', value: 'alice@example.com')],
);
// Transaction
await request.beginTransaction();
try {
await request.writeData('INSERT INTO Orders VALUES (1, 99.99)');
await request.commit();
} catch (e) {
await request.rollback();
}
await request.disconnect();
API
connect()/disconnect()- ConnectiongetData()/getDataWithParams()- QuerieswriteData()/writeDataWithParams()- Insert/Update/DeletebeginTransaction()/commit()/rollback()- TransactionsbulkInsert()- Batch operations
Security
Always use parameterized queries:
// Safe
await request.getDataWithParams('SELECT * FROM Users WHERE Name = @name',
[SqlParameter(name: 'name', value: userInput)]);
// Unsafe!
await request.getData("SELECT * FROM Users WHERE Name = '$userInput'");
Troubleshooting
Can't connect?
- Check SQL Server is running on port 1433
- Test:
telnet your-server 1433
Library not found?
- Mobile: Run
./build_freetds.shin android/ or ios/ - Desktop: Install FreeTDS
Author
Libraries
- mssql_io
- MSSQL IO Plugin - Microsoft SQL Server access for Flutter
- mssql_io_web