Unity에서 PostgreSQL 사용

환경



Unity 2017.1
Windows10
PostgreSQL 9.6.3
.Net 4.6

전제



PostgreSQL은 이미 설치되어 있으며 데이터베이스와 그 내용도 이미 있습니다.

할 일



1, htps : // 기주 b. 이 m / n pgsql / n pgsql / repease s에서 지원 버전의 msi 다운로드



어떤 버전이 무엇을 지원하는지 지금은 모르겠습니다.

2, msi를 실행하고 압축을 풀고 "Npgsql.dll"을 Assets 이하의 어딘가에 넣습니다.



h tps://sym 포 균열. bぉg. FC2. 소 m/bぉg-엔트리-2386. html
↑아래 이쪽의 기사로부터 발췌
가져온 msi 실행
Npgsql GAC Installation을 체크하여 설치.
그러면

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Npgsql\(버전 폴더)\

주변에 Npgsql.dll이 가능

3, UnityEditor의 dll 파일이 놓여있는 곳에서 "System.Data.dll"을 복사하여 대상 프로젝트의 Assets 이하의 어딘가에 넣습니다.



2017 이후라면,
"Unity 다운로드 대상\Editor\Data\Mono\lib\mono\2.0"
에 있다. Editor 폴더에 UnityEditor 실행 파일이 있으므로 바로 가기에서 추적해도 좋다.

UnityHub라면 Hub의 메인 화면에서 "설치 → 대상 버전의 메뉴 바 → 탐색기에서 열기"에서 다운로드 대상 폴더로 날 수있다

이상으로 환경 구축이 완료



여기까지 대상 프로젝트가 이런 느낌이 든다면 OK



코드


using UnityEngine;
using Npgsql;

public class SQLExample: MonoBehaviour
{
    void Start()
    {
        //ここを実行環境に合わせて変える
        string connectionString =
          "Server=ServerName;" +
          "Database=DBName;" +
          "User ID=Id;" +
          "Password=Pass;";

        using (var dbcon = new NpgsqlConnection(connectionString))
        {

            dbcon.Open();
            NpgsqlCommand dbcmd = dbcon.CreateCommand();
            // ここら辺を欲しい内容に合わせて変える
            string sql =
          "SELECT *" +
          "FROM user_list";
            dbcmd.CommandText = sql;
            NpgsqlDataReader reader = dbcmd.ExecuteReader();
            while (reader.Read())
            {
                // ここら辺を欲しい内容に合わせて変える
                string FirstName = (string)reader["first_name"];
                string LastName = (string)reader["last_name"];
                Debug.Log(FirstName + " " + LastName);
            }
            // clean up
            reader.Close();
            reader = null;
            dbcmd.Dispose();
            dbcmd = null;
            dbcon.Close();
        }

    }
}


코드는 테스트 코드를 복사하므로 적절합니다.
using이 중복인가…?
재생 버튼을 누르면 쿼리가 실행됩니다.

Unity에서 MySQL 대신 PostgreSQL을 사용하고 싶었습니다.



MySQL이라면 기사가 많이 있었지만 PostgreSQL에서는 일체 Unity에 관한 기사를 찾을 수 없다
하지만 PostgreSQL에서 과거에 만든 DB가 있었고, 아무래도 거기를 사용할 필요가 있었다.
실제로 하는 일은 그리 많지 않지만 2시간 이상 조사하는데 걸렸기 때문에 힘들었다

오래된 사양



1, htp // pg 흠 응 dry. rg/frs/? g 납 p_i d=1000140



URL의 링크가 끊어져 스포츠 체육관의 사이트로 날아가기 때문에 고치겠습니다.
기본적으로는 최신판 중, 자신의 환경에 있던 것을 가져온다. 이번은 .Net4.6이었으므로, 「○○-net40.zip」을 사용했다. 아마 「○○-net45.zip」에서도 움직인다

2,zip중의 「Npgsql.dll」를 대상의 프로젝트의 Assets 이하의 어딘가에 넣는다

좋은 웹페이지 즐겨찾기