【问题标题】:how to retrieve any Firebird database data type with just Delphi XE2 and Indy10 TIdTCPClient and TIdCmdTCPServer如何仅使用 Delphi XE2 和 Indy10 TIdTCPClient 和 TIdCmdTCPServer 检索任何 Firebird 数据库数据类型
【发布时间】:2016-11-02 18:24:56
【问题描述】:

我的程序的 TIdTCPClient 可以从我的 TIdCmdTCPServer 请求和接收字符串数据,但我需要我的 TIdCmdTCPServer 从 Firebird 数据库返回任何数据类型。如何做到这一点?

【问题讨论】:

  • 在不了解您现有的通信协议或其请求/响应如何运作的情况下,这有点过于宽泛了。

标签: delphi indy10


【解决方案1】:

您可以将任何类型从字符串转换为字符串。因此,只需添加一个前缀,指示您在每次传输时发送的数据类型。

类似:

send string: "s[Hello World]"
send integer: "i[97]"
send float: 'f[14.25]"
send date: "d[2016-11-02]" 
...
...

【讨论】:

    【解决方案2】:

    我会说首先获取您的表结构 选择 RDB$FIELD_NAME FROM RDB$RELATION_FIELDS WHERE RDB$RELATION_NAME='TABLENAME'

    将结果写入字符串列表 字段:Tstringlist; Fields.add(fielddef);

    然后通过您的 tcpserver tcpserver.writestream(fields.tostream,0,1) 将结果发回

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多