1. 表から重複データを削除する方法は?
  2. 特定のデータの検索方法は?
  3. DBMasterのアプリケーション・プログラムの開発ツールは?
  4. Delphiを使ったDBMasterへの接続方法は?
  5. Visual Basicを使ったDBMasterへの接続方法は?
  6. アプリケーション・プログラムから直接表を開く方法は?
  7. DBMasterで特定の表の存在を確認する方法は?
  8. DBMasterで以下のSQL文を実行できますか?(Informixでは可能)
      Select a.field1,b.field2
      from a outer b
      where exist (
      select c.field1,c.field2
      from c
      where a.field1=c.field1
      group by c.field3,c.field4
      )
      and a.field3=b.field3

  9. エラー・メッセージ「Invalid host element」はどのような意味ですか?
  10. データをロックしないで読む方法は?
  11. 「ダーティ・リード」とはどういう意味ですか?使用方法は?
  12. ODBCはパフォーマンスを下げますか?
  13. データベース・サーバを他のマシンに移動する際(UNIXからWindows、WindowsからUNIX)、APを修正する必要がありますか?
  14. 表を他のデータベースに移す方法は?
  15. ロック・レベルの選択にあたり考慮すべき事は?
  16. MySQLからDBMasterへのデータの転送方法は?
  17. Delphi,VB,Access等の開発ツールだけしか読むことができず、修正できない表があるのはなぜですか?
  18. "auto-commit on"設定時に、Visual FoxPro上でODBCを用いてDDLを作成する場合、エラーがが発生するのはなぜですか?
  19. SQLExecDirect()で実行できる "RUN script-file"のコマンドがありますか?
  20. DBMasterエラー・メッセージのバッファ・メモリはどれぐらいありますか?
  21. アプリケーションは、なぜ、エラー・メッセージのアクセスを重視するのですか?
  22. DBMasterをマルチユーザ環境下でロックする場合、考慮すべき点は何ですか?
  23. DBMasterのClient/Server環境下でのロックの処理方法は?
  24. APでDBMasterの表をアクセスする場合、表を開く必要がありますか?
  25. 以下のSQLはSQL Serverでは実行可能ですが、DBMasterではエラーが発生します。何故ですか?
  26. UNLOAD”コマンドを実行する方法はありますか?
  27. 他のデータベースからDBMasterへデータを移すにはどうしたらよいですか?データを移動させるソフトウェアはありますか?
  28. FileObjectとは何ですか?APはこれらファイルをどのように使用しますか?
  29. Delphi使用でDBMasterに接続しようとしたときに "Function Sequence Error"とエラーメッセージが表示されます。その場合の解決法は?
  30. バッチを使い、以下のコマンドで、テーブルを作成しようとするとエラーメッセージが上がるのはなぜですか?
    "RUN C:\SPS\SQL\SPSM001.SQL" in SQLEXEC () mode?
    DBMakerは"RUN.."ファンクションをサポートしていますか?
    (SPSM001.SQL はXXX.FD in COBOLに似ています; ファイル構造を確認する際、インデックスファイルの設定時に用いられます。)
  31. DBMakerとFoxproのテキストボックス間のデータ領域でデータ型を"date"に変えたい場合、この領域にDTOC()を加えることとデータ型変更後に処理をすることは可能ですか?
  32. 主キーを構成する2つの領域をどうやって比較しますか。
  33. ODBCソースデータのインストール方法は?
 
 

1. 表から重複データを削除する方法は?

 
    student表、students(id char(5),name char(20))を想定し、この表から重複するデータを削除する場合、
1.表'temptable'に重複idを移動します。
  dmSQL> select id
      2> from student
      3> group by id having count(*)1
      4> into temptable;
2.全ての重複するidデータを削除します。
  dmSQL> delete from student
      2> where id in (
      3> select id from temptable
      4> );
注 :
1. id=3008のレコードが2つある場合、これらのレコードは削除されます。
2. 実行時間を短縮するために、idとnameカラムに索引を設けることができます。
 
 

2. 特定のデータの検索方法は?

 
    ※例えばクラスで成績が前から30%に入る学生を検索する方法
