4D v16

CREATE DATABASE

ホーム

 
4D v16
CREATE DATABASE

CREATE DATABASE  


 

 

CREATE DATABASE [IF NOT EXISTS] DATAFILE <Complete pathname>

説明  

CREATE DATABASEコマンドを使用して新しいエクスターナルデータベース (.4dbと.4dd ファイル) を指定した場所に作成できます。

IF NOT EXISTS制約が渡されていると、指定した場所に同じ名前のデータベースが存在すれば、データベースは作成されずエラーも生成されません。
IF NOT EXISTS制約が渡されていない場合、指定した場所に同じ名前のデータベースが既に存在すれば、データベースは作成されず、"データベースは既に存在します。CREATE DATABASEコマンドの実行に失敗しました。"エラーメッセージが表示されます。

DATAFILE句に新しいエクスターナルデータベースの完全名 (完全パス名 + 名前) を指定します。ストラクチャファイルの名前を渡さなければなりません。プログラムは (指定されていなければ) 自動で".4db"拡張子をファイルに追加し、データファイルを作成します。パス名はPOSIXシンタックスあるいはシステムシンタックスで指定します。また絶対、あるいはメインの4Dデータベースのストラクチャファイルからの相対で指定できます。

  • POSIXシンタックス (URL型): 使用するプラットフォームに関係なく、フォルダ名はスラッシュ ("/") で区切られます。例えば: ".../extdatabases/myDB.4db"
    絶対パスの場合、先頭はボリューム名とコロンを渡します。例えば: "C:/test/extdatabases/myDB.4db"
  • システムシンタックス: 現在のプラットフォームに基づくシンタックスのパス名。例えば:
    • (Mac OS) HD:Applications:myserv:extdatabases:myDB.4db
    • (Windows) C:\Applications\myserv\extdatabases\myDB.4db

CREATE DATABASEコマンドの実行に成功しても、作成された新しいデータベースは自動ではカレントデータベースにはなりません。これを行うには、新しいUSE DATABASEコマンドを使用して明示的にカレントデータベースとして宣言しなければなりません。

エクスターナルデータベースとはメインの4Dデータベースから独立していますが、メインのデータベースから使用できる4Dデータベースです。エクスターナルデータベースの利用は、このデータベースを一時的にカレントデータベース、言い換えれば4Dにより実行されるSQLクエリのターゲットデータベースとして指定することを意味します。デフォルトでメインデータベースがカレントデータベースです。

エクスターナルデータベースはCREATE DATABASEを使用してメインデータベースから直接作成できます。エクスターナルデータベースを作成したら、それをUSE DATABASEコマンドを使用してカレントデータベースとして指定できます。そして標準のSQLコマンド (CREATE TABLEALTER TABLE等) でストラクチャを変更し、データを格納できます。DATABASE_PATH関数を使用していつでもカレントデータベースを知ることができます。
エクスターナルデータベースの主たる関心は、4Dコンポーネントから作成および処理が可能であるということです。この機能により、必要に応じてテーブルやフィールドを作成するコンポーネントが開発できるようになります。

注: エクスターナルデータベースは標準の4Dデータベースです。4Dや4D Serverアプリケーションでそれをメインデータベースとして開き、操作することができます。逆に、標準の4Dデータベースをエクスターナルデータベースとして使用することができます。しかしエクスターナルデータベースに (Designerパスワードを設定することで) アクセス管理システムを有効化することはできません。有効にすると、USE DATABASEを使用してアクセスすることができなくなってしまいます。

C:/MyDatabase/にエクスターナルデータベースExternalDB.4DBとExternalDB.4DDを作成する:

 Begin SQL
    CREATE DATABASE IF NOT EXISTS DATAFILE 'C:/MyDatabase/ExternalDB';
 End SQL

メインデータベースのストラクチャファイルと同階層にエクスターナルデータベースTestDB.4DBとTestDB.4DDを作成する:

 Begin SQL
    CREATE DATABASE IF NOT EXISTS DATAFILE 'TestDB';
 End SQL

ユーザが指定した場所にエクスターナルデータベースExternal.4DBとExternal.4DDを作成する:

 C_TEXT($path)
 $path:=Select folder("Destination folder of external database:")
 $path:=$path+"External"
 Begin SQL
    CREATE DATABASE DATAFILE <<$path>>;
 End SQL



参照 

DATABASE_PATH
USE DATABASE

 
プロパティ 

プロダクト: 4D
テーマ: SQLコマンド

 
履歴 

 
ARTICLE USAGE

SQLリファレンス ( 4D v16)