小编Nea*_*ack的帖子

表和临时表之间的差异

为什么这段代码没有问题:

drop table t1 
select * into t1 from  master..spt_values
drop table t1 
select * into t1 from  master..spt_values
Run Code Online (Sandbox Code Playgroud)

产量

Msg 3701, Level 11, State 5, Line 1
Cannot drop the table 't1', because it does not exist or you do not have permission.

(2508 row(s) affected)

(2508 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有:

drop table #t1 
select * into #t1 from  master..spt_values
drop table #t1 
select * into #t1 from  master..spt_values
Run Code Online (Sandbox Code Playgroud)

产量

Msg 2714, Level 16, State 1, Line 4
There is …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

7
推荐指数
1
解决办法
520
查看次数

获取枚举大小和名称作为通用参数传递

看看下面的代码:

uses
  TypInfo, Dialogs, Classes, Generics.Collections, ADODB, DB, SysUtils;

type
  TTable_1 = (ID, FName, LName, FatherName);

type
  TBaseTable<TableType> = class(TADOQuery)
  public
    constructor Create(AOwner: TComponent); Override;
    procedure Select(DS: TDataSource);
  end;

implementation

{ TBaseTable<TableType> }

constructor TBaseTable<TableType>.Create(AOwner: TComponent);
begin
  inherited;
  Self.Connection := DataModule3.ADOConnection1;
  Self.Connection.Connected := True;
end;

procedure TBaseTable<TableType>.Select(DS: TDataSource);
var
  Query: string;
  EnumIndex: Byte;
begin
  EnumIndex := 0;
  Query := 'SELECT ';
  while (GetEnumName(TypeInfo(TableType), EnumIndex) <> UnitName) do
  begin
    Query := Query + GetEnumName(TypeInfo(TableType), EnumIndex) + ',';
    Inc(EnumIndex);
  end;
  Query := …
Run Code Online (Sandbox Code Playgroud)

delphi generics orm enums

3
推荐指数
1
解决办法
730
查看次数

组件已发布属性,如TFont.Name

我在下面写了一个样本组件:

unit Test;

interface

uses
  System.SysUtils, System.Classes, System.Variants, VCL.Dialogs;

type
  TTest = class(TComponent)
  private
    fName: TStringList;
    { Private declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); Override;
    destructor Destroy; override;
  published
    { Published declarations }
    property Names: TStringList read fName;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TTest]);
end;

{TTest }

constructor TTest.Create(AOwner: TComponent);
begin
  inherited;
  fName := TStringList.Create;
  for i:= 1 to 100 do
      fName.Add(IntToStr(i));
end;

destructor TTest.Destroy;
begin
  fName.Free;
  inherited;
end;

end.
Run Code Online (Sandbox Code Playgroud)

现在当我在Delphi上安装它时,在Object Inspector中我有一个名为"Names"的属性,我应该双击它,然后一个对话框显示存储在Name上的TStringList项.

我想在其他组件(如TEdit等)中使这个属性像Font.Name,当点击Name属性,列表显示,用户可以从中选择一个项目,然后将项目分配给属性并显示为Object …

delphi components

0
推荐指数
1
解决办法
572
查看次数

标签 统计

delphi ×2

components ×1

enums ×1

generics ×1

orm ×1

sql ×1

sql-server ×1

t-sql ×1