下記のSQL文で、学生の成績表、student(name char(10),score int)から、クラスで成績がトップ30%に入る学生を見つけることができます。

 dmSQL> create temp table tt1 (    
     2> c1 serial(1),
     3> name char(10),
      4> score int
      5> );
  dmSQL> select *
      2> from student
      3> group by score, name
      4> into tt1 (name,score);
  dmSQL> select name,score
      2> from tt1
      3> where c1 (
      4> select count(c1)*0.7
      5> from tt1
      6> )
      7> order by score desc;

注 : これらのコマンドを実行する度に、temp table tt1を再作成する必要があります。
 
 

3. DBMasterのアプリケーション・プログラムの開発ツールは?

 
    ODBCを使用している開発ツールは、全てDBMasterのアプリケーションを開発するために使うことができます。例えば、UNIXプラットフォーム上のCや、Windows、Visual Basic、delphi、Access、Visual C++、Borland C++、Visual FoxPro、PowerBuilder等です。
 
 

4. Delphiを使ったDBMasterへの接続方法は?

 
    DBMasterパッケージのDelphi サンプル・プログラムのためのREADME.TXT ファイルを参照してください。DBMasterをインストールしたC:\dbmaster の中のC:\dbmaster\Samples\Delphi にあります。
 
 

5. Visual Basicを使ったDBMasterへの接続方法は?

 
    DBMasterパッケージのVBサンプル・プログラムのためのREADME.TXT ファイルを参照してください。DBMasterをインストールしたC:\dbmaster の中のC:\dbmaster\Samples\VBにあります。
 
 

6. アプリケーション・プログラムから直接表を開く方法は?

 
    アプリケーション・プログラムがDBMasterのデータベースに接続しているときに、SQLコマンドを実行してデータベースに問い合わせることができます。表を開く必要はありません。
 
 

7. DBMasterで特定の表の存在を確認する方法は?

 
    ODBCの機能で、SQLExecute()を使ってselect * from tableを実行し、その表が存在しない時、SQLExecute() は-1.に戻ります。同時に、SQLError()を実行することによって、エラー(6521)「表又はビューが存在しません」が表示されます。
 
 

8. DBMasterで以下のSQL文を実行できますか?(Informixでは可能)

 
      Select a.field1,b.field2
  from a outer b
  where exist (
  select c.field1,c.field2
  from c
  where a.field1=c.field1
  group by c.field3,c.field4
  )
  and a.field3=b.field3

このSQL文は、DBMasterでは構文エラーとなります。DBMasterは、existの替わりにexistsを使用しています。existをexistsに置き換えて、SQL文を実行するとエラー「エラー:集計しないカラムは必ずGROUP BY リストの中にいなければなりません」が戻されます。

問題は、副問合せです。:
  select c.field1,c.field2 from c where.... group by c.field3,c.field4.

このselect文は、group by groupを実行しますが、プロジェクト・カラムはgroup by columnでは無く、またプロジェクト・カラムは、まとめることができません。この構文は混乱しやすいので、以下のコマンドを使うと正確にSQL文を実行することができます。

 dmSQL> select a.field1,b.field2
      2> from a outer b
      3> where exists (
      4> select c.field3,c.field4
      5> from c
      6> where a.field1=c.field1
      7> group by c.field3,c.field4
      8> )
      9> and a.field3=b.field3

 
 

9. エラー・メッセージ「Invalid host element」はどのような意味ですか?

 
    エラー・メッセージ「無効なホスト要素」は、次のような際に表示されます。

1. where句にbind NULL valueがある。
2. where句にbind longvarcharがある。
3. データ型が合致していない。
 
 

10. データをロックしないで読む方法は?

 
    一般的には、select文のSHARE lock(共有ロック)でデータをロックします。データをロックしたくない場合は、SELECT ... FOR BROWSE文を使用します。これはロックを実行しません。これをダーティ・リードやブラウズ読みと呼びます。
 
 

11. 「ダーティ・リード」とはどういう意味ですか?使用方法は?

 
    DBMasterのロック技術によって、同時に複数のユーザがデータベースにアクセスできます。表やページ、レコードといったリソースをユーザが使用している時に、そのユーザがinsertを実行すると、他のユーザを締出し、そのリソースでは何もできなくなります。ユーザにリソース内での操作を実行させないよう制限する時、「ダーティ・リード」と呼びます。「ダーティ・リード」のコマンド構文は、読み込み専用のselect文です。

オンライン・データ検索で「ダーティ・リード」を使えば、select操作でデータが参照される際により効果があります。 各操作の際にデータがロックされた状態にならないようにします。
 
 

12. ODBCはパフォーマンスを下げますか?

 
    ODBCはAPIの定義にすぎません。ODBC APIの効果を判断するのは無意味なことです。パフォーマンスの実際の効果は、ODBC ドライバを実行する時に発揮するのであって、ODBC APIの定義ではありません。ODBCのパフォーマンスを話題にする時、ODBCドライバの製品パフォーマンスの良し悪しを問題にするべきでしょう。
 
 

13. データベース・サーバを他のマシンに移動する際(UNIXからWindows、 WindowsからUNIX)、APを修正する必要がありますか?

 
    修正の必要はありません。AP側の環境設定(dmconfig.ini)にあるキーワードDB_SvAdr を変更するだけです。ユーザは、新しいデータベース・サーバーに接続するためにDB_SvAdrを新しいIPアドレスに変更するだけです。
 
 

14. 表を他のデータベースに移す方法は?

 
    dmSQL文のLOADとUNLOADを使うことができます。

UNLOAD文は、表と表のスキーマから外部ファイルへデータをダウンロードします。 この外部ファイルはスクリプト・ファイルで、表スキーマ、索引の作成、新規データ挿入のためのdmSQL文が含まれています。このファイルは、LOAD文を使って表をアップロードする時に使われます。

表で使えるUNLOAD文は2種類あります。
1. UNLOAD TABLE文。 この文はデータをダウンロードするだけでなく、表を作成するためのコマンドをファイルに記録します。
2. UNLOAD DATA文。このコマンドはデータをダウンロードするのみです。

下記の例は、dmSQLを使って表tb1をデータベースdb1からデータベースdb2に移動する方法を示しています。
例1:
  dmSQL> connect to db1 SYSADM;
  dmSQL> unload table from tb1 to 'j:\database\tb1';
  dmSQL> disconnect db1 ;
  dmSQL> connect to db2 SYSADM;
  dmSQL> load table from 'j:\database\tb1';

データベース全体をunloadする場合は、下記のコマンドを入力して下さい。
例2 :
  dmSQL> connect to database-name SYSADM;
  dmSQL> unload db to new-database-name ;
 
 

15. ロック・レベルの選択にあたり考慮すべき事は?

 
    ロック・レベルの選択は、同時実行性とリソースの問題です。高いロック・レベルを使用すると、データ同時実行性が低くなりますが、共有メモリのようなシステム・リソースの使用が少なくなります。
ロック・レベルの選択の最善の方法は、ユーザのニーズを見極めることです。
 
 

16. MySQLからDBMaster へのデータの転送方法は?

 


  いくつかの方法があります。最も簡単な方法は、MySQLからDBMasterのスクリプト・ファイルにエクスポート・ファイルをコンバートすることです。

1. エクスポート・ツールmysqldumpを使って、データをMySQLデータベースから出力ファイルにエクスポートします。mysqldump を使う際は、特別なオプションを付けないようにして下さい。例えば、testという名前のMySQLデータベースから出力ファイル'test-out.txt'にデータをエクスポートする場合は、次のコマンドを入力して下さい。
$> mysqldump test > test-out.txt;

2. 次の文を入力して、test-out.txtにあるコメント・シンボル#を//に変更して、dbmaster.txtという名前のファイルにその出力を入れます。
$> sed -e 's/#/\/\//g' test-out.txt > dbmaster.txt;

3. データ型のマッピングと異なる構文のために出力ファイルを修正します。MySQLからDBMasterにデータ型をマップする方法は、以下の説明を参照して下さい。

データ型のマッピング
MySQLのデータ型によっては、DBMasterに全く同じマッピング・タイプが存在しません。以下のリストに最も相似していると思われる種類を紹介します。

 
    MySQLのデータ型            
TINYINT                  
SMALLINT                
MEDIUMINT               
INT                     
INTEGER                 
BIGINT                  
FLOAT(4)                
FLOAT(8)                 
FLOAT                 
DOUBLE                 
DOUBLE PRECISION         
REAL                   
DECIMAL(p,s)              
NUMERIC(p,s)
DATE
DATETIME
TIMESTAMP
TIME
YEAR
CHAR(n)
VARCAHR(n)
TINYBLOB
TINYTEXT
BLOB
TEXT
MEDIUMBLOB
MEDIUMTEXT
LONGBLOB
LONGTEXT
ENUM
SET

DBMasterのデータ型
SMALLINT
SMALLINT                
INT,INTEGER
IINT
INTEGER
N/A
FLOAT
DOUBLE
FLOAT
DOUBLE
DOUBLE
DOUBLE
DECIMAL(p,s) (*a)
DECIMAL(p,s)
DATE
TIMESTAMP
TIMESTAMP
TIME
SMALLINT
CHAR(n)
VARCAHR(n)
VARCHAR(255)
VARCHAR(255)
LONG VARCHAR
LONG VARCHAR
LONG VARCHAR
LONG VARCHAR
N/A (*b)
N/A (*b)
N/A
N/A

 
   

追記
1. 10進法を除く全ての数字は、mysqldump出力ファイルをDBMasterにコンバートする際、表示サイズ引数を取り除く必要があります。
2. DBMasterのLONG VARCAHRとLONG VARBINARYの最大長は、2^31-1です。又、長さが上限を超えない限り、LONGBLOB、LONGTEXTカラムをLONG VARCAHRかLONG VARBINARYにマップすることもできます。
.3. DBMasterのデータ型についての詳しい説明は、マニュアルをご参照下さい。

異なる構文
1. 数値リストの複数の値
DBMaster又はその他一般的なDBMSでも有効な構文ではありません。mysqldumpで、このオプション(extended insert)を使わないことをお勧めします。

2. 特殊文字
MySQLでは、insert valueリストにある(')や(\)のような特殊文字は、(\)を使って定義する必要があります。DBMasterでは、同じ文字繰り返して(') を定義します。例えば、もし表t1に(') に入れたい場合、このようにコマンドを入力して下さい。
  insert into t1 valuea ('''');
(\)に関しては、DBMasterではINSERT valueリストにある'a' のような普通の文字として扱われます。

結局、dbmaster.txtの異なる構文は変更されます。出力ファイルdbmaster.txtは、DBMaster インタラクティブ・ツール'dmsqlc' (クライアント・バージョン)、もしくは'dmsqls' (シングルユーザバージョン)で認証できます。DBMasterのデータベースにデータを挿入するためにスクリプト・ファイルを実行するための、'run dbmake.txt'のコマンドを入力して下さい。

 
 

17. Delphi,VB,Access等の開発ツールだけしか読むことができず、修正できない表があるのはなぜですか

 
    それは、unique indexが作成されていないためです。開発ツールをデータベースに接続する時、表の修正をする場合、表にunique indexを作成する必要があります。そうしなければ、開発ツールはこの表をread onlyとみなし、修正することができません。この制限は、開発ツールにもともとある制限であり、DBMasterには、このような制限はありません。従って、indexを作成しなくても、 DBMaster dmSQL やDBATool等のツールを通じて、直接、表を修正できます。
 
 

18. "auto-commit on"設定時に、Visual FoxPro上でODBCを用いてDDLを作成する場合、エラーがが発生するのはなぜですか?

 
   

Vsual FoxProのシーケンス機能はDBMasterのものと異なります。
VFPでDDLを作成する際にシーケンス機能を使うという展で異なり、("SQLNUMAoRes"といったような機能は使われない)、"auto-commit on"の状態に設定されているような場合にエラーが発生します。
環境設定ファイルに"DB_AtCmt=0"と書き込むとこの問題は解決されます。

例:
HANDLE = SQLCONNECT('DM20LOCAL','SYSADM')
HANDLE STATUS = SQLEXEC(HANDLE,"SELECT * FROM t1")
STATUS browse STATUS = SQLEXEC
(HANDLE,"Create table T1 (c1 integer)")
STATUS --> if "auto-commit on", STATUS=-1,
if "auto-commit" off, STATUS=1
STATUS = SQLEXEC(HANDLE, "commit work") STATUS

 
 

19. SQLExecDirect()で実行できる "RUN script-file"のコマンドがありますか?

 
    ありません。RUNコマンドは、DMSQLツールだけで使用できます。 標準のSQL記述文ではありません。
 
 

20. DBMasterエラー・メッセージのバッファ・メモリはどれぐらいありますか?

 
    DBMaster Error Messageの処理は、ODBC のSQLError()を参照して下さい。DBMasterは 標準ODBCのAPIとその制約に対応しています。ですから、DBMasterはhenvと関連するhdbcs とhstmtsで64個のエラーを記録することができます。 現在、DBMasterの最長のエラーメッセージの長さは、512バイトです。従って、SQLErrorでエラーメッセージをアクセスすればchar[512]は、完全な形でエラー・メッセージを見られます。

一般的に一つのSQLコマンドに対して一つの エラー・メッセージしか存在しません。ですから、もし、2回連続して call SQLError()を行うと2回目に得られるSQL_NO_DATA_FOUNDは、『アクセスできるエラーメッセージはありません』と表示します。'check db' , 'check tablespace', 'check index' 等の database consistency checking(DBCC)コマンドを実行する場合、最高64個の エラーメッセージにアクセスできます。
 
 

21. アプリケーションは、なぜ、エラー・メッセージのアクセスを重視するのですか?

 
    エラーメッセージの処理は、全てのシステム設計にとって非常に重要です。アプリケーションがデータベース・システムのエラーメッセージを無視することは大変危険なことです。DBMasterはリソースの使用の合法性を判断しますが、状況によっては判断しかねます。例えば、アプリケーションが不正確な処理メモリ・アドレスを得た場合、DBMasterは必ずしも判断できるとは限らないからです。
 
 

22. DBMasterをマルチ・ユーザ環境下でロックする場合、考慮すべき点は何ですか?

 
    ロックする場合、次の2点について考慮しなければなりません。: データロック(data lock)と索引ロック(index lock)です。 現在、DBMasterはデータをロックするために表ロック(table lock), ページロック(page lock)及び行ロック(row lock)を提供しています。 索引ロックは、ページ・ロックに固定されています。

lock time outの発生の原因は、実行したコマンドがすでにロックしたデータにアクセスしたからです。もし、索引のロックの発生を防ぎたいのなら、適度にindex fill factorを調整し、アプリケーションのトランザクション(transaction)の設計に合わせて処理して下さい。

ロックは、S(share)ロックとX(exclusive)ロックに分かれており、読み取るデータをSロックに指定します。複数のSロックを並存できますが、Xロックは、Sロックを受け入れません。修正するデータをXロックに指定します。ダーティ・リードする以外は、他のユーザは、データを修正することができません。
DML (data manipulation language)操作のロック規定に関する簡単な説明は、次のとおりです。:

1. オン・ラインで検索したデータは、同時処理能力(concurrency control)の効率を向上させるために select操作時にdata lockingのエラーを防ぐためにもダーティ・リードをできるだけ使用して下さい。

2. data lockの考慮以外に、index lockを考慮すべきです。
現在、DBMasterは page lock ためのindex granularityだけをサポートしています。データは、Lock Mode ROWに設定できますが、index pageはロックされ、lock time outになるでしょう。この部分は、index fill factorの調整をし、AP transactionの設計処理に合わせる必要があります。

(1) INSERT操作に関しては、insert keyのindex pageがロックされていない限りDBMasterはロックされていないdata pageを探し、データを管理することができます。

(2) UPDATE操作をする場合、lock mode rowに設定すれば、異なるAPでも異なるrecordを更新できます。なぜなら、index lockはS(share) lockなので、index keyを更新しない限り問題ありません。

(3) DELETE 操作 をする場合、ロックされていないdeleted keyのindex pageを削除する必要があります。ロックされてないdeleted rowだけが削除できます。

3. UPDATEを行う場合に、index key値を更新しない場合は、table lock modeによりデータのカラムまたはページに対するロックだけを修正できます。Index pageに対してSロックができ、即ち異なるユーザーでも同時に異なるデータを修正できます。しかし、index key値が修正された場合、Index pageに対してX lockをし、key値に近いデータの修正は行えません。
 
 

23. DBMasterのClient/Server環境下でのロックの処理方法は?

 
    1. オン・ラインで検索したデータは、同時処理能力の効率を向上させるために select操作時にdata lockingのエラーを防ぐためにもダーティ・リードをできるだけ使用して下さい。

2. data lockの考慮以外に、index lockを考慮すべきです。

現在、DBMasterは page lockためのindex granularityだけをサポートしています。データは、Lock Mode ROWに設定できますが、index pageはロックされ、lock time outになるでしょう。この部分は、index fill factorの調整をし、AP transactionの設計処理に合わせる必要があります。

(1) INSERT 操作に関しては、insert keyのindex pageは、ロックされていないなら、 DBMasterはロックされていないdata pageを探し、データを管理することができます。

(2) UPDATE操作 をする場合、lock mode rowに設定すれば、異なるAPでも異なるrecordを更新できます。なぜなら、index lockはS(share) lockなので、index keyを更新しない限り問題ありません。

(3) DELETE 操作 をする場合、ロックされていないdeleted keyのindex pageを削除する必要があります。ロックされてないdeleted rowだけが削除できます。

3. UPDATE 操作(set autocommit off)を実行する時、もし、一件のrecordを更新後、(commit work実行以前に), そのrecordが所属するindex page がS(share) Lockに設定され、その recordは X(exclusive) Lockに設定されますので、その record と同じindex pageデータの INSERT, DELETEの操作、SELECTでそのrecordを検索するSELECT operationを行えません。ですから、このデータは、ダーティ・リードで読みこんでください。

4. Locking とerror messageの処理はメモリを消費します。システムがDBMasterに与えるスペースが足りない時、DBMasterは次のようなエラー・メッセージを表示します。『'allocated system resource is insufficient'. DB_NBUFS and DB_NJNLB are the number of data pages and journal pages cached in shared memory,』この二つのパラメーターは、システムのパフォーマンスに影響を与えます。ですから、処理するデータ量に合わせて調整する必要があります。ただし、DB_SCASZ は、システム・コントロール・バッファ、記録制御情報などのロック情報やトランザクション情報を定義します。同時にデータベースに接続するユーザ数(concurrent user)が増加したもしくはtransactionが比較的長いlock granularity比較的細い時、 SCAの適当な配置を考慮すべきです。

5. 現在、DBMasterのa connection handleは、48個のstatement handleしか提供できません。 過多なhandlesの処理は、データベースが負担できないので、AP設計時には、この点を十分注意しなければなりません。.
 
 

24. APでDBMasterの表をアクセスする場合、表を開く必要がありますか?

 
    必要ありません。APが一旦DBMaster databaseに接続した後、直接SQL commandを実行してデータを検索できます。PC上でデータ読むために表を開けるのは、Xbaseデータベースの方法です。
 
 

25. 以下のSQLはSQL Serverでは実行可能ですが、DBMasterではエラーが発生します。何故ですか?

 
 

  SELECT top 1(SELECT MAX(TRK_FILENAME)FROM MTSMTRK),*
  FROM MTSMTRK;

1. DBMasterは射影カラムにおけるサブクエリをサポートしておりません。代わりにJOINをご使用ください。
2. DBMasterはLimit[offset]をサポートしますが、TOPはサポートしておりません。

  SELECT * FROM(SELECT MAX(TRK_FILENAME)FROM MTSMTRK)a,
  MTSMTRK limit 1;


26. UNLOAD”コマンドを実行する方法はありますか?

  DOSモードではバッチファイルおよびスクリプトファイルを作成する必要があります。
  -UNLOADスクリプト(unload.txt)
   connect to dbsample4 sysadm;
    unload db to dbsample4;
    quit;

  -バッチファイル(unload.bat)
    dmsql32 c:\unload.txt  

27. 他のデータベースからDBMasterへデータを移すにはどうしたらよいですか?
データを移動させるソフトウェアはありますか?

  データベースがODBCをサポートしているのであれば、ODBCインターフェースとデータ・インポート/エクスポート機能を備えているユーティリティを使用することができます。

include: the Delphi Data Migration Wizard utility,
the Access Import/Export function and the SQL Server MS Query tool.
以上は他のデータベースからDBMasterへデータを移動させることができます。

28. FileObjectとは何ですか?APはこれらファイルをどのように使用しますか?

  DBMaster内のファイルオブジェクトはBLOB型です。Long VercharとLong VarBinaryとの違いはファイルオブジェクトの名前がデータベースに入っているということだけです。この状態はデータベース内のスペースを減らし、データベースはファイルオブジェクトへのリンクを作成します。ユーザはファイルオブジェクトを開く必要はありません。ユーザはファイルオブジェクトにダイレクトに接続することができます。

29. Delphi使用でDBMasterに接続しようとしたときに "Function Sequence Error"とエラーメッセージが表示されます。その場合の解決法は?

  環境設定ファイルに " DB_CBMOD = 2 "を加えてください。

30. バッチを使い、以下のコマンドで、テーブルを作成しようとするとエラーメッセージが上がるのはなぜですか?
"RUN C:\SPS\SQL\SPSM001.SQL" in SQLEXEC () mode?
DBMakerは"RUN.."ファンクションをサポートしていますか?
(SPSM001.SQL はXXX.FD in COBOLに似ています; ファイル構造を確認する際、インデックスファイルの設定時に用いられます。)


  DBMakerのODBC機能ではSQLバッチファイルを直接使うことができません。スキーマファイルを作成するだけならば 双方向性のSQLツール・DBMasterのdmSQLツールを使用することによってSQLスクリプトファイルを使用することができます。
アプリケーションをクライアントサイトにインストールする際にはローカルデータベースを作成してください。

31. DBMakerとFoxproのテキストボックス間のデータ領域でデータ型を"date"に変えたい場合、この領域にDTOC()を加えることとデータ型変更後に処理をすることは可能ですか?

  可能です。"char"型で保存し、自動変換アプリケーションを使用してください。

32. 主キーを構成する2つの領域をどうやって比較しますか。

  例:ケース番号(年+シリアル番号)に基づいたクエリは主キーです。
キーのイニシャルが085 - 090000 と設定されていて、テーブル内でケース番号が
(year>85)あるいは(year = 85 and number > 90000)の値より大きいものがリストされます。

33. ODBCソースデータのインストール方法は?

  DBMasterインストール後にサンプルデータベースを使用することによってODBCソースデータのインストールの練習をすることができます。
まず、サンプルデータベース(DBMEMO)のチェックをする必要があります。
(DBMEMO)は以下のディレクトリに存在します。

\DBMAKER\SAMPLE\DATA
続けて、

1.環境設定ファイルを開き
[DBDEMO] DB_DbDir = \SAMPLE\DATA と書き込みます。


2.コントロールパネルからODBCをクリックします。(ODBCが見つからない場合はOBDC DBMasterドライバを再インストールする。以下のディレクトリにあります。DBMaker CD: \CLIENTS\WINDOWS\ODBC.)
ソースデータが表示されたら、DBDEMOのソースデータを選択、DBMaster ODBCのセットアップウィンドウに以下のメッセージが表示されます。


data source name:DBDEMO data directory:\SAMPLE\DATA

 

FAQ TOP / 入門編 / システム管理編 / データベース設計編 / 注意事項・周知事項
Copyright (c) 2002 DBMaker Japan Inc. All rights reserved.