如果不希望輸入密碼:
LoginPrompt : false
這樣Query1的連接屬性要變一下,因為它要通過Database來聯接數據庫(以 後在前台可以直接通過改變DataBase的屬性來改變聯接)
DataBaseName= DataBase1的DataBaseName:自定義的名(這裡比如為a)。
SQL屬性輸入一個基本的SQL語言:select * from 獎金 Active=true 表示這 樣也可以連接上了。
TQurey 增加個屬性
SessionName: Session1_4
這樣就可以用Session對象來管理數據源的信息了。
再加入四個Label,顯示當前在線人數,以及進行SQL 查詢的人數。
為了傳給客戶端值,並能夠由客戶端來對服務器端進行某些控制,需要在COM 中加入兩個方法:
VIEw -> Type Library 顯示接口窗口。
右鍵 IPcSQL(具體根據設置名不同而不同) -> New ->建立兩個方法 (Method):
GetDatabaseNames ,用以傳下別名數據,其接口信息為:
Return type :HRESULT
Parameters
name type modifIEr
Param1 VARIANT* [out,retval]
SetDatabaseName , 用以接受客戶機來的信息,其接口信息要求傳入
三個信息(注意:圖上的SetDatabaseName誤為SetDatabaseNames,實際請設 為SetDatabaseName,否則客戶調用名稱可能會出錯)。
Return type :HRESULT
Parameters
name type modifIEr
DBName BSTR [in] ----傳上來的別名
(用Add加入)
UserName BSTR [in]
PassWord BSTR [in]
刷新(Refresh Implementation)以後,就產生兩個函數
function TPcSQL.GetDatabasenames: OleVariant;
begin
end;
procedure TPcSQL.SetDatabasename(const DBname, Username,
PassWord: WideString);
begin
end;
function TPcSQL.GetDatabaseNames: OleVariant;
var
I: Integer;
DBNames: TStrings;
begin
// 建立一個字符串數組存放BDE所有的數據庫別名數據。
DBNames := TStringList.Create;
try
// 利用Session控件取得當前BDE所有的數據庫別名數據。
Session1.GetDatabaseNames(DBNames);
/// 建立一個變量數組給函數返回變量Result。
Result := VarArrayCreate([0, DBNames.Count - 1], varOleStr);
// 最後再把數據庫別名數據指定給該變量數組。
for I := 0 to DBNames.Count - 1 do
Result[I] := DBNames[I];
Finally
//如果錯誤就把構造的DBNames釋放掉。
DBNames.Free;
end;
end;