Procedure _Send;StdCall; Var UDP:TIDUDPClient; Begin UDP:=TIDUDPClient.Create; UDP.Host:='200.200.200.255'; UDP.Port:=8000; UDP.Active:=True; UDP.Send('SQL Server UDP Test '); UDP.Free; End;
Exports _Send; ----------这样OK,但若我加个参数,就挂了如下
Procedure _Send(S:String='');StdCall; Var UDP:TIDUDPClient; Begin UDP:=TIDUDPClient.Create; UDP.Host:='200.200.200.255'; UDP.Port:=8000; UDP.Active:=True; UDP.Send('SQL Server UDP Test '+S); UDP.Free; End;
Exports _Send;
没有参数的,调用OK,发的UDP能接收到
加上参数后,在SQL SERVER里执行就提示: Msg 0, Level 11, State 0, Line 0 当前命令发生了严重错误。应放弃任何可能产生的结果。
晕倒 。。。
----------------------------------------------
SQL SERVER DBA QQ:315054403 曾经的Delphier 缘在上海
UDP.Send()的发送内容是一个整体,如果需要传入参数, 建议另外设置一个变量,比如这样 var S : string;
Procedure _Send;StdCall; Var UDP:TIDUDPClient; Begin UDP:=TIDUDPClient.Create; UDP.Host:='200.200.200.255'; UDP.Port:=8000; UDP.Active:=True; S := 'SQL Server UDP Test '+S; UDP.Send(S); UDP.Free; End;
----------------------------------------------
Everyone will to do best!
Procedure _Send(SY:PWideChar);StdCall; Var UDP:TIDUDPClient; EC:TEncoding; Begin EC:=TEnCoding.Unicode; UDP:=TIDUDPClient.Create; UDP.Host:='200.200.255.255'; UDP.Port:=8000; UDP.Active:=True; UDP.Send('SQL Server UDP Test '+StrPas(SY),EC); UDP.Free; End;