データベースを使ったシステムは配布していいのか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

データベースを使ったシステムは配布していいのか?

#1

投稿記事 by dic » 5年前

オラクルのデータベースを使って(補助として)ゲームを作ったとき、
ゲーム内でデータベースを利用するゲームができたとします。
このとき、このゲームは配布していいのでしょうか?
配布できるのでしょうか?

プログラム内にデータベースの記述をして、
例えば、100フレームにテーブルの1番目の敵を出現させる
という処理を組み込んでいた時、できあがった実行ファイルを
配布してもいいのでしょうか?

また、配布するファイルをインストールする手間が増えたり
しないでしょうか?

よもやま
記事: 68
登録日時: 8年前
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#2

投稿記事 by よもやま » 5年前

dic さんが書きました:
5年前
オラクルのデータベースを使って(補助として)ゲームを作ったとき、
ゲーム内でデータベースを利用するゲームができたとします。
このとき、このゲームは配布していいのでしょうか?
配布できるのでしょうか?

データベースおよび付属ライブラリに関してですが
ライセンスが必ずといっていいほどついてきます。
ライセンスにもよりますが
データベースのエンジンおよびランタイムすべて含んだインストールは導入先の個人及び団体(会社など)で
ライセンスの購入が必要となるケースとなるでしょう。

よもやま
記事: 68
登録日時: 8年前
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#3

投稿記事 by よもやま » 5年前

よもやま さんが書きました:
5年前


データベースおよび付属ライブラリに関してですが
ライセンスが必ずといっていいほどついてきます。
ライセンスにもよりますが
データベースのエンジンおよびランタイムすべて含んだインストールは導入先の個人及び団体(会社など)で
ライセンスの購入が必要となるケースとなるでしょう。
補足です。
具体的な例として
オラクルを使ったサーバー/クライアントソフトとします。
<サーバー側>
オラクルのライセンス::必須(接続クライアント数などに対応したライセンスであること)
<クライアント側>
オラクルデータベース接続ツール群+配布プログラム
接続ツール群配布に関してはEULA、およびサーバー本体のライセンスに抵触しない限り配布可能。

よもやま
記事: 68
登録日時: 8年前
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#4

投稿記事 by よもやま » 5年前

dic さんが書きました:
5年前

プログラム内にデータベースの記述をして、
例えば、100フレームにテーブルの1番目の敵を出現させる
という処理を組み込んでいた時、できあがった実行ファイルを
配布してもいいのでしょうか?
データも含めて配布となるとオラクルデータベースよりか
SQLite、FireBirdなど別データベースも視野に入れたほうがいいかもしれません。

配布可能かについてですが使用するデータベースや付属ツールのライセンスによって
対応が変わります。
まず大きく対応が変わるのがGPLか否かですかね。
LGPL、MIT、MsPL、appacheライセンスといったライセンスだとソース公開せずとも済むかもです。

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#5

投稿記事 by dic » 5年前

>>よもやまさん
オラクルの配布はダメですね。


>データも含めて配布となるとオラクルデータベースよりか
>SQLite、FireBirdなど別データベースも視野に入れたほうがいいかもしれません。
SQLiteを試してみようかと思います。
ライセンスはpublic doman と書いてあったので、
SQLiteの説明
//=========================================================
ライセンス情報

SQLiteのライセンスは「Public Domain」です。このライセンスに従う
ことを条件として、ソースコードの改変と公開が許可されています。
//=========================================================
プログラムに組み込んで、配布してもいいですよね?(確認)

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#6

投稿記事 by dic » 5年前

SQLiteライブラリを作るんですが、難しい・・・
やっぱりあきらめます。

敵のデータをcsvで作ってなんとかします。

よもやま
記事: 68
登録日時: 8年前
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#7

投稿記事 by よもやま » 5年前

ライブラリを作る?
C(C++)、C#でSQLiteのライブラリはあったと思いますが
どういったライブラリを作ろうとしていたのでしょう・・

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#8

投稿記事 by dic » 5年前

https://sqlite.org/download.html ここのページの
Precompiled Binaries for Windows にある
sqlite-dll-win64-x64-3240000.zip をダウンロードしてきて
ソースコードから lib ファイルを作ろうとしているのですが、
マクロが再定義されていますと300個近くでて、原因がわかりません。

dll があっても libファイルがないと、作成する実行ファイルが作成できません。
リンクできません。
なので、libファイルが作れないと。

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#9

投稿記事 by dic » 5年前

https://qiita.com/akabei/items/3e719d07bdddd6fe56b8 ここを参考にしたらできました。

が、またしてもわからないことが、でてきました。

コード:

#include "sqlite3.h"
//=============================================================
void	hoge()
{
	char *fileName = "mySQLiteDB";

	sqlite3 *pDB = NULL;
}
まではできたのですが、
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー C2440 '初期化中': 'const char [11]' から 'char *' に変換できません。 DxLi b_test c:\users\user\documents\visual studio 2017\source\dxli b_test_03_sqliteの導入\dxli b_test\drawpixel.cpp 153
とでてコンパイルが通りません。
visual stdio 2017にしてからこのエラーがでてきて、解決方法がわかりません。
どうしたらコンパイルが通るのでしょうか?

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#10

投稿記事 by dic » 5年前

ちまちま書き込んですいません。

char *filename の部分はヘルプで解決しました。
const char* filename = "mySQLiteDB"; にしたらコンパイルが通りました。

