日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2025年2月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28

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

» 続きを読む

2006.05.11

???とか 変な文字になるようです。
文字コードを変な解釈しているのが原因らしいので
'SET CHARACTER SET SJIS;'
を実行しておくと 正常になるらしいです。
 とりあえず 正常に insertできるようになりました。
2006.04.30

[AC97] 破壊したデータベースの修復方法
http://support.microsoft.com/default.aspx?scid=kb;ja;109953

破損した Jet 4.0 データベースの Access 2000 でのトラブルシューティングと修復の方法
http://support.microsoft.com/default.aspx?scid=kb;ja;209137

[ACC2003] Access 2002 以降の破損したデータベースをトラブルシューティングおよび修復する方法
http://support.microsoft.com/kb/283849/JA/


●定期的なバックアップをしましょう。
「最適化/修復」を選ぶとデータが
#######とかになって
 無くなる可能性がありますので
まず修復する前に、バックアップする習慣を付けましょう。

●mdbの構造をもう一度検討しましょう。
  データとフォームを一緒にして1個にしてしまうと
 こわれたとき涙ちょちょぎれものです。
 邪魔になりますが分離するほうが安心?
 データとフォームなどは別ファイルに分離して、
リンクで連結しておくと 致命傷をある程度回避できるかもしれません。

2006.03.18

Firebird2 + Delphi はじめて接続してみる(その2)
■データ操作をしてみよう
DeleteTable;

drop table
を使うと
そのあと createとかすると
エラーになる・・・
なぞ・・・
IBTable1.Close;
IBQuery1.Close;
IBQuery1.SQL.Text := 'drop table test';
IBQuery1.ExecSQL;
・IBTable1.Exists もなんか変・・・


なんだかPCが 著しく遅くなった
 (ビデオでたとえるとコマ送り状態)
firebird消去
追記
 どうやら スパムぼっとが
他のソフトと競合して妨害していることが判明
ということで
スパムぼっとに退場命令
firebird蘇生。 メラメラメラ〜
ぱかぱかぱかぱかーん
 firebirdは生き返った

» 続きを読む

2006.03.17

Firebird2 + Delphi はじめて接続してみる(その1)

まず インストール
 
うごかない!!
  いじること2時間少々やっと解明

PDFの説明書を読めばよかった。。。


要点は この3つ。
・gsec.exeで ユーザーとパスワードを設定 (※-pwからだとエラーを起こす)
・C:\Program Files\Firebird\Firebird_2_0\の*.confファイルを設定する
 aliases.conf:エイリアスの設定
 firebird.conf:データベースの場所などの制限をしたい場合
・isql.exe(Firebird ISQL Tool) で データベースを作成


では、順に説明。

デフォルトは自動起動です。

【たまにしか使わないからFirebird起動したくない場合】
起動を手動にするには
管理ツール「サービス」 でfirebirdの2個を手動に変更。
バッチファイルでも作っておくといいかも
net start "Firebird Guardian - DefaultInstance"
停止は、
net stop "Firebird Server - DefaultInstance"
net stop "Firebird Guardian - DefaultInstance"


【ユーザーの作成】
P12あたり: ユーザーとパスワードの設定
binフォルダのdos窓で gsec -user sysdba -password masterkey
または
ファイルを指定して実行で
"C:\Program Files\Firebird\Firebird_1_5\bin\gsec.exe" -user sysdba -password masterkey
"C:\Program Files\Firebird\Firebird_2_0\bin\gsec.exe" -user sysdba -password masterkey

testという名前のユーザーを作成
GSEC> add test -pw '123'


【プロンプトから データベースファイルを作成する場合】
PDF P.9あたり
SQL> CREATE DATABASE  "C:\Program Files\Firebird\DB\sample.fdb"
CON> user 'test' password '123';


設定を間違うと このようなエラーがでます
CON> user 'test' password '123';
Statement failed, SQLCODE = -902
Your user name and password are not defined. Ask your database administrator to
set up a Firebird login.


SQL> CREATE DATABASE  "C:\Program Files\Firebird\DB\sample.fdb"
CON> user 'test' password '';
Statement failed, SQLCODE = -902
Access to database "C:\PROGRAM FILES\FIREBIRD\DB\SAMPLE.FDB" is denied by server
 administrator


好みに合わせて、 コンポーネントを配置して終了。
InterBase TIBDatabase
TIBTransaction
TIBQuery
Data Access TDataSource

  付属の説明書のPDFをさっと みればすぐわかります。
 (公式サイトを巡回しても 迷路にはまるだけです)

【関連記事】

2006.03.17



PR

[PR]