ページ 1 / 1
データベースを使ったシステムは配布していいのか?
Posted: 2018年8月13日(月) 14:09
by dic
オラクルのデータベースを使って(補助として)ゲームを作ったとき、
ゲーム内でデータベースを利用するゲームができたとします。
このとき、このゲームは配布していいのでしょうか?
配布できるのでしょうか?
プログラム内にデータベースの記述をして、
例えば、100フレームにテーブルの1番目の敵を出現させる
という処理を組み込んでいた時、できあがった実行ファイルを
配布してもいいのでしょうか?
また、配布するファイルをインストールする手間が増えたり
しないでしょうか?
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月13日(月) 14:22
by よもやま
dic さんが書きました: ↑5年前
オラクルのデータベースを使って(補助として)ゲームを作ったとき、
ゲーム内でデータベースを利用するゲームができたとします。
このとき、このゲームは配布していいのでしょうか?
配布できるのでしょうか?
データベースおよび付属ライブラリに関してですが
ライセンスが必ずといっていいほどついてきます。
ライセンスにもよりますが
データベースのエンジンおよびランタイムすべて含んだインストールは導入先の個人及び団体(会社など)で
ライセンスの購入が必要となるケースとなるでしょう。
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月13日(月) 14:27
by よもやま
よもやま さんが書きました: ↑5年前
データベースおよび付属ライブラリに関してですが
ライセンスが必ずといっていいほどついてきます。
ライセンスにもよりますが
データベースのエンジンおよびランタイムすべて含んだインストールは導入先の個人及び団体(会社など)で
ライセンスの購入が必要となるケースとなるでしょう。
補足です。
具体的な例として
オラクルを使ったサーバー/クライアントソフトとします。
<サーバー側>
オラクルのライセンス::必須(接続クライアント数などに対応したライセンスであること)
<クライアント側>
オラクルデータベース接続ツール群+配布プログラム
接続ツール群配布に関してはEULA、およびサーバー本体のライセンスに抵触しない限り配布可能。
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月13日(月) 14:38
by よもやま
dic さんが書きました: ↑5年前
プログラム内にデータベースの記述をして、
例えば、100フレームにテーブルの1番目の敵を出現させる
という処理を組み込んでいた時、できあがった実行ファイルを
配布してもいいのでしょうか?
データも含めて配布となるとオラクルデータベースよりか
SQLite、FireBirdなど別データベースも視野に入れたほうがいいかもしれません。
配布可能かについてですが使用するデータベースや付属ツールのライセンスによって
対応が変わります。
まず大きく対応が変わるのがGPLか否かですかね。
LGPL、MIT、MsPL、appacheライセンスといったライセンスだとソース公開せずとも済むかもです。
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月13日(月) 16:50
by dic
>>よもやまさん
オラクルの配布はダメですね。
>データも含めて配布となるとオラクルデータベースよりか
>SQLite、FireBirdなど別データベースも視野に入れたほうがいいかもしれません。
SQLiteを試してみようかと思います。
ライセンスはpublic doman と書いてあったので、
SQLiteの説明
//=========================================================
ライセンス情報
SQLiteのライセンスは「Public Domain」です。このライセンスに従う
ことを条件として、ソースコードの改変と公開が許可されています。
//=========================================================
プログラムに組み込んで、配布してもいいですよね?(確認)
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月13日(月) 17:50
by dic
SQLiteライブラリを作るんですが、難しい・・・
やっぱりあきらめます。
敵のデータをcsvで作ってなんとかします。
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月13日(月) 19:53
by よもやま
ライブラリを作る?
C(C++)、C#でSQLiteのライブラリはあったと思いますが
どういったライブラリを作ろうとしていたのでしょう・・
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月14日(火) 18:38
by dic
https://sqlite.org/download.html ここのページの
Precompiled Binaries for Windows にある
sqlite-dll-win64-x64-3240000.zip をダウンロードしてきて
ソースコードから lib ファイルを作ろうとしているのですが、
マクロが再定義されていますと300個近くでて、原因がわかりません。
dll があっても libファイルがないと、作成する実行ファイルが作成できません。
リンクできません。
なので、libファイルが作れないと。
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月14日(火) 18:56
by dic
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にしてからこのエラーがでてきて、解決方法がわかりません。
どうしたらコンパイルが通るのでしょうか?
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月14日(火) 19:14
by dic
ちまちま書き込んですいません。
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 をプロジェクトに
追加しました、が、コンパイルエラーがでます。
どこが悪いのでしょうか?
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月15日(水) 00:46
by よもやま
ん?Libファイルは作れた?
参考にしているのはnugetでの導入方法とC#でのサンプル例でコンソール用には見えなかったのですが、、
dllからlibを作る作り方は
http://seraphy.hatenablog.com/entry/20061031/p1
を参考にしましょう。
あと
エラーメッセージは省略しないでください。
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月15日(水) 15:32
by dic
すいません。エラーコードはひとつとれたら、他もとれそうだったので省きました。
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
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月15日(水) 22:14
by Math
>>>
エラー (アクティブ) 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 もみやぶられそうだしこのサイトで書いてあるようにバイナリー ファイルでいいのでは。---しかも補助として?---とは?)
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月16日(木) 22:12
by みけCAT
Run-Time Loadable Extensions
で解説されているように、sqlite3ext.hはSQLiteの拡張ライブラリを作る時にincludeするもののようであり、
APIの呼び出しを拡張ライブラリ用に置き換えるコードが含まれているので、
普通のアプリケーションを作るには害になるようです。
コード:
#include "c:\\SQLite\\\sqlite3ext.h"
を削除してみてください。
Re: データベースを使ったシステムは配布していいのか?
Posted: 2018年8月17日(金) 15:28
by dic
>>みけCATさん
アドバイス通り、上のソースコードでコメントアウトしたらコンパイルエラーがなくなりました。
実行もできて、
デバックウィンドウにもOPEN SUCCESS. CLOSE SUCCESS が表示されました。
>>よもやまさん、みけCATさん
土台はできました。ありがとうございました。