VC-4D テーブル一覧

SQL関連のコマンドを実行することにより、テーブルの作成・削除、データの入出力を行う。データベース(ファイル)は、 案件毎に作成すると共に、共通のマスターテーブルに登録し、ダウンロードしようとするユーザーに一覧表の閲覧サービスを提供している。

(1)VC4D データベース

・masterテーブルのみを有し、案件毎のデータベースのリストを管理している
{int ID; varchar NAME;}

(2)案件毎のデータベース

案件毎のデータベースは、基本的にはデータの名称を用いたデータベースとしている。 但し、データベース名称として使用できる文字列には制約条件があり、また重複した名称ではデータベースが作成できないるため、 ユーザーがアップロードしたファイルの名称に若干加工した名称を使用している。

・coordテーブル
{int ID; float X; float Y; float Z;}
・normalテーブル
{int ID; float X; float Y; float Z;}
・colorテーブル
{int ID; float R; float G; float B; float A;}
・tcoordテーブル
{int ID; float X; float Y;}
・vertexテーブル
{int ID; int Gid; int Fid; int Sid; int Nid; int Cid; int Tid;}
・faceテーブル
{int ID; int Gid; int Fid; int Nid; int Cid; varchar Texture; varchar Material; int SHP;}
・gruppeテーブル
{int ID; varchar Attribute; varchar Texture; varchar Material;}
・link テーブル
{int ID; int Gparent; int Gchild;} 

(3)データベースを作成するSQLコマンド一覧

Q("CREATE TABLE COORD (id int IDENTITY(1,1), X float, Y float, Z float)");
Q("CREATE TABLE COLOR (id int IDENTITY(1,1), R float, G float, B float, A float)");
Q("CREATE TABLE NORMAL (id int IDENTITY(1,1), X float, Y float, Z float)");
Q("CREATE TABLE TCOORD (id int IDENTITY(1,1), X float, Y float)");
Q("CREATE TABLE VERTEX (Gid int, Fid int, Ix int, Icoord int, Inormal int, Icolor int, Itcoord int)");
Q("CREATE TABLE FACE (Gid int, Fid int, idcolor int, idnormal int, idmaterial int, idtexture int, SHP int)");
Q("CREATE TABLE GRUPPE (Gid int, idmaterial int, idtexture int, Attribute varchar(max))");
 *GROUPという名称がSQLシステムの予約語であるため、同義のドイツ語名称を用いている
Q("CREATE TABLE LINK (id int IDENTITY(1,1), GPid int, GCid int,"
"mat0 float, mat1 float, mat2 float, mat3 float,"
"mat4 float, mat5 float, mat6 float, mat7 float,"
"mat8 float, mat9 float, mat10 float, mat11 float,"
"mat12 float, mat13 float, mat14 float, mat15 float)");
註)Q()関数は、内部処理に用いているSQLコマンドをデータベースに対して発行するための関数である。
printf()関数のように、変数等を引用してSQLコマンドの文字列を生成することができる。
但し、仮想コンバータのメタファイルでこの関数を使用することはできない。