请教关于RXlib内存表(TMemoryTable)的用法(100分)

  • 主题发起人 主题发起人 shyj
  • 开始时间 开始时间
S

shyj

Unregistered / Unconfirmed
GUEST, unregistred user!
利用Rxlib2.5帮助,用该控件写出如下程式:
TMemory MTable;
MTable->Database="MyDB"; //Microsoft SQL Server6.5
MTable->TableName= "mytable"; //随便什么名称都可以吗?

MTable->字段定义->Clear()
MTable->字段定义->Add("field1",ftString,12,false);
MTable->字段定义->Add("field1",ftInteger,0,false);
MTable->字段定义->Add("field1",ftCurrency,0,false);
//what is ftCurrency 'size? I have to let it be 0

MTable->CreateTable();//出错!!!
请给出成功的例子。(如果与 Dev dxDbGrid结合最好)
 
procedure TForm1.Button1Click(Sender: TObject);
begin
with memoryTable1 do begin
{ The Table component must not be active }
Active := False;
{ First, describe the type of table and give }
{ it a name }
DatabaseName := 'dbdemos';//注意必须是存在的databasename
//TableType := ttParadox;
TableName := 'CustInfo';
{ Next, describe the fields in the table }
with FieldDefs do begin
Clear;
with AddFieldDef do begin
Name := 'Field1';
DataType := ftInteger;
Required := True;
end;
with AddFieldDef do begin
Name := 'Field2';
DataType := ftString;
Size := 30;
end;
end;
CreateTable;
end;
end;
运行通过。
 

>> // MTable->Database="MyDB"; //Microsoft SQL Server6.5
此行不要, 因为memorytable不使用BDE, 使用databasename 只会导致失败。
不过好象 Local Table的数据库不会出错!

这是由于TMemoryTable的设计问题, 他继承于TBDEDataSet , 建立的表
视同Local Table 所以有DatabaseName属性。
Rxlib2.6以后, 就又有了一种新的TRxMemoryData. 不受BDE约束。

MTable->TableName= "mytable"; //随便什么名称都可以吗?

MTable->字段定义->Clear()
MTable->字段定义->Add("field1",ftString,12,false);
MTable->字段定义->Add("field1",ftInteger,0,false);
MTable->字段定义->Add("field1",ftCurrency,0,false);
 
SeaSky答在点子上了,程序通过。
Hobdog程序也没错,但针对Local Table才正确。

分数=> 90 + 10 = 100
 
多人接受答案了。
 
请问可不可以用TQuery从内存表中查询?
 

Similar threads

后退
顶部