2017-09-11 134 views
0

在我的表单中,我在DataSource中使用了一个临时表 - 与属性TableType:InMemory如何在临时表中插入第二条记录?

在我的形式我有一个简单的代码,就像这样:

public TableTmpTable insertRecords(String _param_I, string _param_II) 
{ 
    TableTmpTable myInMemoryTable; 

    myInMemoryTable.clear(); 
    myInMemoryTable.initValue(); 

    myInMemoryTable.Field_I = _param_I; 
    myInMemoryTable.Field_II = _param_II; 

    myInMemoryTable.insert(); 

    return myInMemoryTable; 
} 

我需要调用此方法不止一次。

但是,当我打电话的方法,我失去了我以前的记录。 如何在不同的时间在InMemory表中插入更多记录?

感谢您的建议!

回答

2

范围

被插入在第一个记录时InMemory表被实例化。仅在引用表的记录缓冲区变量存在时,实例化的InMemory表才会继续存在。 InMemory表的内存或磁盘空间在记录缓冲区超出范围时立即解除分配。

从MSDN,Temporary InMemory Tables

你的代码确实是什么创建表的一个新实例的方法被调用的时间缓冲。相反,您需要使用表单数据源的表缓冲区。

又见Temporary table as form data sourceAX 2012: Using Temporary Table as Form’s Datasource

+0

Thanks @ FH-Inway。非常有用的建议。 我只在Form的classDeclaration my Table中声明了InMemoryTable一次,并在所有进程中使用它。 – ulisses

0

只是分割你的方法一到两年。

第一种方法将初始化您的表格,第二种方法将插入您的记录。

+0

OP在评论中提到,她在窗体的classDeclaration中初始化表。除此之外,您的初始化方法还会做什么? –

相关问题