请问如何 实现将一个query中的内容保存到数据库 (SQL SERVER)中(30分)

  • 主题发起人 主题发起人 bitwomen
  • 开始时间 开始时间
B

bitwomen

Unregistered / Unconfirmed
GUEST, unregistred user!
老问题了,都快不好意思问了。
 
具体说说……是Query中的数据,还是还是SQL语句,还是保存控件本身(包括状态,做公文包式的C/S时用)?
 
在dataacess中找到控件 updatesql 然后把query的cacheupdate设为真,query的updateobject 连接updatesql控件
在updatesql编辑选则关键字应该ok了。在保存按钮中写如下代码
begin
with CustomerQuery do
begin
Database1.StartTransaction;
try
ApplyUpdates; {try to write the updates to the database};
Database1.Commit; {on success, commit the changes};
except
Database1.Rollback; {on failure, undo the changes};
raise; {raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates; {on success, clear the cache}
end;

end;
 
是Query中的数据
 
updatesql 应该在BDE
 
query中的 数据是直接从数据表中选出来的
procedure TForm14.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('select * from ADB_PART');
query1.SQL.Add('where'+combobox1.Items[combobox1.Items]+'like'''+edit1.Text+'%''');
if query1.Prepared=false then query1.Prepare;
query1.Open;
end;
 
缓存更新不可以吗
 
我测试了你的代码,没有问题啊。你用什么数据库啊?
我看你的代码好象是Delphi的例子……
 
告诉我编译时听在哪一行,错误信息是什么?
 
我通过一个下拉列表选择查询的字段,然后在通过输入的索引值直接对数据表进行查询
 
错误的一行是
query1.SQL.Add('where'+combobox1.Items[combobox1.Items]+'like'''+edit1.Text+'%''');
我原来是在5版本中编译通过的,现在用的是6版本原来 的程序锻是
query1.SQL.Add('where'+combobox1.Items[combobox1.ItemINDEX]+'like'''+edit1.Text+'%''');
提示信息是:字段属性不符
现在重新运行时提示系统内存不足
 
如果我没理解错的化,你是先查找,再把查找出的纪录插入数据库表,
用updatasql完全可以实现的,我们是先查找在修改,然后保存进数据库,应该没问题。
 
你是不是强制结束调试中的程序了?用Ctrl+F2?这样程序不会释放内存的,重启Delphi就可以了。
 
是的,我的 想法就是那样的,现在按照你的程序段纠可以实现了码?
 
重新启动DELPHI以后还是没有解决问题
 
你在选择字段时,没有考虑到字段的类型,如整型、字符型,如果你输入的是浮点型,但edit1.Text表示的是字符型而不是浮点型,肯定会报错的
出现内存不足是很正常的,测试时用它的可执行文件,不要F9运行。
 
运行可执行程序时出现的错误时:
应用程序发生异常未知的软件异常,位置为。。。
 
在query.open前家上showmessage(query.sql.text);看一看你的查询条件是否正确;
 
运行到哪一步出现的问题??
 
多人接受答案了。
 
后退
顶部