Directly perform SQL queries from iPhone to an online server - sql

I'm a newbie and tend to do a simple iOS applications.
The mission is making an app that does the registeration for a person and then upload that data to an online server.
In detail, I want to insert, delete, update data directly to online server.
Would anyone show me what I have to do with (tool, library...)?
I have worked with SQlite to make a local database for the iPhone and it worked well, now it is about dealing with an online server.

For performing remote request there are two ways:
1) https://github.com/smhuang426/MySqueakQl - this is "basic" implementation for remote access to DB. http://www.karlkraft.com/index.php/2010/09/17/mysql-for-iphone-and-osx/ - more advanced, in articles you may some instructions how use this framework. In this case you use SQL C API and you can write your own special classes. Example: http://blog.iosplace.com/?p=30 , http://zetcode.com/tutorials/mysqlcapitutorial/ and description of C API http://dev.mysql.com/doc/refman/5.0/en/c-api-function-overview.html
2) PHP script that posted on online server, you use async ASIHTTP (or ordinary NSRequest) that send to this script, and script works directly with sql DB on tis server. Example ( iOS no communication between iPhone app and MySQL database via PHP). In this case you achieved more security, but also there some limitations like decrease of app's speed and server must supply PHP.
Good luck!

What you need is some kind of remote API available which you will use to interface the iPhone application and say, a MySQL database.

Related

How to deploy windows form application with entity framework

I am busy developing my own application, it uses a sql server database and it is connected through an entity framework. I use store procedures to insert, update, delete, select from my database.
The app works perfect on my machine even when I publish it. But my problem comes in when I try to install the app to my friend’s computer. It crashes and does not start because it cannot connect to the database.
Is there a way to publish my app with the database, without importing all the tables, store procedures and database into my friend’s pc? I just want to make it so the user just has to install the app and it works.
Your app relies on the db to work, so if you want to put it on your friends PC then you need to make the DB available somewhere, whether it be a local copy or a copy stored on a server somewhere running SQL.
How are you storing your connection string? Is it hard coded in the app or are you utilising the app.config file? To do what you're trying to do you'll need to put the connection string into the app.config file, so you can change it depending on the installation.
either that or
if you want to run your app without data, put a demo flag or something into the app.config file. Put some code into your app to check this value, if it's true then bypass the SQL code and maybe supply some demo data which is hard coded.
Does this make sense?
You could use SQL CE, but you may find it a little more difficult to 'design' your database in it if you are more used to working in SQL Server.
Have you considered SQL Server Express as an option?
On the connection string issue, you can now get the data connection wizard that Microsoft use in Visual Studio via Nuget; this makes adding a way to dynamically configure connection strings on your clients machine much easier.
Lastly, connection strings for the entity framework are different from standard SQL connection strings. Make sure that you clearly understand the differences before you start trying to configure them programmatically. Julie Lerman's excellent book on the Entity Framework explains the differences well.

How to store data from iOS app in a remote database safely and Apple friendly?

How would one go about incorporating, for example a 'mailing list' where user could fill in a text field for 'name' and 'email address' and click a submit button that would add the data to a database on a remote server.
Property lists would be the most convenient but the whole plist would need to be downloaded to the users device, modified and reuploaded (which looks involved and easily corrupted). SQLite is likewise built for a local database. Is there a simple way to do this or is server side php scripting the only real answer?
I see a lot of replies about this question that specify a specific database type and programming solution. The real solution is a web service, of any kind, and a data store, of any kind.
This could be SQL Server with a web service written in ASP.NET. It could also just as easily be a MySQL database with an interface written in PHP. But for the love all things secure don't try to attach to a database directly.
It would appear the most practical method at this time is a remote MySQL (or similar) database queried from php scripts that are called from the app via NSURLRequests (. Information about the query can be sent using the _POST variable.

Pulling Data From an SQL Database in HTML 5

I am trying to develop a BlackBerry application that will show data from an SQL Database from a server. I was researching the new HTML 5 option for blackberry (WebWorks) and noticed that it apparently cannot connect to any server data by itself. Some links state that I would need javascript coding to obtain it. I looked into the option of PhoneGap (link here: http://phonegap.com/) and decided I'd try using HTML 5 to produce the application. I have never touched SQL databases before and I am wondering how I would connect the two; meaning how do you pull data from the server given that you are working with HTML5?
I have looked at:
Where is data stored when using an HTML 5 Web SQL Database
Process for pulling data from a sql database
among others but I am still unsure as to what to do. I would be looking to "view" the data from the server and display it on the app. It would be something of the sort:
- HomeScreen: What data would you like to view?:
- Dropdown list of categories (from the database)
- Selecting Entry in dropdown leads to available information (from the database)
Any help would be appreciated, and of course thanks in advance.
the new (and pretty awesome) features of HTML5 is happening in the browser on the client side. What you will need is a back-end on the server side doing some magic. It is true that browsers now have databases but these are located on the phone, computer etc and as I understand your question you want these data to communicate with data on your server. To move data across the web you will need to perform HTTP-requests which can easily be done through javascript and ajax. Look a bit into these technologies and make a little server-side script that gathers data from the database and send it in a structured format to the phone (JSON, XML), then make a script in javascript on the client-side that parse these data and utilise them.
Good luck!

querying database in android

I am building an android app and I have an SQL database stored on a server. I need to either pull the database into android or query the database and have it return information from the tables. I have searched all over the internet but I haven't found anything that explains how to connect to the server from android. How can I do this?
You can't query database in a server from android directly. You have to write PHP scripts to query database from server. You have to keep the php scripts in a web server. And from android application you have to get the data from the php page.
I don't think there is a reasonably simple way to 'pull' the database or connect to it using some soft of ODBC connection. And I don't think it would be wise to use it even if possible.
I believe the best way to solve your problem would be to implement some sort of REST API interface to your database and fetch data as needed.
actually, despite gypsicoder's answer and several "how to"s on the internet, there is a way to connect/query an SQL database from android
you just have to download the corresponding JDCB. for mysql: http://dev.mysql.com/usingmysql/java/
then you just use the java.sql interfaces/classes to do stuff (mysql has a reference manual at above link)

How to manipulate SQL Azure database through pure REST calls

I am an iPhone developer. For one of my clients I am supposed to access their database stored in SQL Azure.
I know that there is an Objective C SDK. I have downloaded it and ran the NetFilx example successfully. But of course my client's account is password protected. Also as of now the Objective C SDK seems to provide only read support. But I will need to write to the database too. So I guess that I will have to use REST based calls to update the database.
My problem is that I cannot figure out what will be the URL of the REST services for the SQL Azure Database and how the authentication will work. I tried searching the net but all the examples seems to show how to connect through .Net, Java or PHP (and other supported languages). Nobody seems to talk about pure REST calls.
I can successfully connect to the database using following command:
sqlcmd -UUsername#Server -PPassword -Stcp:server.database.windows.net -dDBName
If such is the connection command, can any of the Gurus out there help me figure out, what should be the URLs to access this DB through pure REST calls and how the authentication will take place.
Any help is greatly appreciated. Thanks in advance.
Pritam.
What you need is the OData interface to SQL Azure. Currently, SQL Azure only supports TDS protocal, which will require a library to use. However, if you put the OData interface in front of SQL Azure, you can call to SQL Azure via REST.
More information
http://www.odata.org/blog/got-sql-azure-then-youve-got-odata/