从本地iOS应用程序查询SQL Server数据库

我正在开发一个内部的iOS应用程序,它将需要对具有多个数据库的SQL Server进行只读访问。 我知道这里的股票答案是“写一些networking服务”,但我想要一个自包含的解决scheme。 有什么办法从iOS应用程序直接连接到SQL Server数据库? 我在想像一个基本的ODBC连接。

我看到很多用户提出这个问题,但除了“编写Web服务”之外,其他答案却很less。 这真的是唯一的方法吗?

networking服务确实是唯一的方法,但红门的书面你可以重复使用:

http://www.mobilefoo.com/iSqlServerSDK.html

http://labs.red-gate.com/Tools/Details/iSqlSDK

它还没有正式发布,只是在testing版,所以请记住,function和价格可能会改变。

其实最简单的方法就是创build一个MVC 3或4的asp.net web应用程序。 调用Web方法。 你不需要任何API来支付。

我使用SBJson序列化域对象,然后将对象作为序列化的jSOn发送到MVC 3.这很容易做到。 我甚至用base64发送图像,所以它兼容.net。

看到我的博客文章示例代码: http : //nickturner.wordpress.com/2012/10/09/107/

有一个SQL ISAPI扩展作为SQLXML的一部分,但我认为它已被弃用: http : //msdn.microsoft.com/en-us/library/aa226559%28v=SQL.80%29.aspx

这实际上是一个预先构build的,相对开放的Web服务 – 所以我不确定这是否直接关联。

你也可以查看http://odbcrouter.com/Main

所以,经过大量的search和反复试验,不幸的是我发现的最好的(唯一的)方法确实使用了Web服务。

幸运的是,Linq to SQL使得创buildWCF的一方非常容易。 一旦我有人在工作,通过设置Windows Web服务器并添加Web服务(以及购买访问在线Web服务器),我已经准备好了。

我仍然在研究SOAP交互方面的所有语法内容,但是在结构上保持我的不同方法有点相似,这使我可以修改一下,直到它工作。 到这个时候,我觉得我已经很好的工作了。

所以,我回来的两个答案(令人失望)是正确的。 互动的唯一方法是通过Web服务。 即使是他们提到的第三方解决scheme,也只是围绕相同types技术的便捷包装。 事实certificate,我宁愿有更好的控制过程。

一个build议的话:获得一个真正的外部networking服务器。 我试图在iMac / MacBook Pro的非服务器Windows虚拟机上执行此操作,这就像拉牙! 一旦我真的可以访问一个外部的,完整的,独立的Web服务器,这个过程就更简单和简单了。 帮你一个忙,把这个头痛拿出来!