【发布时间】:2016-11-02 18:24:56
【问题描述】:
我的程序的 TIdTCPClient 可以从我的 TIdCmdTCPServer 请求和接收字符串数据,但我需要我的 TIdCmdTCPServer 从 Firebird 数据库返回任何数据类型。如何做到这一点?
【问题讨论】:
-
在不了解您现有的通信协议或其请求/响应如何运作的情况下,这有点过于宽泛了。
我的程序的 TIdTCPClient 可以从我的 TIdCmdTCPServer 请求和接收字符串数据,但我需要我的 TIdCmdTCPServer 从 Firebird 数据库返回任何数据类型。如何做到这一点?
【问题讨论】:
您可以将任何类型从字符串转换为字符串。因此,只需添加一个前缀,指示您在每次传输时发送的数据类型。
类似:
send string: "s[Hello World]"
send integer: "i[97]"
send float: 'f[14.25]"
send date: "d[2016-11-02]"
...
...
【讨论】:
我会说首先获取您的表结构 选择 RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME='TABLENAME'
将结果写入字符串列表 字段:Tstringlist; Fields.add(fielddef);
然后通过您的 tcpserver tcpserver.writestream(fields.tostream,0,1) 将结果发回
【讨论】: