MSSQL Connection Plugin
The mssql_connection
plugin allows Flutter applications to seamlessly connect to and interact with Microsoft SQL Server databases, offering rich functionality for querying and data manipulation.
π Now supports Windows along with Android for cross-platform development. Easily customize your database operations, ensure secure connections, and simplify app development with mssql_connection
. π
Features
- π Cross-Platform Support: Seamless Microsoft SQL Server integration for Android and Windows.
- π Query Execution: Execute SQL queries and retrieve data effortlessly in JSON format.
- β³ Configurable Timeouts: Set connection timeouts for secure and reliable operations.
- π§© Simplified API: Developer-friendly API for Flutter apps.
- π Automatic Reconnection: Robust connection handling during interruptions.
- π Effortless Data Writing: Perform insert, update, and delete operations with transaction support.
Installation
To use the MsSQL Connection plugin in your Flutter project, follow these simple steps:
-
Add Dependency: Open your
pubspec.yaml
file and add the following:dependencies: mssql_connection: ^2.0.0
Replace
^2.0.0
with the latest version. -
Install Packages: Run the following command to fetch the plugin:
flutter pub get
-
Import the Plugin: Include the plugin in your Dart code:
import 'package:mssql_connection/mssql_connection.dart';
-
Initialize Connection: Get an instance of
MssqlConnection
:MssqlConnection mssqlConnection = MssqlConnection.getInstance();
Usage/Examples
Example Screenshots
Connect to Database
Establish a connection to the Microsoft SQL Server using the connect
method with customizable parameters:
bool isConnected = await mssqlConnection.connect(
ip: 'your_server_ip',
port: 'your_server_port',
databaseName: 'your_database_name',
username: 'your_username',
password: 'your_password',
timeoutInSeconds: 15,
);
// `isConnected` returns true if the connection is established.
Get Data
Fetch data from the database using the getData
method:
String query = 'SELECT * FROM your_table';
String result = await mssqlConnection.getData(query);
// `result` contains data in JSON format.
Write Data
Perform insert, update, or delete operations using the writeData
method:
String query = 'UPDATE your_table SET column_name = "new_value" WHERE condition';
String result = await mssqlConnection.writeData(query);
// `result` contains details about the operation, e.g., affected rows.
Disconnect
Close the database connection when it's no longer needed:
bool isDisconnected = await mssqlConnection.disconnect();
// `isDisconnected` returns true if the connection was successfully closed.
π Version 2.0.2 Updates
β Android
Here's a clearer and more helpful version of that line for your changelog or README:
- β
Added a
proguard-rules.pro
file underexample/android/app/
to prevent R8: Missing class issues during APK builds.
π§ If you encounter similar R8-related errors in your own project when using this plugin, you can download this file and place it in your project at
android/app/
.
-
β Improved JSON serialization support for special SQL types:
Types.BINARY
,VARBINARY
,LONGVARBINARY
CLOB
,ARRAY
,STRUCT
,DISTINCT
,REF
,JAVA_OBJECT
πͺ Windows
- π οΈ Fixed
INK : fatal error LNK1104
issue during Windows builds for smoother native compilation.
π Binary Data Handling (VARBINARY
, BLOB
, BINARY
)
This plugin automatically handles binary columns like VARBINARY
, BLOB
, and BINARY
by Base64 encoding their contents in the JSON output.
π§ͺ Example
SQL Query:
INSERT INTO Files (FileName, Data)
VALUES ('example.txt', CAST('This is some binary data' AS VARBINARY(MAX)));
Flutter Output:
[
{
"Id": 1,
"FileName": "example.txt",
"Data": "VGhpcyBpcyBzb21lIGJpbmFyeSBkYXRh"
}
]
π₯ Decoding in Flutter
You can decode this data like this:
import 'dart:convert';
final base64Str = "VGhpcyBpcyBzb21lIGJpbmFyeSBkYXRh";
final bytes = base64Decode(base64Str);
// If the binary is actually plain text, decode it further
final decodedText = utf8.decode(bytes);
print(decodedText); // Output: This is some binary data
β οΈ Note: Always decode the binary based on its original intentβwhether it's a file, an image, or plain text.
Contributing
Contributions to improve this plugin are welcome! To contribute:
- Fork the repository.
- Create a feature branch for your changes.
- Commit your changes with clear, concise messages.
- Push the branch and create a pull request.
For issues, suggestions, or feature requests, feel free to open an issue in the repository. Thank you for contributing to mssql_connection
! π