[前][次][番号順一覧][スレッド一覧]

mysql:8079

From: つちや <つちや <kajika@xxxxxxxxxx>>
Date: Sun, 27 Jul 2003 16:54:31 +0900
Subject: [mysql 08079] GPL 関連で、ソフトを公開しようか迷ってます

はじめまして。つちやと申します。

MySQLおよびGPLが関連することで、疑問が出てまいりましたので、
ご意見をお聞かせいただければと思います。

まず、具体的な状況ですが、WSH(Windows Script Host)から、MySQLを操作する
方法の一つとして、MySQLDB.DLLを試させていただいたのですが、For文を使って
一気に全フィールド名を取得しようとすると、今ひとつ思い通りの結果が出ず
(※1)、ま、それだったら自分で作ってみるかと、GPLライセンスで公開されてい
るDirectSQL(http://sourceforge.net/projects/directsql)を使用して、Delphi
にてMySQLCOM.DLLというオートメーションサーバー(リンクして使用するDLLで
はなく、ActiveX化し、VBなどからCreateObjectして使用します)を作成してみ
ました。(ADOの操作により近づけたかったということもあります(※2))


そこで、このMySQLCOM.DLLを公開する際に、GPLライセンスに基づいて公開する
ことになるとは思いますが、関連して疑問が生じました。

(1) たとえ、MySQLのコマーシャルライセンスを取得したとしても、DirectSQLの
  ライセンスに基づき、MySQLCOM.DLLはGPLである必要があるのでしょうか。
  (もちろん、MyODBCやMySQLDBは、
   http://www.softagency.co.jp/mysql/licensing.html
  にて、GPLだとしても、MySQL本体のライセンスに準拠するわけですよね)

(2) このMySQLCOM.DLLを(静的/動的リンクではなく)CreateObjectしてオート
  メーション操作しながらMySQLを操作するVBのソフト、WSHやASPのスクリプト
  等も、GPLの影響を受けることになるのでしょうか。

(3) では、(2)のWSHスクリプトを、自分の他のアプリケーションのマクロとして
  使用する場合は、
  http://www.gnu.org/licenses/gpl-faq.ja.html#GPLPluginsInNF
  に基づき、アプリケーションそのものは、GPLの適用外にあるとみていいので
  しょうか。

の3ですが、3つとも「そうである」と思ったのですが、そういうことでよろし
いのでしょうか。


もしも、(3)がOKでないと、たとえばExcelのVBAでMySQLを操作したいとして、
VBAマクロ自体をGPLとするのはいいのですが、VBAはExcelと「お互いにファン
クションコールを使ってデータ構造を共有している場合」(上記(3)のサイトか
ら引用)と解釈できれば、ExcelそのものもGPLでなければならないなんてことに
なってしまいかねないですよね。

たとえMySQLのコマーシャルライセンスを取得したとしても、GPL公開が必要であ
り、しかも、GPLライセンスの制限によって、VBAから使うことすら許されないな
んて言われたら、(本音はGPL公開だって気が引くのに)やっぱり公開するのや
めようと思うので質問させていただいたのでした。
(実は公開するような出来ではなかったというようなオチは、まだ考えないでお
きましょう)


(注)
※1
作成したMySQLDBオブジェクトをobjCNとして接続し、SELECT文を発行した後、
For i = 0 to objCN.FieldCount-1
  S = S & objCN.FieldProperty(i+1,1) & vbTab
Next
MsgBox S
とすると、最初の2〜3のフィールド名が正しく取得できないのでした。
一つ一つの処理で、MsgBoxで処理をストップして確認すると、正しくなっている
のですが、、、

※2
作ってみたらあんまりADO似じゃなかったのですが、レコードセット取得後後こ
んなメソッドやプロパティを作ってます(一部だけ紹介します)。
  ◇Move(RecordIndex)…指定したレコードに移動します。
  ◇MoveFirst…最初のレコードに移動します。
  ◇MoveNext…次のレコードに移動します。
  ◇MoveLast…最後のレコードに移動します。
  ◇MovePrevious…前のレコードに移動します。
  ◇GetRow…現在の行のすべてのフィールド値を配列でかえします。
  ◇GetRecords…現在のレコードセットのすべての値を2次元配列でかえします。
  ◇BOF…BOFの時Trueを返します
  ◇EOF…EOFの時Trueを返します
  ◇RecordCount…取得したレコード数を返します
  ◇FieldCount…フィールド数を返します
  ◇FieldNames…全フィールド名を配列で返します
  ◇FieldName(FieldIndex)…FieldIndexで指定されたフィールド名を返します
  ◇Field(FieldName)…FieldNameで指定されたフィールドの値を返します



[前][次][番号順一覧][スレッド一覧]

->    8079 2003-07-27 16:54 [つちや <kajika@xxxxx] GPL 関連で、ソフトを公開しようか迷ってます
      8080 2003-07-28 05:56 ┗[nisi <lemo@xxxxxxxxx]                                       
      8084 2003-07-29 00:06  ┗[つちや <kajika@xxxxx]