我必须将SQL Server与Flutter一起使用,并且没有其他数据库选项,因为我的客户端拥有它。我一直在寻找软件包,但我发现一个不能在移动设备上运行的软件包。没有Web服务或api,有什么选择吗?
答案 0 :(得分:1)
您需要考虑的第一件事是没有立即且极其有效的解决方案,您必须决定要使用哪些框架和工具。正如评论中提到的,这种情况的市场非常小。但是有一些方法可以解决这个问题。
远程存储示例解决方案:
以下是您应该如何实现这一点的基本示例。此 SO post 中也引用了此内容:
<块引用>客户端应用
客户端应用程序可以是用户通常使用的任何应用程序。 一些例子:
API
API 用于检索数据和更改数据。但它也会 处理身份验证、授权、日志记录、处理业务逻辑
数据库
然后您的 API 将执行查询、插入、更新、删除、执行 您选择的数据库上的存储过程。在您的示例 SQL 中 服务器。
如何设置有多种可能性,具体取决于您的 技能、框架知识、您希望如何部署事物。
您希望如何部署它也会限制您的选择。为您 API:
在现实生活中,防火墙通常会变得更加复杂, 应用程序网关、虚拟网络、集群。
答案 1 :(得分:1)
您可以在您的服务器上安装 SQLServerSocket:
https://github.com/nippur72/SqlServerSocket
在安装了SQL Server的服务器机器上后台安装并执行SqlServerSocket.exe。
另外,你需要一个客户:
https://github.com/nippur72/SqlServerSocket/tree/master/DartClient
您可以尝试直接连接和查询到您的 DDBB:
// creates a connection
var conn = new
SqlConnection("SERVER=localhost;Database=mydb;Trusted_connection=yes");
// open connection
await conn.open();
// runs a query returning a single value
var howmany = await conn.queryValue("SELECT COUNT(*) FROM Customers");
// runs a query returning a single row
var myFirstCustomer = await conn.querySingle("SELECT name,age FROM Custormers");
print(myFirstCustomer["name"]);
// runs a query returning all rows
var customers = await conn.query("SELECT TOP 10 name,age FROM Custormers");
for(var customer in customers)
{
print(customer["name"]);
}
// execute a command, returning the number of rows affected
var n = await conn.execute("UPDATE Customers SET age=0");
print("zeroed $n customers");
// disconnect
await conn.close();