下面的原代码, 运行时为什么会出错(100分)

  • 主题发起人 主题发起人 xudouya
  • 开始时间 开始时间
X

xudouya

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在做一个系统,此系统中有很多个相同结构的数据表,如果能用数组Ttable来运用表
将带来极大的方便, 遗憾的时运行时会出错。那位大虾能帮我指出下面的错误或提供方案
我将不胜感激。
type
Ttablearray=array[0..1] of Ttable;
TDatasourcearray=array[0..1] of Tdatasource;
Ttablename=array[0..] of string;
const
tabname:Ttablearray=('terminal1','terminal2');
var
table:Ttablearray;
source:TDatasourcearray;

procedure Tform1.formactivate(sender:Tobject);
var
i:byte;
begin
for i:=0 to 1 do
begin
table:=Ttable.create(self);
source:=Ttable.create(self);
table.databasename:='opticaldb';
table.tablename:=tabname;
source.dataset:=table;
end;
end;

{ terminal1,terminal2, 为OPTICALDB数据库里的两个表}

 
因为你太粗心。 呵呵。。。。

type
Ttablearray=array[0..1] of Ttable;
TDatasourcearray=array[0..1] of Tdatasource;
Ttablename=array[0..1] of string;

const
tabname:Ttablename=('country.db','custoly.db');

var
Form1: TForm1;
table: Ttablearray;
source: TDatasourcearray;

implementation

{$R *.DFM}

procedure TForm1.FormActivate(Sender: TObject);
var
i:byte;
begin
for i:=0 to 1 do
begin
table:=Ttable.create(self);
source:=TDataSource.create(self);
table.databasename:='BCDEMOS';
table.tablename:=tabname;
source.dataset:=table;
end;
end;
 
另外:要use Db, DBTables这两个unit
 
说具体一点出错的情况,
除了上面的情况外,可能还会有很多的问题出错的

 
你比较一下两段代码不就行了。都是粗心得错误,很好找出来的。
 
Grape 是不是terminal1少了.DB 我加了‘。DB’ 还是运行时出错。我用单步调试时看到
程序在事件FORMACTIVATE里运行时还未出错。一旦跳出此时间马上出错。出错提示为'access
voilation at address **********. 请各位大虾帮帮忙 。
 
多人接受答案了。
 
后退
顶部