-------------------------------------------------------------------------
1.DELPHI里做DLL时,只要调用COM,就得先调用CoInitiaLize(nil)构造函数初始化,然后再调用coUnInitiaLize析构函数。
可我同事愣是没初始化,就运行的很好,而他的代码和我的一摸一样!我的必须要进行上述初始化才行,否则出错。
--------------------------------------------------------------------------
2.如果DLL中的导出函数或过程以字符串或动态数组作为参数或返回值,那ShareMem
必须是DLL和项目的uses子句中的第一单元。这应用于应用程序和DLL的一切字符串的传递,甚至隐含在记录和类中的字符串。还是我那位同事,在DLL中的导出函数直接以字符串作为返回值,没引用ShareMem也不出错,而在我的机器上百试白错,除非按上述方法或用pchar
----------------------------------------------------------------------
3.今天在我用delphi6中的comandtext对表中某字段进行like查询,运行通过
然后发现该字段竟是整形,like 不是只能用于char,vchar,datetime,smalldatetime等数据类型吗?sql语句如下:'select tcompid from tcomptype where tcompid like '''+edit1.text+'%'''-----------------------------------------------------------------------希望各位解释一下以上几种我看来是不可能的事吧或者纠正我的错误观点吧!来者有分,在线听课

解决方案 »

  1.   

    大家帮我看看呀,随便说无妨比如说:  这是delphi的bug之类的  哈哈哈哈
    自己再up
      

  2.   

    1.并不是所有的进程内服务器都需要使用CoInitiaLize(nil)进行初始化操作的。
    2.是否是机器配置不同,我曾经一台机器是偶尔会出错,偶尔不错。
    3.数据库问题不知道
      

  3.   

    l_xiaofeng(≈流水≈不腐≈) bluespy(先迈左脚,还是右脚 ?) 谢谢归谢谢,但是大家别光帮我up呀
    谈谈吧!!自己再up
      

  4.   

    2.如果用string或其它class作为dll参数,必须使用ShareMem,不出错只是偶然情况
    3.你用的什么数据库,可能这是它自己对sql语句的扩展,还是自己看帮助比较好。
      

  5.   

    你同事是不是DELPHI中有什么补丁了。
      

  6.   

    SQL Server 2000
    like只能用于char,vchar,datetime,smalldatetime等数据类型 摘自《SQL Server 2000 编程指南》  北京希望电子出版社
      

  7.   

    晕LIKE
    确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配符。与使用 = 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。如果任何参数都不属于字符串数据类型,Microsoft® SQL Server™ 会将其转换成字符串数据类型(如果可能)。原来是这样
      

  8.   

    我自己觉得1. 他的dll编的有问题! 可是人家又运行的好好的2. 真是delphi的大奖?叫他中了?
      

  9.   

    Dll的中输出参数用String类型真没去想过(string是Delphi的特殊呀),这样的Dll放到C,或VB里去调的应该有问题出现的吧。