で、できたのが以下のコードですが、またしても、コンパイルエラーがでました。

コード:

//=============================================================
void	hoge()
{
	const char* fileName = "mySQLiteDB";

	sqlite3 *pDB = NULL;

	// DBのオープン
	int err;
	err = sqlite3_open(fileName, &pDB);
	if (err != SQLITE_OK) {
		OutputDebugString("ERROR");
		// エラー処理
		return;
	}
	OutputDebugString("OPEN SUCCESS.\n");

	// DBのクローズ
	err = sqlite3_close(pDB);
	if (err != SQLITE_OK) {
		OutputDebugString("CLOSE ERR!\n");
		// エラー処理
		return;
	}
	OutputDebugString("CLOSE SUCCESS.\n");
}

コンパイルエラーは
識別子 sqlite3_api が定義されていません。
で、エラー行はsqlite3_openのところをさしています。
ディレクトリ設定もし、shell.c  sqlite3.c  をプロジェクトに
追加しました、が、コンパイルエラーがでます。
どこが悪いのでしょうか?

よもやま
記事: 68
登録日時: 8年前
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#11

投稿記事 by よもやま » 5年前

ん?Libファイルは作れた?
参考にしているのはnugetでの導入方法とC#でのサンプル例でコンソール用には見えなかったのですが、、
dllからlibを作る作り方は
http://seraphy.hatenablog.com/entry/20061031/p1
を参考にしましょう。
あと
エラーメッセージは省略しないでください。

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#12

投稿記事 by dic » 5年前

すいません。エラーコードはひとつとれたら、他もとれそうだったので省きました。

libファイルはできました。
やっぱり同じところで同じエラーがでます。

ソースコードは

コード:

#include "DxLib.h"
#include <vector>
using namespace std;

#include "c:\\SQLite\\\sqlite3.h"
#include "c:\\SQLite\\\sqlite3ext.h"
#pragma comment( lib, "c:\\SQLite\\SQLiteの導入.lib" )
void	hoge()
{
	const char* fileName = "mySQLiteDB";

	sqlite3 *pDB = NULL;

	// DBのオープン
	int err;
	err = sqlite3_open(fileName, &pDB);
	if (err != SQLITE_OK) {
		OutputDebugString("ERROR");
		// エラー処理
		return;
	}
	OutputDebugString("OPEN SUCCESS.\n");

	// DBのクローズ
	err = sqlite3_close(pDB);
	if (err != SQLITE_OK) {
		OutputDebugString("CLOSE ERR!\n");
		// エラー処理
		return;
	}
	OutputDebugString("CLOSE SUCCESS.\n");
}
エラー (アクティブ) E0020 識別子 "sqlite3_api" が定義されていません DxLi b_test c:\Users\DrawPixel.cpp 16
エラー C2065 'sqlite3_api': 定義されていない識別子です。 DxLi b_test c:\users\drawpixel.cpp 16
エラー C2227 '->open' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 DxLi b_test c:\users\drawpixel.cpp 16
エラー C2065 'sqlite3_api': 定義されていない識別子です。 DxLi b_test c:\users\drawpixel.cpp 25
エラー C2227 '->close' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 DxLi b_test c:\users\drawpixel.cpp 25

Math

Re: データベースを使ったシステムは配布していいのか?

#13

投稿記事 by Math » 5年前

>>>
エラー (アクティブ) E0020 識別子 "sqlite3_api" が定義されていません DxLi b_test c:\Users\DrawPixel.cpp 16
エラー C2065 'sqlite3_api': 定義されていない識別子です。 DxLi b_test c:\users\drawpixel.cpp 16
エラー C2227 '->open' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 DxLi b_test c:\users\drawpixel.cpp 16
エラー C2065 'sqlite3_api': 定義されていない識別子です。 DxLi b_test c:\users\drawpixel.cpp 25
エラー C2227 '->close' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 DxLi b_test c:\users\drawpixel.cpp 25
>>>

#9 の
c:\users\user\documents\visual studio 2017\source\dxli b_test_03_sqliteの導入\dxli b_test\drawpixel.cpp
このフォルダーはvs2017の標準的な場所ですが エラーのc:\users\drawpixel.cpp は普通ありえない場所です。
おかしいですね?。

(それに SQL データベースをゲームで使うというのもの大げさですし csv もみやぶられそうだしこのサイトで書いてあるようにバイナリー ファイルでいいのでは。---しかも補助として?---とは?)

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#14

投稿記事 by みけCAT » 5年前

Run-Time Loadable Extensions
で解説されているように、sqlite3ext.hはSQLiteの拡張ライブラリを作る時にincludeするもののようであり、
APIの呼び出しを拡張ライブラリ用に置き換えるコードが含まれているので、
普通のアプリケーションを作るには害になるようです。

コード:

#include "c:\\SQLite\\\sqlite3ext.h"
を削除してみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

dic
記事: 656
登録日時: 13年前
住所: 宮崎県
連絡を取る:

Re: データベースを使ったシステムは配布していいのか?

#15

投稿記事 by dic » 5年前

>>みけCATさん
アドバイス通り、上のソースコードでコメントアウトしたらコンパイルエラーがなくなりました。

実行もできて、
デバックウィンドウにもOPEN SUCCESS. CLOSE SUCCESS が表示されました。

>>よもやまさん、みけCATさん
土台はできました。ありがとうございました。

返信

“C言語何でも質問掲示板” へ戻る