著者:ガオ・スメイ
データ エンジン (BDE、SQL リンク) を構成する簡単な方法
データベースプログラムを配布する場合、データエンジン(BDE、SQL Link)を搭載する必要があり、プログラムをクライアントにインストールした後、ユーザー名(username)、パスワード(PassWord)などのデータエンジンを設定する必要があります。 、など。手動構成が必要な場合、作業負荷は比較的大きくなりますが、現時点では、InstallShield For Delphi を使用して構成を簡単に実装できます。 InstallShield For Delphi を使用してインストール プログラムを作成する場合、インストール プログラムが生成されるディレクトリに *.iwz テキスト ファイルが存在します。これを [IDAPI Alias] フラグメントに手動で追加するだけです。 例えば:
[IDAPIエイリアス]
ユーザー名=SYSDBA
パスワード=マスターキー
プログラムをインストールすると、データ エンジンが自動的に構成されます。
簡単なボタンストリップの作り方
クイック ボタン バーの各グラフィック ボタンは、一般的に使用される機能を表すと同時に、通常のアイコンよりもサイズが大きく、より大きく鮮明なグラフィックを配置でき、短いプロンプトを表示することもできます。最も一般的に使用される機能を実行すると、ユーザーにとって役立ちます。上記の理由に基づいて、アプリケーション インターフェイスを改善するためにクイック ボタン ストリップを採用する Windows アプリケーションがますます増えています。 Delphi でプログラミングする場合、著者は 2 つの異なる方法を使用してクイック ボタン バーを実装し、6 つのボタンからなる 2 つのグループを含むクイック ボタン バーを作成する例を組み合わせ、これら 2 つの方法の具体的な設計手順を示します。
1. 組み合わせ生成方法
(1) グラフィック ボタンのキャリアとして、Panel1 オブジェクトをフォーム上に配置します。
(2)Panel1 の Caption 属性を空、Align 属性を alTop に設定し、高さを適切なサイズに調整します。
(3)Panel1 に SpeedButton ボタンを 6 つ配置します (SpeedButton はフローティング特性があるため選択されています)。
(4)Panel1 に 2 つの Bevel オブジェクトを配置し、位置とサイズを調整してボタン グループを分離します。
(5)Panel1のSpeedButton1のサイズと位置を調整します。
(6) SpeedButton1 を選択し、そのプロパティ Flat を True に設定します。
(7) SpeedButton1 の属性 Glyph に対応する小さな省略記号ボタンをクリックし、PictureEditor ウィンドウを開き、「クエリ」を象徴するアイコンを選択します。 ShowHint プロパティを True に設定し、プロパティ Hint を「Query」に設定します。
(8) 手順 (5) ~ (7) に従って、残りの SpeedButton ボタンのプロパティを設定します。
このようにして、簡単なボタンストリップが完成します。実行中、クイック ボタンはフローティング形式で表示され、マウスをその上に移動すると、ボタンのアウトラインが表示され、小さなプロンプトが表示されます。
2. ToolBar 生成メソッドを借用する
(1) ToolBar1 オブジェクトをフォーム上に配置します。
(2) ToolBar1 のプロパティ EdgeBorders.ebLeft、ebTop、ebRight、および ebButtom を True に設定し、ToolBar1 のサイズを適切なサイズに調整します。
(3) ToolBar1 を選択し、クイック メニューを右クリックし、NewButton と NewSeparator をクリックして、6 つの ToolButton ボタンと 2 つの区切り線を追加します。
(4) 任意のツールボタン ボタンを選択し、そのサイズを適切なサイズに調整します。すべてのツールボタンも同時に調整されます。
(5) ToolBar1 のプロパティ BorderWidth を 3 に設定して、ToolButton の位置を調整します。
(6) ImageList1 オブジェクトをフォーム上に配置し、より大きなサイズの画像を収容できるようにそのプロパティ Height とWidth の値を設定します。
(7) ImageList1 をダブルクリックし、[追加] ボタンを使用して、ToolBar1 の 6 つの ToolButton に対応する 6 つの画像をそれぞれロードします。
(8) ToolBar1 のプロパティ Images を ImageList1 に設定します。
(9) 6 つのツールボタンの ShowHint 属性を True に設定し、それぞれの小さなプロンプト属性 Hint を設定します。
(10) ToolBar1 の HotImages を設定して、マウスがボタンをポイントしたときに設定される画像を指定することもできます。
ToolBar を使用して実装されたクイック ボタン バーは、最初の方法で作成されたものと外観が似ています。
上記のどちらの方法でもクイック ボタン バーを実装できますが、それぞれに独自の利点があります。最初の設計プロセスは比較的単純で、2 番目の方法では、マウスがボタンをポイントしたときに画像セットを指定するために HotImages を使用するなど、より多くの機能が提供されます。 。読者は、いずれかを選択し、その機能を継続的に改善したいと思うかもしれません。
一時テーブルの作成方法
データ入力はデータベース プログラムの開発において避けられない部分です。クライアント/サーバー構造では、クライアントはデータのバッチを入力し、それをサーバーのバックエンド データベースに送信できます。これには、ユーザーが入力したデータを保存するために、ローカル (クライアント) に一時データ テーブルを確立する必要があります。ローカルデータテーブルはクリアされます。この方法の利点は、入力効率の向上とネットワーク負荷の軽減です。
ユーザーが一度に入力するデータの量は一般に少ないため (数百レコード以下)、メモリ内に一時テーブルを確立できるため、処理が高速になります。一時テーブルを作成するには 2 つの方法があります。
1. クエリ制御を使用して一時テーブルを作成する
ステップ 1: フォーム上にクエリ コントロール (TQuery) を配置し、接続されたデータ テーブルを設定します。
ステップ 2: 次のステートメントを追加します。
TQuery.CachedUpdates=True;
TQuery.RequestLive=True。
ステップ 3: 元の SQL ステートメントの後に Where サブステートメントを追加します。この Where サブステートメントを追加した後、SQL クエリの結果が空になる必要があります。
例えば:
SELECT Biolife."種 No"、カテゴリ、Common_Name、Biolife."種名"、Biolife."長さ (cm)"、長さ_入力、メモ、グラフィック
「biolife.db」より
ここで、Biolife.Category='A' および Biolife.Category='B'
このようにして、一時テーブルが作成されます。
2. コードを使用して一時テーブルを作成します
関数コードは次のとおりです。
関数 CreateTableInMemory(const AFieldDefs:TFieldDefs):
TDataSet;
var TempTable:TClientDataSet;
始める
TempTable:=nil;
結果:=nil;
AFieldDefs<>nil の場合
始める
試す
TempTable:=TClientDataSet.Create(アプリケーション);
TempTable.FieldDefs.Assign(AFieldDefs);
TempTable.CreateDataSet;
結果:=(TDataSet としての TempTable);
を除外する
TempTable<>nil の場合、TempTable.Free;
結果:=nil;
上げる;
終わり
終わり
終わり;
プログラム内で次のように呼び出します。
手順 TForm1.Button1Click(送信者: TObject);
var ADataSet:TDataSet;
始める
ADataSet:=TDataSet.Create(Self);
ADataSet.FieldDefs を使用すると、
始める
Add('名前',ftString,30,False);
Add('Value',ftInteger,0,False);
終わり;
DataSource1 を使用して行う
始める
DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
DataSet.Open;
終わり;
ADataSet.Free;
終わり;
このようにして、一時テーブルが作成されます。
方法 1 は使い方が簡単ですが、クエリ制御を使用するため、データをクリアするときにサーバーのバックグラウンド データベースにクエリを実行する必要があるため、速度が若干遅くなり、一時テーブルの各フィールドが異なる状況には適していません。複数のデータ テーブルのフィールドで構成されます。方法 2 は応用範囲が広く、高速ですが、コードを記述する必要があります。
InterBase データベースの関数の使用
プログラマが InterBase をバックエンド データベースとして使用する場合、提供される関数が少なすぎ (4 つだけ)、複雑なストアド プロシージャを簡単に作成できないため、使いにくいと感じることがよくあります。 InterBase 自体は関数を作成できませんが、外部関数を使用できます (DLL 内の関数を呼び出します)。次の例は、InterBase で SUBSTR 関数を宣言する方法を示しています。
外部関数 SUBSTR の宣言
CSTRING(80)、SMALLINT、SMALLINT
CSTRING(80)を返します
ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf"
その中で、MODULE_NAME は DLL の名前、ENTRY_POINT は関数名です。
これは宣言後に使用できます。次に例を示します。
SUBSTR(国)を選択してください
国から
この例では、Delphi インストールに付属の IBLocal データベースを使用します。ユーザーは独自の関数を作成して InterBase を拡張することもできます。