P
piaoping
Unregistered / Unconfirmed
GUEST, unregistred user!
我们公司的款式图片库有两万多张,以前是在服务器里面做一个pic共享文件夹,<br>全部放在pic里面,数据库是存的是路径,客户端有三十多台机,特别是打报表时要<br>调用好多张图片,那个慢呀,好难忍受呀!现在我在另一台电脑上安装一个新的sqlserver,<br>试着已经把图片存入数据库中,三万张图片放入sqlserver中的一个tPCStylePicData表中,<br>我设了ID,StyleNO,Pic,Memo,这四个字段其中pic为image类型,图片是用流的方式存入数据库,数据库总共有有400mb左右;用delphi只建了一个新的窗体form1,里面加了几个<br>控件ADOConnection1,adoquery1,DataSource1,还有EditID,EditStyleNO,EditMemo来显<br>示字段内容,又做了一image1用来显示图片,还有button1的click事件是<br>ADOConnection1.Connected :=true;<br>adpquery1.sql:='select * from tPCStylePicData';<br>adoquery1.Active :=true;<br>还有button2的click事件是用来让image1显示图片,这里就不写内容<br>编译后的Project1.exe总共才0.98MB, JJYY说了一大堆不知大家明白了没?<br>我的问题是运行Project1.exe,打开window任务管理器,查看内存情况Project1.exe占9mb<br>sqlservr.exe占12mb,这种情况正常,好了我现在点击button1,这时我查看window任务管理器,好家伙,Project1.exe占三百多mb,sqlservr.exe占四百多mb呀,我想可能是因为这一句<br>adpquery1.sql:='select * from tPCStylePicData'; <br>sqlserver把表tPCStylePicData的pic二进制的图片全部调入内存,Project1.exe这个玩艺也把pic二进制的图片全部调入内存,真是太恐怖了,现在我是想请高手帮忙改下语句,比方说让sqlserver一次只调一条数据到内存,我想这样占用内存就没那么高了