关于在DLL中封装窗体的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 newfood123
  • 开始时间 开始时间
兄弟,你在你的数据窗口的工程序文件中有没有加ShareMem。<br>我觉得没有必须把整个ADOQuery传入DLL中,DLL自己可以根据条件到数据库查询取数,这样做这个DLL就可以比较独立的使用。耦合性就可以降低了。<br>尽量使用标准的参数来传递,这样比较好。如果要返回结果尽量用var或out的方式返回。<br>返回结果变量的内存必须在调用DLL的程序分配,再使用Pchar传入。<br>注意PChar的内存分配完后要初始化。这是C的原则。<br>有问题可以联系E-Mail、MSN:willing66@163.com
 
Demo&nbsp;已经发给楼主了。<br>如果不想使用&nbsp;ShareMem&nbsp;,传递&nbsp;TADOConnection&nbsp;和&nbsp;SQL&nbsp;语句进&nbsp;DLL&nbsp;,由&nbsp;DLL&nbsp;的&nbsp;TADOQuery&nbsp;来查询数据库就可以了。
 
谢谢,我已经收到你的DEMO了,正在看,你是把QUERY做为指针传到DLL中,这个很好,不过我还要在DLL窗口中实现排序功能,不知道能不能做到,我要试试,正在试验中,先谢谢楼上的
 
当然可以排序了!<br>关键看你传入的SQL语句!
 
liyinwei你的邮箱是多少,我发一个DEMO给你,帮我看看为什么我的老是出错??
 
晕!回复我的邮件就可以了。<br>liyinwei@gmail.com
 
不好意思,我都几天没有上去收信了,所以看到你的&nbsp;EMail。<br>你发&nbsp;Demo&nbsp;过来吧。
 
问题如下:<br>1.<br>“sql.Add('select&nbsp;*&nbsp;from&nbsp;p_pack');”这一句是多余的,所以会提示<br>“FORM&nbsp;子句语法错误”<br>因为&nbsp;ADOQuery1&nbsp;的&nbsp;SQL&nbsp;属性已经在设计期设置过了。<br>改成<br>SQL.Text&nbsp;:=&nbsp;'SELECT&nbsp;*&nbsp;FROM&nbsp;p_pack';<br>这样就可以了。<br><br>2.如果要引用&nbsp;ShareMem&nbsp;单元的话,主程序和Dll的工程单元都要引用&nbsp;ShareMem&nbsp;的,<br>你的主程序的工程单元没用引用,所以会出错。<br><br>修改后的&nbsp;Demo&nbsp;已经发到你的邮箱了。
 
问题解决,散分
 
后退
顶部