Categories

Links

paxscript

basic

一句话,还真不错,有很多vb.net的语法,但又有些不同,比方说 过程无需带(),写了一段调用adodb的脚本,跑起来速度不赖,同vbscript差不多。

接下去,测试了字符串连接,类似

s=s & rs.fields("field").value & "\r\n" ’后面这个\r\n应该不是vb的特征

 

发现速度下来了,可见字符串处理效率不高,但想到其可以调用delphi 的vcl库,试着想使用vcl的字符串类,如TStringList,发现运行到add就卡壳

imports classes 'delphi classes 单元

dim s as TStringList

s=new TStringList

s.Add("test")

不支持的特色

1. is 操作符 typeof c is integer

2. 不能在定义时创建新对象,如dim c as new MyObject

 

javascript

1. 注意单元引用,如 using a in './units/a.pp'

 bug

var a = new Array(3)
a[2] = 12;
//println a;
//println a.length;
a[5] = 36;
//println a;
//println a.length;
var d = a.concat([1,2,3]);
println d.length;
println d;

这段脚本居然丢失 a[5].  结果为,,12,,,1,2,3 ,长度为8,显然,contact冲掉了最后一个元素

如果 写

a=[1,2,3];

a.conact([4,5,6]); //不认这个conact

看来是不能用了

 

 

[2008-06-18 14:41:44.531428 | Author:jiangjianxiao ] [] 8 comments

delphi 强类型数据集

在delphi中,访问TDataSet的子类字段通常用FindByName,其实可以用类似ado.net 强类型数据集的方法来完成,简单的例子

unit Unit10;

interface
uses ADODB,classes,DB,variants,dialogs;

type
TPermission=class(TADODataSet)
  constructor create(owner:TComponent);override;
  public
  security_key_id:TIntegerField;
  id:TIntegerField;
  group_id:TIntegerField;
  access_level:TIntegerField;


end;

procedure test;
implementation
constructor TPermission.create(owner: TComponent);
begin
  inherited Create(owner);
  //创建字段
  self.CommandType:=cmdTable;
  CommandText:='permissions';


  security_key_id:=TIntegerField.Create(self);
  security_key_id.FieldName:='security_key_id';
  id:=TIntegerField.Create(self);
  id.fieldName:='id' ;

  group_id:=TIntegerField.Create(self);
  group_id.fieldName:='group_id';
  access_level:=TIntegerField.create(self);
  access_level.fieldName:='access_level';


//设置dataset,同时会将字段加入到fields集合
  security_key_id.DataSet:=self;
  id.DataSet:=self;
  group_id.DataSet:=self;
  access_level.dataset:=self;


end;

procedure test;
var
  p:TPermission;

begin
  p:=TPermission.Create(nil);
  p.ConnectionString:='.................................................';
  p.Active:=true;
  while not p.eof do begin

    showmessage(vartostr(p.security_key_id.Value));
    p.Next;
  end;
end;
end.

 

 

其实,如果delphi的index 属性支持字符串的话,可以定义出更高效的类,yy的

TPermission=class(TADODataSet)
 published
 property security_key_id:TField index 'security_key_id' read fieldByname;
 property group_id:TField index 'group_id' read fieldbyname;
 property id:TField:TField index 'id' read fieldbyname
 property access_level:TField index 'id' read fieldbyname


end;

 

 

[2008-06-25 02:39:30.385256 | Author:jiangjianxiao ] [] 64 comments

Total 2 Display 1 of 2
Powered by Google App Engine