过程如下:
.......
打开程序,第一次对销售单,进行结算:
1.利用adoStoredPorc执行一个存储过程getDh,返回销售单的销售单号;
2.询问用户是否打印:if messagebox('....')=idyes then print;//速度很快,立刻就弹出此对话框;
3.利用adoquery执行insert操作把销售单所有数据插入到数据库中.
4.结算过程完成.
不退出程序,接着开第二张销售单(所有数据均完全相同),进行结算:
1.利用adoStoredPorc执行一个存储过程getDh,返回销售单的销售单号;
////////////////////////////问题出现了////////////////////////
2.询问用户是否打印:if messagebox('....')=idyes then print;//至少要4秒以后,才会弹出此对话框,这是为什么?
///////////////////////////////////////////////////////////////
3.利用adoquery执行insert操作把销售单所有数据插入到数据库中.
4.结算过程完成.究竟是sql在后台做了什么,为什么第二次调用的时候,同样的代码速度就慢了很多呢?
.......
打开程序,第一次对销售单,进行结算:
1.利用adoStoredPorc执行一个存储过程getDh,返回销售单的销售单号;
2.询问用户是否打印:if messagebox('....')=idyes then print;//速度很快,立刻就弹出此对话框;
3.利用adoquery执行insert操作把销售单所有数据插入到数据库中.
4.结算过程完成.
不退出程序,接着开第二张销售单(所有数据均完全相同),进行结算:
1.利用adoStoredPorc执行一个存储过程getDh,返回销售单的销售单号;
////////////////////////////问题出现了////////////////////////
2.询问用户是否打印:if messagebox('....')=idyes then print;//至少要4秒以后,才会弹出此对话框,这是为什么?
///////////////////////////////////////////////////////////////
3.利用adoquery执行insert操作把销售单所有数据插入到数据库中.
4.结算过程完成.究竟是sql在后台做了什么,为什么第二次调用的时候,同样的代码速度就慢了很多呢?
1、存储过程涉及的表和关系;
2、存储过程的语句;
3、DELPHI的代码;
我们才可以给你找出问题。
也许,是你的数据库设计的时候出的问题,或是表记录被使用占用,造成需要等待。
////////////////////////////问题出现了////////////////////////
2.询问用户是否打印:if messagebox('....')=idyes then print;//至少要4秒以后,才会弹出此对话框,这是为什么?
///////////////////////////////////////////////////////////////
3.利用adoquery执行insert操作把销售单所有数据插入到数据库中.
4.结算过程完成. *************************
你变慢的时候应该是已经取出了数据.所以与数据库无关,那么唯一的可能就是你的打印模块了,不知你是怎么处理的,若是直接print,那么就是你的打印机在你第一次发出指令后,打印机还在处理中,你的第二次打印指令已经发出,此时你的程序就出现了一个等待4秒,这几秒是被打印机吃掉了.
建议你先把打印语句注释掉再测试一下