用VC写了个sql server使用的扩展存储过程,功能很简单,就是在触发器里使用,触发器里得到导致操作的sql语句,然后将该sql 语句传递到其他程序中,问题:
当该sql语句长度大于255个字符时,扩展存储过程就只取了255个字符,剩余的被截掉了,扩展存储过程如何传递大于255长度的字符串?

解决方案 »

  1.   

    你可能使用了CString的Format方法,这个方法在VC6.0中限制只能255字符,可以改用sprintf来写sql语句。
      

  2.   

    没有用CString,首先用srv_paraminfo得到传递过来的参数信息,然后用srv_paramdata得到实际参数,然后memcpy到一个char行字符串中,srv_paraminfo能得到参数实际长度,就是用srv_paramdata取时把参数大于255的截掉了,最终只取了255个字符出来.还望做个类似的兄弟们给个建议?
      

  3.   

    上面兄弟可能误会了问题,扩展存储过程不构造sql语句,sql语句是sql server的触发器构造的,现在目的是要把触发器构造的sql 语句通过扩展存储过程以某种方式传递给其他应用程序,问题就出在当触发器构造的sql语句长度大于255时,通过存储过程来传递该语句时就只能取出255个字符。
      

  4.   

    问题解决,谢谢兄弟们参与,其实用srv_paraminfo取了参数信息后,没必要用srv_paramdata再取了,srv_paraminfo本身就是为了取代旧版的srv_paramdata之类的用的,而srv_paramdata就有长度限制,所以超过255个字符后,srv_paramdata就截掉了。