I wanted to know the procedure to connect to SQL Database from an iPhone app. The read and write procedure to the SQL database and syncing it with iPhone's local database which is in sqlite, so that any changes in SQL database/sqlite database should be reflected on both.
The above answers are lacking. If you want to connect directly to a SQL sever from an iOS device you can use freeTDS. There are several compiled version that run on iOS. It is not as difficult as drag and drop developers would lead you to believe.
Cross compiling FreeTDS to iPhone
Firstly ios dosent support sql database.
If you have sql database on webserver, then you have to create webservices to perform CRUD operations.
Here is simple tutorial for webservices in ios
http://www.techrepublic.com/blog/ios-app-builder/ios-tutorial-part-1-creating-a-web-service/
High level summary:
Construct your local storage database (available sqlite libraries: TankDB (made by me), FMDB)
Create your remote database with frontend webservices for interacting with the database (REST services using PHP might be a good idea for beginners: PHP to MySQL)
Create a way for your iPhone application to communicate with the hosted frontend webservices (available library: ASIHTTP)
You would use the ASIHTTP library from the iPhone to make a REST call to your hosted php files. The "sync" logic would be in your hosted php files and on the iPhone callbacks that are receiving the data.
Keep in mind this is a very simplified overview, but I think its enough to get the ball rolling.
Related
I am working on an IOS application that uses oracle database. I have already done most of the work in swift. The only thing remaining is the login function and the data that needs to be stored in database. Database is already built, I just have to develop the web service for this. I don't know where to start and what is the best way to develop the web service?
I 've been thinking about a project for a Website and an iOS app. I have some domains (Webserver) with SQl. It should become sth. like a News-Blog about a special topic.
So I want to ask, if it would be possible to upload an article into SQl and load it to my app and website.
The problem is, that i've never worked with Sql before and have absolutely no knowledge about Sql. The app would be made in Swift and the Blog(Website) with Wordpress.
So, how should I proceed and where do I have to pay attention?
(Sry for my english, but i hope you understood what I want to do)
SQl = MySQL version 5.5.49
you can load data in ios app using REST API.
when you are done with you SQL integration with Wordpress you can use wordpress Web Services plugin for iOS app.
plugin http://v2.wp-api.org/
In iOS app you can use Alamofire Web API Framework to handle Web API request. https://github.com/Alamofire/Alamofire
I don't know if I clearly understood your question but I think that your main concern is to know whether it is possible or not to use a single database to store the data from BOTH your mobile app AND your website.
The answer is yes. The database will be the same, the data is simply displayed in two different views (website or mobile app).
Note that SQL will only be used to get or to add some data in the database.
Wordpress uses SQL to store data, and you can use SQL while you develop your mobile app to store or to get data from the database created by Wordpress.
SQL is the language and MySQL is the DBMS (DataBase Management System), these are two different things, as I think that you are confused about this.
I am running a site right now with a quite big MySQL database.
Now, I want to create an app. I will need to use obviously a database de to the fact my data are already there.
Thus,
1) Should I keep using the MySQL server and my iOS app will connect to this MySQL serve for getting data?
2) is there any problem if I use the MySQL server ? Security issues maybe?
3) if I have to change the MySQL server, what database infrastructure I need to build and work with?
I am totally newbie on iOS apps. And now I planning to face any issues my iOS app will have.
Since you are running a site with MySQL I think a lot of your questions have been answered. You already have seen how your MySQL database performs in a production environment. Unless you believe that your iOS user base is going to be much larger or perform very different functions you currently have valid performance benchmarks.
In terms of how it relates to the iOS app, you can build an API, or make calls to https pages on your website that will return the information required for your app. For information on how to do this, check out this AFNetworking tutorial.
In the end, there might be some reasons that your current database isn't the right choice for your app. But since the app won't be interacting directly with the database, you can change it out later and you will only have to integrate the database with the interface and not change the iOS app at all.
There are a lot of ways to have a database on server ( I can use my own server or I can use MS Azure (for Azure I found REST API Description https://msdn.microsoft.com/en-us/library/azure/gg715283.aspx , but I didn't find a way to add some rows to a table or to get information from the table)), but I want to edit the database and get proper rows from the server database from iOS code without having server API. There are a lot of ready solutions such as Backendless.com , but they are not stable.
So is there any way to connect to the remote SQL server database on the remove server or to MS Azure database and to edit rows and fetch data?
May there are some framework for iOS to do than? (for example in .Net there are Linq framework and Entity Framework).
In your question, you linked to a management API for SQL Database service - this has nothing to do with data manipulation; it's strictly a management API for dealing with servers and databases.
If you want to direct-connect from an IOS app to SQL Database Service (or SQL Server in a VM), you'd need to find a client library for IOS (and recommendations of such a library are not in scope for StackOverflow). There is no native SQL Server client library specifically provided through the Azure SDKs / APIs.
Outside of a native client library, there is Azure Mobile Services, which provides an API stack specifically designed around use by mobile apps (whether IOS, Android, Windows Phone, or even JavaScript). The API stack provided here, by default, gives CRUD operations for SQL Database tables. Additionally, it supports adding custom API calls, where you have complete control of your API calls.
Any other API stack would require you to choose the stack and run it yourself (whether in a Linux or Windows VM, Cloud Service, or Web App - there's no single right way to do this).
Documentation for Azure Mobile Apps (and related API feature, such as monitoring) is here.
Since you are developing in Azure consider automatic REST API from SlashDB, which is available from their Marketplace.
https://azure.microsoft.com/en-us/marketplace/partners/vte/slashdb-slashdb-azure/
SlashDB reflects the entire database as URL-linked structure so a lot of queries need not even be written. It supports SELECT, INSERT and UPDATE. In addition to that it allows for defining an API end-point to call a stored procedure or return results of a SQL query.
Disclosure: I am the founder and CEO of the company behind SlashDB, but you don't have to take my word it - just try it.
I'm developing a tool that will comprise a central website and a desktop application. I've only really done entirely online developent, or entirely offline/client-side development before and not really had to link the two. I could use some help in how to approach passing data to/from the online site & desktop app.
The desktop app needs to communicate & do some control of iTunes, so initially I'm building this in Cocoa on OSX & making use of the ScriptingBridge framework.
On the website side I'm thinking of using Ruby on Rails, with data stored in a mySQL database, as I'm fairly familiar & seems like a good match for the online job it has to do. (But open to other suggestions if there's a better approach!)
I'm struggling to find the best approach to easily transfer data between the Cocoa app & the online rails database - is there a simple way of having the Cocoa app access the online database directly, or is it typical to dump some XML onto the webserver and have the app read that?
Opening a RESTful API on your RoR system is as simple as you can get. Have your desktop app communicate with that API using JSON or XML.
Advantages to using JSON rather than XML: (1) extremely simple to manipulate in Rails (2) extremely simple to work with in Javascript, should the need arise to build a web client in addition to the desktop one.
It's a very bad idea to have the desktop app communicate directly with your remote database. Two main reasons:
Security. Such a setup just begs to be hacked. Some databases are "built for the web" (CouchDB comes to mind) and would be alright here, but MySQL isn't.
Flexibility. With desktop application in the field, making changes and distributing them to all clients is hard. Should the need arise to change your schema, the web application layer frequently allows you to keep the interface with the desktop clients stable.