简体   繁体   English

从Microsoft软件堆栈外部连接到SQL Server

[英]Connecting to SQL Server from outside of the Microsoft software stack

I'm a software engineer in a Microsoft dominated company and now and then whilst between larger projects I am asked to create support for those larger projects. 我是一家由Microsoft主导的公司的软件工程师,时不时地在大型项目之间创建对那些大型项目的支持。 This will almost always involve some form of database interaction and being dominated by Microsoft technology our database of choice is of course Microsoft SQL Server. 这几乎总是涉及某种形式的数据库交互,并且由Microsoft技术主导,我们选择的数据库当然是Microsoft SQL Server。 This makes developing support applications in non-Microsoft languages a real problem. 这使得使用非Microsoft语言开发支持应用程序成为一个真正的问题。

I've looked at Smalltalk, Go, Scheme and Factor and I always come to the same conclusion that it just isn't possible or worth the effort because ODBC support for those languages is just to fragile to be useful. 我看过Smalltalk,Go,Scheme和Factor,我总是得出相同的结论,那就是不可能或不值得付出努力,因为对这些语言的ODBC支持只是脆弱而有用。

I've investigated the possibilities of creating a data access layer via a web service. 我研究了通过Web服务创建数据访问层的可能性。 This is not always the ideal situation though and with large amounts of data this can turn out to be a bottle neck. 尽管这并不总是理想的情况,但由于数据量巨大,这可能成为瓶颈。

I could clone the data and import it into a more open database system and then develop in a language of my choice. 我可以克隆数据并将其导入到更开放的数据库系统中,然后以我选择的语言进行开发。 This seems like a very unnecessary step and also means that I am no longer working with primary data. 这似乎是非常不必要的步骤,也意味着我不再使用主要数据。

How are other C# .Net developers developing support applications that rely heavily on the Microsoft stack in non-Microsoft languages? 其他C#.Net开发人员如何开发高度依赖非Microsoft语言的Microsoft堆栈的支持应用程序?

Instead of going the ODBC route, you might consider using native drivers in whatever language you pick. 您可以考虑以任何选择的语言使用本机驱动程序,而不是使用ODBC路由。 This will probably "fit" better with that language's approach. 这可能会更适合该语言的方法。 For example, Python has pymssql and cx_oracle which each conform more closely to the conventions of the language rather than trying to force it into least-common-denominator of ODBC. 例如,Python有pymssql和cx_oracle,它们各自都更符合该语言的约定,而不是试图将其强制为ODBC的最小公分母。 I'm not familiar with the languages you listed (and it's not clear if you're limiting this question only to those), but I suspect a similar situation exists there. 我不熟悉您列出的语言(并且不清楚是否仅将这个问题限制在这些语言范围内),但是我怀疑那里也存在类似的情况。

FreeTDS also comes up a lot in discussions of SQL Server access, but mostly from a Linux perspective. FreeTDS在有关SQL Server访问的讨论中也涉及很多,但主要是从Linux的角度。

Another variation: if you use something that uses the .Net DLR such as IronPython or IronRuby , you get to use the .Net Framework and it's ADO.NET libraries while still applying a new language approach. 另一个变体:如果使用诸如IronPythonIronRuby之类的使用.Net DLR的东西,则可以使用.Net Framework及其ADO.NET库,同时仍然采用新的语言方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM