Delphi database メモQuery編1
TQuery
実行時に SQL 文を実行するには Open または ExecSQL のメソッドを使います。
TIBQuery
Prepare 実行前の最適化のため,サーバーに問い合わせを送信します。
ExecSQL 問い合わせを実行する SQL 文を実行します。
TIBSQL
Open データセットが開いているかどうかを指定します。
Prepare 実行前の最適化のため,サーバーに問い合わせを送信します。
ExecSQL 問い合わせを実行する SQL 文を実行します。
Win95で動かしたくなったので既存アプリ実行すると
インデックスが古いですとエラー
 ・・・ よくわからないエラーに遭遇・・
動くはずなんだけど・・・ データベースエンジンのバーションが違うせいかな・・・
ということで、BDEを切り離したくなったので
バージョンを固定しようと思ったので
お手軽な Firebird embededを使ってみることに決定。
あれ?
TQueryからの移行でTIBSQLに書き換えて
openで動作しないから 文をいれろとか変なエラーがでるし
強引に実行したら あれれ 結果が返らない ・・・
と悩むこと実行を繰り返し10数分・・・
ヘルプと見てみる。
(゚ロ゚)・・・ 「し・よ・う」 が 「ち・が・う」!!
open;

Prepare();
ExecQuery;
で解決
TIBQuery は InterBase SQL 文を実行します。
TIBSQL は,最小限のオーバーヘッドで InterBase の SQL 文を実行するオブジェクトを提供します。
まぁ、 いいとして、 うーん・・・
どっちにしようかなぁ・・・・・
デバッグが大変だ・・・
Autoincがないからつらいなぁ・・・
みつからないからselectでmax+1にでもしようかと思いましたが
そのへんは、IBOConsole から SQLを放り込んで解決
(これ探すのに1時間かかりました(;_;) )
CREATE GENERATOR "名前_GEN";
CREATE TRIGGER "TRIG_test_Autoinc" FOR "test"
ACTIVE BEFORE INSERT POSITION 0
as
/* code here */
begin
NEW."index" = GEN_ID("test_index_GEN", 1);
end

» 続きを読む