添加数据速度问题? 我现在要一次向数据表中添加几千条记录,应该如何做速度才达到最快?不影响系统。请赐教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写存储过程来完成!用的是BDE还是ADO? TO 78hgdong(蜗牛跑步) 我用的是ADO啊,我想用ADOQuery实现添加啊。应该怎么做呢? 能不能用代码示例啊?假如我要添加这些字段:ID, Name,Age 表名为: StudentInfo 存储过程应该怎么写呢?又该如何调用呢?本人数据库方面很欠缺,对存储过程更是没怎么接触,请高手指教。 我用的是ACCESS数据库,存储过程应该写在哪里呢?在DELPHI里用ADOQuery又如何去调用呢? 用多线程吧,不过对于access数据库,不会提高多少速度。 请问怎么在CSDN中发问题啊,我注册了但是找不到发问题的地方谢谢:顺便帮我看一个问题谢谢?:DMBacu.zjyz.SQL.Clear; DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid)); try DMBacu.zjyz.Open; if (DMBacu.zjyz.RecordCount > 0) then uid := DMBacu.zjyz.FieldByName('uid').AsInteger; k := 2; Ftext := ' UPDATE account_expressions16 ' + ' SET '; DMBacu.expressions_result.SQL.Clear; DMBacu.expressions_result.SQL.Add('SELECT * FROM account_coefficient'); DMBacu.expressions_result.Open; DMBacu.expressions_result.First; while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do begin Ftext := Ftext + DMBacu.zjyz.Fields[k].FullName + ' = '; Faccount := DMBacu.zjyz.Fields[k].AsFloat; Faccounts := Faccount; Faccount := Faccount * 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat; if (Faccount > DMBacu.expressions_result.FieldByName('average').AsFloat) then begin Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat; if (Faccount > DMBacu.expressions_result.FieldByName('allright').AsFloat) then Faccount := Faccounts; end else if (Faccount < DMBacu.expressions_result.FieldByName('inferior').AsFloat) then Faccount := Faccounts * 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat else Faccount := Faccounts * 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat; if (k <> DMBacu.zjyz.Fields.Count -1) then Ftext := Ftext + FloatToStr(Faccount) + ', ' else Ftext := Ftext + FloatToStr(Faccount); DMBacu.expressions_result.Next; k:= k+1; end; except end;程序执行到: while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do就跳到了END;请问各路高手能帮我修改吗谢谢· 我用的是ACCESS数据库,怎么调用存储过程来添加记录呢?请会的举个例子好吗? ACCESS数据库,好像不能使用存储过程的,只能以条一条的插入 对于ACcess数据库来说,因为是在本地运行,几千条数据根本不用考虑效率问题。如果要考虑人机界面,不妨在插入语句的循环过程中加入Application.ProcessMessages 处理消息循环,以免用户的界面出现死机现象。Access不支持批处理插入。 但是我插入几千条记录时CPU资源就会上升到100%啊,而且速度很慢,该如何处理呢? 请教 tttk(网络芝麻) ( 现在主要是我一插入上千条记录时,我的CPU资源占用就为100%,而且插入2000多条记录就需要1分多钟时间,这正常吗?该怎么处理呢?我现在放在线程里执行还是没什么改观。 clientdataset1里面有数据库字段列表,我该如何让他们循环一一列出他们呢 100分相送,高手请进,在线等待 如何实现像QQ一样的移动到屏幕右边时,就自动隐藏? 急需帮助:怎样把pchar类型转换为stringlist类型? 有没有办法使Query仅得到前100条记录? 我出 人民币 200 元(不是分)解决以下问题? 为什么我的delphi程序一运行就会同时弹出两个form 各位帮帮我吧 招视频方面的程序员(上海) 如何检测是否连接了internet? 大侠练刀的时候到了!!——读取这种类型的图像并显示 combobox 自动下拉后找不到鼠标
我用的是ADO啊,我想用ADOQuery实现添加啊。应该怎么做呢?
顺便帮我看一个问题谢谢?:
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 2;
Ftext := ' UPDATE account_expressions16 '
+ ' SET '; DMBacu.expressions_result.SQL.Clear;
DMBacu.expressions_result.SQL.Add('SELECT * FROM account_coefficient');
DMBacu.expressions_result.Open;
DMBacu.expressions_result.First;
while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
begin
Ftext := Ftext + DMBacu.zjyz.Fields[k].FullName + ' = ';
Faccount := DMBacu.zjyz.Fields[k].AsFloat;
Faccounts := Faccount;
Faccount := Faccount * 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('average').AsFloat) then
begin
Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('allright').AsFloat) then
Faccount := Faccounts;
end
else
if (Faccount < DMBacu.expressions_result.FieldByName('inferior').AsFloat) then
Faccount := Faccounts * 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccount := Faccounts * 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (k <> DMBacu.zjyz.Fields.Count -1) then
Ftext := Ftext + FloatToStr(Faccount) + ', '
else
Ftext := Ftext + FloatToStr(Faccount);
DMBacu.expressions_result.Next;
k:= k+1;
end;
except
end;程序执行到: while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do就跳到了END;请问各路高手能帮我修改吗谢谢·
只能以条一条的插入
Application.ProcessMessages 处理消息循环,以免用户的界面出现死机现象。Access不支持批处理插入。