Can the iPhone only use an SQLite database? - iphone

Can the iPhone use other databases besides SQLite, like MySQL?

The iPhone can only use SQLite as a database, directly on the device. This means there is no MySQL server inside the iPhone. But you can, and are free to have (your own) MySQL Back-end server, to which iPhone applications connect to. But Apple doesn't provide the server, so you have to pay the maintenance costs

Not true any more!
The Raima RDM Embedded database SDK will also work on the iPhone. It's cool because it supports the network and relational models, and you can do things like having direct pointers to records for faster access.
They have an official port coming, but their version for Mac works in the iPhone Simulator.
raima.com/iphone

SQLite is installed on all iPhones. Theoretically, you can run other databases but since you cannot start other processes, you cannot run MySQL -- MySQL requires a separate process (the mysqld daemon).

Related

iOS, which database to choose?

i need some advice.
I am developing an iPhone application (later for Android also) using some social network users. I need to store some data in a database online.
Better to use MySQL with XML or directly use SQLite?
I want performance and stability, and if all goes as I think I might have to handle 500,000 users or more.
I studied a lot about databases, but I would not even take care of his administration, because I'm alone.
Most web services do not support SQLite, but MySQL only.
Can anyone give me some advice with justified?
Thank you to entire community.
Bye, Eros.
Is the database going to run on the device (iPhone/Android) or in the server? In the device both iPhone and Android have good support for running SQLite as an embedded database. If you are thinking server side it doesn't really matter in terms of compatibility since most likely you will add a application layer that is easy to make compatible.

Remote MS SQL or MySQL Database on iOS

I currently have a website that uses MS SQL and I am interested in creating an iOS client for that website. I would the app to connect to a remote SQL database that is hosted on my website and then I could pull information from that database and display it locally on the device. I would like to also publish information to the database. I am open to use MySQL.
Is this possible and if so does anyone know of any good tutorials that I could check out?
I'd highly recommend placing a thin web layer between your database and your iOS client. You don't want iOS apps connecting directly to your database (unless this is for your own personal use for limited to a handful of people you really trust).
You could write the web layer in PHP (or whatever you fancy). At that point you can use HTTP and JSON between your iOS app and your database.
Put a web service between the phone and the DB.
There are two options :
You can develop webservices/scripts or whatever server side solution that will make your database talk "publicly"
Use a third-party library (like this) that will make your app communicate with the MySQL database.

DB to run on OS X server that will sync nicely with Core Data on iOS?

I am trying to plan out a few iOS/server apps for internal use. On the iOS side I'll use Core Data, but I'm not so sure what many people do on the server side. I will be running a Mac Mini with OS X Server 10.6.X. This app will need to sync when the iOS device is on the internal WiFi as well as over 3G. Some of this data will need to be accessed by the company's external web site which is written in PHP, as well as by native apps on iMacs internally. Should I just use a MySQL db on the server, and expose a web service, or is there a better way by using Core Data on the server that would make syncing the iOS device easier? The data is not too relationally complex. I'm thinking tblClient 1->M tblJob 1->M tblImage/Drawing.
In most cases, the server side doesn't matter because your communicating with URLs and some standard data format like JSON.
You can connect to a remote Core Data store but it doesn't handle multiple access so there's seldom much point to doing so. You could write your own server that uses Core Data but usually its quicker and easier to use a preexisting package dedicated to server work.
My advice is to go with the server that is quickest and easiest for you to implement and maintain with the knowledge and tools you have on hand. It's easier to adapt the client side Core Data to inputs from the server than it is to attempt to integrate Core Data directly into the server.

How to run/port MongoDB on iPad?

I wonder if it is possible to run MongoDB on iPad as it is or do I have to port it to iPhone OS?
I honestly have no experience with iPhone/iPad development and imagine that there'll be some work involved to get it working; but MongoDB is capable of being run as an embedded database - maybe that would be the way to go. Check out the code for the MongoDB tools (tools/import.cpp, etc.) - those optionally run using the embedded client.
MongoDB runs in a separate process. Can iPad deal with two or more processes?

How do I write a desktop application that syncs with the iPhone?

For example, how would I write a program like senuti? Are there any libraries I can use for this? It would be ideal if I could do this in Python or .Net, but I'm open to other things as well.
There are three things you can do:
Add some code to your iPhone application which acts as some kind of server (http, SMB, etc). Then your mac/windows full client application can connect to this server over wifi. This is safe and reliable, but unfortunately the app will have to be running on the iPhone at the time of sync.
Sync to the "cloud". EG: Have your iPhone app save some data to a web server on the internet (you could use amazon EC2, windows Azure, or even just a PHP script running on a cheap hosting account), and then have your windows/mac client also connect to this web server to retrieve the data. This is the most user-friendly, but it requires you to pay for the hosting of the web server, and will be unsuitable for large amounts of data
Violate the EULA and try to reverse engineer the way iTunes communicates with the iPhone.
This is how senuti works, but I wouldn't recommend it, as they're constantly having to play catchup with apple changing the format underneath them, and they are probably exposed to some kind of legal action, if apple ever bothered to sue them.
i believe Version 3.0 will resolve this as it allows you to program apps to the USB interface. check out some of the documentation for that in the External Accessory framework.
it would still require the app to be open, so essentially would mean two syncs (or more if you have multiple apps)
There is no legal / official way of doing this. Creating a program that would sync with an iPhone would violate the EULA you agree to when using the iPhone and iTunes.
Not only is it illegal, but it's also impossible to do this reliably. Apple could break the method at any time without any notice, and it would pretty much be a cat-and-mouse game.
I only know of one application that something of the kind, and it is the iToner application which synchronizes ringtones.