SQL 对数据库查询级添加记录,想求一个好办法??(150分)

  • 主题发起人 主题发起人 nenma
  • 开始时间 开始时间
N

nenma

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]我用数据库查询来生成报表及添加新记录,有一个在心头的结一直难解!
1、添加新记录,怎样才能实现:
单击Button,实现添加新记录,而关键是在程序不正常退出或不正常关机
时,该记录没有真正加入,要单击保存后才加入。
2、统计数据供打印报表。
通过SELECT语句,查出的结果,我是用UPDATE或INSERT逐条写入,然后再打印;
这样的方法很慢,并且有明显的写硬盘,我看到一个软件它的计算到表,与纵横
计算,就很好没有明显写盘(它的数据也很多50条)!
请高手给解决方法。
3、初期写程序时出现不严谨,导致数据不对现要改。
比如原记录是"abcd ",应该是"abcd",就是前一个后多出了空格。给查询带来不
便(我需要不用LIKE条件进行查询);
我的方法是查一条,读出该记录中的关键字段值,再用UPADET写入。
这同第一条一样,不断的写盘,很难看,并且当记录达到一定手工艺数据量时,有
可能程序不响应。
求一个能修改且程序执行速度的方法。!![?]

 
笨!
为什么要这么做呀。
 
1 cached;
2
3 update tableT set fieldF=(Lstr(Rstr(fieldF))) where conditions
 
1. TempTable . 建 个 临时数据表. 每次 对主表更新后.清 临时表. 每次进入系统 时

读临时表, 发现有 数据 , 就是没有 正常 关机, 就 提示 是不是 加为 新 记录 .

2. 你可以 用 复合 查询做. Select * from (select * from table) where .....

对于打印, 不建议还用 先写入 打印 临时表 , 再打印的 办法 , 那是 foxpro 年代的事了.

3. 如你的 数据 库 支持 , 同意 楼上用这样的 函数 解决 .
 
(1)在添加记录窗口中使用比BitBtn,然后8点击主界面的'添加新纪录'按钮时使用如下
语句:
if AddRecordDlg.ShowModal = mrOk then
begin
//往数据里添加数据
end;
 
(2)先用Query实现条件查询,然后再用QReport的数据控件与Query的字段相连,每次预览
之前,刷新Query(先close再open)即可。
 
(3)用trim(string)可去掉前后的空格。
 
(1) 我用的是dbedit ,用cached 比较好,再用 Appsqlupdate(),
先 Query->Insert(); 再写入必写的字段值。
(2) 我用数据模型,在不同的FORM中调用同一个Query,已经中调用前
Close();可是当先查询了一个表后再查另一个表,经常出现
Query Field"gz" ...! 这一类的错误!
 
可否把你的源代码给我看看?
 
多人接受答案了。
 
后退
顶部