⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sybcontrol.pas

📁 sybase大全
💻 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 + -