2012-04-07 3 views
0

MSDN 포럼에서 Kevin Gadd가 시작한 Xbox 360 용 SQLite 구현을 찾았지만, 사용 된 C# -SQLite 구현 DLL입니다. API가 어떻게 작동하는지 알고 싶습니다. 원래 웹 사이트 (여기서는 http://code.google.com/p/csharp-sqlite/)에 API를 변경 한 방법이 나열되어 있지 않지만 대부분의 기본 명령 또는 적어도 몇 가지 설명/설명이 나와 있습니다. 알았어.SQLite는 xbox 360에서 작동합니까?

나는 그것을 시도했기 때문에 위의 DLL이 Xbox 360 XNA에서 작동합니다. 그 쉽게보고 내 주요 목표 있도록이 함께가는 메신저는 여기서

  1. 아마 윈도우에서 테스트 (로 2 ~ 3 개 테이블 X 박스 360에 대한 간단한 데이터베이스를 만들고 다음 있도록 컨텐츠 섹션에서 데이터베이스를 넣어 게임을 Xbox 360에 배포).
  2. 삽입 또는 업데이트를 사용하여 테스트 시나리오에서 데이터를 전송할 수 있지만 .NET의 MySQL 및 MS-SQL과 같은 SQLite 명령을 알지 못합니다.
  3. 모두에서 당신은 다른 모든 것을 무시하고 단지 3 가지 이상하지만 # 1 + # 2 (기본 SQLite는 기술을) 할 수 있다면 나는 다른 사람이 나를 도와 찾을 할 경우 가비지 컬렉션

를 수행 # 3은 사용법이 전투의 대부분이 될 것이고 나머지는 나를 도울 사람을 얻을 수 있기 때문입니다.

Im은 SQLite를 C#으로 사용하는 방법을 배우는 것에 대해 걱정이됩니다. 코드에서 프로그래밍 할 때 누군가 SQl Server와 SQLite의 차이점을 릴레이 할 수 있습니까? 걱정해야 할 것은 내 유일한 큰 질문입니다. 편집 : jsut는 1 + 2를하고 나머지는 신경 쓰지 않으려합니다.

+0

한 번에 한 가지 질문 만해야합니다. 대답하기가 훨씬 쉽습니다. – MPelletier

+0

Xbox에서 C# 및 xna와 sqlite를 사용하는 방법을 찾고 있지만 가비지 수집이 걱정됩니다. – jeffery

+0

SQL 쿼리를 알고 있지만 위의 라이브러리 링크로 SQL 쿼리를 실행하는 C# 명령을 모르겠습니다. – jeffery

답변

0

여기에 큰 문제는 응용 프로그램 폴더에 Xbox에 폴더를 쓸 수 없다는 것입니다. 저장 시스템을 사용해야합니다. 생성시 sqlite db 파일을 새 저장 파일로 복사 할 수 있습니다.

나는 오랜 시간 동안 열려있는 연결을 유지하지 않도록하고 데이터 만/직렬화 역 직렬화하는 데 사용할 것입니다. 아마도 일반적인 XML 직렬화를 사용하는 것보다 두통이 적을 것입니다. http://msdn.microsoft.com/en-us/library/system.xml.serialization.aspx 참조하십시오. 실제로 수행하려는 작업을 수행하는 것이 실제로 더 간단합니다.

맞춤 바이너리 형식은 더 작아야하지만 좀 더 복잡합니다. xml => xnb serialization을 위해 컨텐츠 직렬 변환기가 어떻게 작동하는지 살펴보십시오.

+0

는 SQL을에서 데이터베이스 파일을했다 아마도 X 박스 제외하고 누군가를 사용할 수 없기 때문에 내가 XML 직렬화를 사용해야 할 것으로 보인다 xbox에는 xml이 있고 그것에 대한 라이브러리가 있습니다. 그래도 의심. – jeffery

0

Xbox 360이 실제로 SQLite를 지원하는지 잘 모르겠습니다. 윈도우가 아닌 다른 곳에서도 XNA 게임 프로젝트를 위해 SQL을 사용한다고 생각하지 않습니다. 그들은 내장 메모리 관리와이를위한 XML 파서를 제공합니다.

SQLite 데이터베이스에 연결하는 방법은 프로젝트 참조에 SQLite DLL을 포함시켜야합니다.

그런 다음 사용 문에 다음을 추가하십시오.

using System.Data; 
using System.Data.SQLite; 
using System.IO; 

데이터베이스에 연결하고 데이터를 쿼리하고 SQL 명령을 실행하려면 다음을 사용하십시오.

SQLiteConnection sqlCon = new SQLiteConnection("Data Source=<pathtodbfile>;Version=3;New=True;Compress=False;"); 

sqlCon.Open(); 
SQLiteCommand cmd = sqlCon.CreateCommand(); 

SQLiteDataAdapter db = new SQLiteDataAdapter("<your SQL Query Here>", sqlCon); 

DataSet ds = new DataSet(); 
ds.Reset(); 

db.Fill(ds); 

그러면로드 된 데이터에 액세스 할 수 있습니다.

ds.Tables[0]; < - 데이터 세트는 많은 테이블을 저장할 수 있지만 쿼리의 경우 쿼리 된 데이터의 테이블을 첫 번째 인덱스로로드합니다. 이것이 ds.Reset()을 만든 이유입니다. 데이터 세트를 어딘가에 재사용 할 수도 있기 때문입니다.

Windows에서 C#으로 작동합니다. 모든 참조 및 사용 문을 올바르게 수행 한 경우 XNA 프로젝트에서도 작동해야합니다.

비록 이전에 말했듯이, 나는이 모든 것이 Xbox 360 기기에서 작동하는지 확신 할 수 없습니다.

+0

이 사람들은 저와 동의하는 것처럼 보입니다. SQLite 및 기타 데이터베이스 도구는 XNA 배포판의 Xbox 360에서 지원되지 않습니다. http://forums.create.msdn.com/forums/p/102116/606318.aspx –

관련 문제