x


connect to the sql database

I need to connect to the sql database in unity3d,but can not find the fully information. i hope the company can provide the package,so we can use it.thang you.

more ▼

asked Nov 23 '09 at 01:22 PM

yq li gravatar image

yq li
26 1 2 3

Which database specifically do you want to connect to? And: In what environment do you want to access the database? Unless you're in a "safe environment" (e.g. local network, authoritative server that sits next to the database etc.) you probably don't want a direct (Internet) network connection to a database server.

Nov 26 '09 at 09:04 PM jashan
(comments are locked)
10|3000 characters needed characters left

7 answers: sort voted first

Well, the question is still pretty unclear - but here's how to connect to an MS SQL Database:

In the editor and standalones, this approach should be working fine ... I'm not sure if it also works with Web players - but even if it should work, I'd definitely not recommend letting Web players connect to your database (unless you got everything in a local network). I also wouldn't let any clients connect directly to a database unless you have a secure environment.

You need System.Data.dll from the Unity.app folder (I think under Frameworks). Do not use System.Data.dll from any Mono installation (I had very ugly crashes with that, and it took me almost forever to find what the problem was because the crashes occured when closing my game server / closing Unity after I had started the game server inside Unity - so there was no hint that it was the database connection which was causing the crashes).

You need to make sure that the SQL Server listens to TCP connections (not a default setting).

I got this up and running easily with code from the Mono project (modified somewhat, but not toooo significantly):

using System.Data; 
using System.Data.Sql; 
using System.Data.SqlClient; 

... 

... and then, in some method: 

using (IDbConnection dbcon = new SqlConnection(connectionString)) { 
    using (IDbCommand dbcmd = dbcon.CreateCommand()) { 
        dbcmd.CommandType = CommandType.StoredProcedure; 
        dbcmd.CommandText = procedureName; 
        foreach (SqlParameter parameter in parameters) { 
            dbcmd.Parameters.Add(parameter); 
        } 
        dbcon.Open(); 
        result = dbcmd.ExecuteScalar(); 
        dbcon.Close(); 
    } 
}

procedureName also could be an SQL statement.

Ah, and I think you can't use the IP-address in the connection string (you need to use a name that can be resolved via DNS). The only parameters I could use in the connection string (I think that's a Mono limitation) are: Database, Server, uid and pwd.

Hope that helps ...

I had a similar posting about this in the forum in MS SQL connection?; other postings regarding this issue on the forums:

more ▼

answered Dec 08 '09 at 10:30 AM

jashan gravatar image

jashan
11.1k 25 46 122

(comments are locked)
10|3000 characters needed characters left

...and (2) since I am a new user and can only post 1 link at a time:

2) Use SQLLite directly, as described here:

http://forum.unity3d.com/viewtopic.php?t=30249&start=0&postdays=0&postorder=asc&highlight=

more ▼

answered Nov 24 '09 at 05:14 AM

darrelcusey gravatar image

darrelcusey
22 2

(comments are locked)
10|3000 characters needed characters left
more ▼

answered Feb 10 '11 at 11:30 PM

Daniel 15 gravatar image

Daniel 15
46

(comments are locked)
10|3000 characters needed characters left

You need to provide more information about this - as it stands, this is a vague question. Is this in a webplayer or standalone application? Is it a local or remote SQL server? What are you trying to achieve more broadly?

For example, to talk to a remote SQL server from a webplayer (for example, to implement a high-score board), you would typically achieve this by having your webplayer use the WWW class to make GET or POST requests to server-side scripts on your webserver. The server-side scripts would then connect locally and perform functions using the values provided by the WWW request.

more ▼

answered Nov 23 '09 at 01:42 PM

duck gravatar image

duck ♦♦
45.7k 109 164 426

(comments are locked)
10|3000 characters needed characters left

There are at least 2 ways that I know of that you can accomplish this:

1) As Duck suggested, go through the WWW class. The full example for this is here:

http://www.unifycommunity.com/wiki/index.php?title=Server_Side_Highscores

more ▼

answered Nov 24 '09 at 05:09 AM

darrelcusey gravatar image

darrelcusey
22 2

(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x342

asked: Nov 23 '09 at 01:22 PM

Seen: 33648 times

Last Updated: Feb 14 '13 at 09:31 AM