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() - Connection
  • getData() / getDataWithParams() - Queries
  • writeData() / writeDataWithParams() - Insert/Update/Delete
  • beginTransaction() / commit() / rollback() - Transactions
  • bulkInsert() - 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.sh in android/ or ios/
  • Desktop: Install FreeTDS

Author

Farhan Sadik Galib

Libraries

mssql_io
MSSQL IO Plugin - Microsoft SQL Server access for Flutter
mssql_io_web