用sql语言
delete tablename;
这就可以了
delete tablename;
这就可以了
解决方案 »
- fastreport 分组打印
- delphi操作UTF-8数据库插入中文数据有什么好的解决方案
- 急!!!dbgrideh合计行的问题
- 江湖救急,大哥们帮帮们.有没有办法删除指定目录下的所有文件和文件夹呢?
- 奇怪的问题,高手请进.
- 请高手进来看看一个问题急
- 如何实现 多列(multicolumn) combobox
- 谁对BatchMove比较熟?
- 函数只能返回一个值。 用什么方法可以返回两个值
- 我的DELPHI装在D盘。C盘格式化后,如何在现有的基础上重新在系统里确认DELPHI
- Delphi中时间的表示法?
- 用DELPHI的TNMPOP3收信的时候,怎么样来判断这封信是否已经收过,也就是只收还没有收过的信?谢了。100分
数据少当然用delete tablename如果不这样的话,一个表中有几百万条记录,那你的机器就完啦!哈哈一口气添加20万条记录干什么,你用多线成看看,要注意你的循环变量,
Query1.SQL.Text := 'delete from tablename';
Query1.ExecSQl;
query1.sql.clear;
query1.sql.add('delete table1')
query1.excsql;
query1.open;
这是删除,增加记录我 不知道有什么办法更快。
应该用drop tablename 在 create table 是最快的如果数据多
数据少当然用delete tablename
一口气添加20万条记录干什么,你用多线成看看,要注意你的循环变量,
这个很快
oracle的话用sqlloader
这个很快
//数据库是 oracle,问题现在是 sqlloader 怎么用,再400分相送
用 BatchMove, 源表的 TableType 是 ttASCII.
hDb: hDBIDb; { 数据库句柄 }
bOverWrite: Boolean; { True 则覆盖已有的文件 }
pszSrcTableName: PChar;
pszSrcDriverType: PChar; { 源表驱动程序类型 }
pszDestTableName: PChar;
): DBIResult; stdcall;
那時要增加約三十几萬﹐最慢的時候用了近二十分鐘﹗(它越加越慢﹐開始一秒鐘能增加百十條記錄﹐后來一秒鐘就只能加三十几條了)后來改盡了﹐在p3 800上只要五分鐘不到(平均每秒鐘能Insert至少約500)。
具體做法是﹕Query1.SQL.Text+='你的一個增加句子';
直到Query1的Insert語句約有三十條﹐再對其進行ExecSQL,再清空其語句。我用的是兩層數據庫﹐表也較復雜﹐還有觸發器。遺憾的是我用的是BCB﹐不是Delphi,所以不能把代碼給你。另外﹐如果有循環﹐可以把循環變量放在寄存器中﹐
也會加快一些速度.不知對你有無幫助
目录下面(可能根据有点出入)的 BDE32.HLP 文件.
1、添加20万以上记录
declare @i int
set @1=19
insert tablename values(...) ---加一条
while @i>0
begin
insert tablename select ... from tablename ---...里可以规定一些规则,如果用*,那所有记录都是一样的。
set @i=@i-1
end
2、删除一个表中所有的记录
truncate table tablename
function DbiInsertRecord (hCursor: hDBICur; eLock: DBILockType; pRecBuff: Pointer): DBIResult stdcall;
function DbiAppendRecord (hCursor: hDBICur; pRecBuff: Pointer): DBIResult stdcall;
如是这样,直接把文本文件copy到EXCEL
再从EXCEL导到你的数据库即可,不用写程序了
添加多次后,sql就不能执行其中有什么语法规则?
添加想办法用 BatchMove来控制。
需要一源表, 目标表, 然后指定 Mode, 然后 Execute;
那个当然, 需要 Clear();
还是这个20万条记录的问题,我想用分批提交 insert into sql语句
可是实现不了,能给个详细过程么?