你使用的是SQL数据库吗?
如果是:
你可以有两种创建方式:
创建临时表与永久表很相似,只不过临时表是存储在tempdb数据库中,当不再使用时,临时表会被自动删除,
两种类型: 局部和全局:局部的在表的名称前写“#”,它只能在创建它的会话内被访问。全局的是加上“##”,在创建后所有的用户都可以访问!当每一个对全局临时表引用断开后(计数为0),则释放(删除)临时表
如果是:
你可以有两种创建方式:
创建临时表与永久表很相似,只不过临时表是存储在tempdb数据库中,当不再使用时,临时表会被自动删除,
两种类型: 局部和全局:局部的在表的名称前写“#”,它只能在创建它的会话内被访问。全局的是加上“##”,在创建后所有的用户都可以访问!当每一个对全局临时表引用断开后(计数为0),则释放(删除)临时表
例如
Create table #temp
(Name varchar(10),
Tel varchar(13),
COnstraint pk_Name primary key(Name))
则创建了一个临时表
或者通过
select * into #temp from TableName 则可以把TableName中的所有信息都放到临时表#temp中
begin
close;
sql.clear;
sql.add('select * into #tablename from tablename where 1=2');
execsql;
close;
sql.clear;
sql.add('select * from #tablename');
open;
append; //这里出错,提示只读状态;修改R***LIVE属性后提示关键字出错
edit;
end;
请教大侠们该如何解决
但是你上面的代码还是有问题呀
其实 'select * into #tablename from tablename ’ 这已经将临时表创建好了,并且数据也全部导入进去了,如果是有条件的数据,则加入where 你怎么分成两步了 呵呵!
那比如有人在使用的话那我不是要等..等到什么时候啊.我是想在客户建立一个临时数据再发送到服务器端.
就向(jiangnanandi())←这位大哥说的好象有效点儿....
嗯.那那个列表类要怎么建的呀.大哥教教我.....!
大哥能不能给点儿代码啊.我刚学DELPHI.谢谢..
type type_name = record
table_field1:string;
table_field2:string;
table_field3:string;
.
.
end;
这样就可以了吧
begin
close;
sql.clear;
sql.add('select * into #tablename from tablename where 1=2');
execsql;//过了这句,这个临时表就释放了。你直接用个表,操作完后drop掉可以了。
close;
sql.clear;
sql.add('select * from #tablename');
open;
append; edit;
end;
2、如果是ADO方式连接SQL Server数据库(这是目前Delphi开发最常用的方式),那很简单了
with TADOQuery.Create(Self) do
try
Connection:=你的数据库连接;
SQL.Add('CREATE TABLE #TEMPTABLE(IDNO SMALLINT,IDNAME VARCHAR(8))');
ExecSQL;
finally
Close;
Free;
end;
Type
TNote=Class(Tobject)
nm:stirng;
se:string;
.....
end
再建一个listobject类
TNoteInfo=Class(TObjectList)
然后在 TNoteInfo类中 处理 添加删除 等对TNote类的操作
有不明白的可以联系我 QQ群10493623
try
Connection:=你的数据库连接;
SQL.Add('CREATE TABLE #TEMPTABLE(IDNO SMALLINT,IDNAME VARCHAR(8))');
ExecSQL;
finally
Close;
Free;
end;
象这种方法我感觉不好.因为他是在数据库中生成了一张表.
我想要创建一个内存表要怎么实现哦.
jiangnanandi() 回复的说建两个类我是会的.但是要实现添加.修改多条记录用这个方法行嘛?
玩笑了,这个生成的是临时表,在你的数据库中是没有生成表的
在SQL Server中,所有临时表均保存在tempdb数据库中,这是系统库,当你的连接断开的时候,这个表会自动删除,也可以手工删除。
如果是纯内存运行,那是变量表,不但很多数据库还不支持变量表,Delphi前台多数情况下也是无法直接添加的
至于在Delphi端的内存中,那不是普通意义上的数据库表了如果是其它模式的临时表,这招数可就多了,至少有10种以上的方法!
with TADOQuery.Create(Self) do
try
Connection:=你的数据库连接;
SQL.Add('CREATE TABLE #TEMPTABLE(IDNO SMALLINT,IDNAME VARCHAR(8))');
ExecSQL;
finally
Close;
Free;
end;
上面这一段我试过的.我用ACCESS数据库.不能用的.说'#'地方有错.然后我删了'#'就可以在数据库中建一张表了.
有什么用啊/
要次性再入多条记录到一个DBGRID中然后还可以修改他们的入库数量和入库价格.再写入到数据库中的.象这个过程要怎么样实现呢?我以为是开临时表.但是上面的方法一样是在ACCESS中建了一个表...感觉这个方法不可行.
然后我又查了查那个clientdataset控件是不是可以暂时存入多条记录的吗?
Hank大哥如果在的话就回复下下.