unit Main;
interface
uses
ComObj, ActiveX, AspTlb, Ibo_TLB, StdVcl;
type
Tibdataset = class(TASPObject, Iibdataset)
protected
procedure OnEndPage; safecall;
procedure OnStartPage(const AScriptingContext: IUnknown); safecall;
procedure connect(const dbName, user, passwd: WideString;
dialect: Shortint); safecall;
procedure sqlquery(const sqlstring: WideString); safecall;
procedure movenext; safecall;
function Get_eof: WordBool; safecall;
function Get_fieldname(const fieldname: WideString): OleVariant; safecall;
procedure Set_disconnect(Value: WordBool); safecall;
procedure disconnectdb; safecall;
function Get_recordcount: Integer; safecall;
procedure first; safecall;
procedure last; safecall;
end;
implementation
uses ComServ, dmMainUnit;
var dm: TdmMain;
procedure Tibdataset.OnEndPage;
begin
inherited OnEndPage;
end;
procedure Tibdataset.OnStartPage(const AScriptingContext: IUnknown);
begin
inherited OnStartPage(AScriptingContext);
dm := TdmMain.Create(nil);
end;
procedure Tibdataset.connect(const dbName, user, passwd: WideString;
dialect: Shortint);
var text: string;
begin
with dm do
begin
db.DatabaseName := string(dbName);
db.Username := string(user);
db.Password := string(passwd);
db.SQLDialect:=dialect;
try
db.Connect;
// text := 'connected Ok<br>';
except
text := '<FONT face=verdana size=1>There was an error connecting</FONT>';
end;
end;
response.Write(text);
end;
procedure Tibdataset.sqlquery(const sqlstring: WideString);
var text: string;
begin
with dm do
begin
qMain.Close;
qMain.SQL.Clear;
qMain.SQL.Add(string(sqlstring));
try
qMain.Open;
// text := 'Open';
except
text := '<FONT face=verdana size=1>Please execute the query first</FONT>';
end;
end;
response.Write(text);
end;
procedure Tibdataset.movenext;
begin
try
dm.qMain.next;
except
end;
end;
function Tibdataset.Get_eof: WordBool;
begin
result := dm.qMain.eof;
end;
function Tibdataset.Get_fieldname(const fieldname: WideString): OleVariant;
begin
result := dm.qMain.FieldByName(string(fieldname)).AsVariant
end;
procedure Tibdataset.Set_disconnect(Value: WordBool);
begin
dm.db.Connected:=not value;
end;
procedure Tibdataset.disconnectdb;
begin
dm.db.Disconnect;
end;
function Tibdataset.Get_recordcount: Integer;
begin
result:=dm.qMain.RecordCount;
end;
procedure Tibdataset.first;
begin
dm.Qmain.first;
end;
procedure Tibdataset.last;
begin
dm.qMain.Last;
end;
initialization
TAutoObjectFactory.Create(ComServer, Tibdataset, Class_ibdataset,
ciMultiInstance, tmApartment);
end.