📄 sybcontrol.pas
字号:
unit sybcontrol;
interface
type
SybObjectname = string[30];
type
TSybControl = class(TComponent)
private
{ Private declarations }
FSql :ansistring;
FDbname :SybObjectname;
FDesignActive:boolean;
procedure SetDbProc(Value :integer);
procedure SetSql(Value :ansistring);
procedure SetDbName(Value :SybObjectname);
procedure SetDesignActive(Value :boolean);
protected
{ Protected declarations }
procedure get_databases;
procedure get_dbproc;
public
{ Public declarations }
SqlCommand:array[0..4096] of char;
dbprocc:integer;
Login,Retcode,retcode2,nocols,col:integer;
databases:array[1..10] of SybObjectname;
databasedbprocs:array[1..10] of integer;
databasecount :integer;
DbProc :integer;
constructor create(AOwner:TComponent); override;
procedure addsql(Value :ansistring);
procedure clearsql;
{ function sqlexec:integer;}
published
{ Published declarations }
property DbName :SybObjectname read FDbName write setDbname;
property Sql :string read FSql write SetSql;
property DesignActive:boolean read fdesignactive write setdesignactive default false;
end;
implementation
uses sybase32;
procedure TSybcomponent.SetDbProc(Value :integer);
begin
Dbproc:=Value;
Dbprocc:=Value;
end;
procedure TSybcomponent.SetSql(Value :ansistring);
begin
FSql:=Value;
end;
procedure TSybcomponent.Setdesignactive(Value :boolean);
begin
if value then
begin
databasecount:=0;
get_databases;
get_dbproc;
end;
Fdesignactive:=Value;
end;
procedure TSybcomponent.addsql(Value :ansistring);
begin
FSql:=FSql + Value;
end;
procedure TSybcomponent.clearsql;
begin
FSql:='';
end;
procedure Tsybcomponent.SetDbname(Value :SybObjectname);
var i:integer;
begin
{ for i:=1 to sybase_components.databasecount do
showmessage(sybase_components.databaselist[i]);}
FDbname:=value;
get_dbproc;
end;
procedure TSybcomponent.get_databases;
var frm,own_frm :tform;
i,j :integer;
begin
databasecount:=0;
own_frm:=getparentform(self);
for i:=0 to own_frm.ComponentCount-1 do
if (own_frm.Components[i] is TSybDatabase)
or (own_frm.Components[i] is TSybDB) then
begin
inc(databasecount);
if own_frm.Components[i] is TSybDatabase then
begin
databases[databasecount]:=TSybdatabase(own_frm.components[i]).name;
databasedbprocs[databasecount]:=TSybdatabase(own_frm.components[i]).dbproc;
end
else
begin
databases[databasecount]:=TSybDB(own_frm.components[i]).name;
databasedbprocs[databasecount]:=TSybDB(own_frm.components[i]).dbproc;
end
end;
with application do
begin
for j:=0 to componentcount - 1 do
begin
if (components[j] is TForm) then
begin
Frm:=TForm(components[j]);
for i:=0 to frm.ComponentCount-1 do
begin
if (frm.Components[i] is TSybDatabase)
or (frm.Components[i] is TSybDB) then
begin
inc(databasecount);
if frm.Components[i] is TSybDatabase then
begin
databases[databasecount]:=TSybdatabase(frm.components[i]).name;
databasedbprocs[databasecount]:=TSybdatabase(frm.components[i]).dbproc;
end
else
begin
databases[databasecount]:=TSybDB(frm.components[i]).name;
databasedbprocs[databasecount]:=TSybDB(frm.components[i]).dbproc;
end
end;
end;
end;
end;
end;
end;
procedure TSybcomponent.get_dbproc;
var i:integer;
begin
for i:=1 to databasecount do
begin
if FDbName = databases[i] then
begin
setdbproc(databasedbprocs[i]);
exit;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -