finds.dev← search

// the find

martinrybak/SQLClient

★ 125 · C · MIT · updated Sep 2024

Native Microsoft SQL Server client for iOS

An Objective-C wrapper around FreeTDS for connecting iOS apps directly to SQL Server. Solves a real problem — there's no first-party driver for iOS — but it's essentially abandoned at this point, last touched in 2024 after years of silence.

The type mapping table in the README is genuinely thorough and honest about what doesn't work (money truncation, sql_variant, cursors). The NSNotificationCenter approach for errors and messages maps reasonably well to how FreeTDS itself surfaces them. Integration tests require a real SQL Server instance rather than mocks, which at least means the tests that exist are meaningful. CocoaPods distribution lowers the friction of bundling a precompiled FreeTDS binary.

Singleton pattern (`sharedInstance`) means you get one connection for your entire app — no connection pooling, no concurrent queries, and a global state mess if you ever need more than one database. The money type silently truncates the last two decimal digits, which is the kind of bug that costs someone real money before they notice. FreeTDS TDS version defaults to 7.1, so date/time types silently come back as strings unless you set an environment variable — that's a trap that will bite anyone on a modern SQL Server instance. The library is Objective-C only with no Swift-friendly API, no async/await support, and the open issues list has had 'PRs welcome' as the resolution strategy since at least 2014.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →