2011-02-16 49 views
0

我正在使用VCL TCPServer组件,每次在TCP端口上接收到的数据是 时都会触发事件。在事件数据可用的文本 参数的过程。因为我想将这些数据保存到mysql数据库中,所以我想知道哪个是最好的解决方法。 直接在过程中为每个接收的数据使用INSERT SQL命令 或将数据存储在内存中(即TStrings),然后每隔X(使用Timer)分钟调用 函数执行INSERT命令?当执行sql插入?

谢谢

好的抱歉。

+0

您需要插入的事件数量是多少?平均和高峰时间? – Freddie 2011-02-16 10:52:02

回答

1

这不是您的问题的答案,但请考虑在接收数据和执行INSERT之间您的应用程序失败(出于任何原因)的风险。

如果您使用某种本地商店作为缓解风险的中间商,请考虑该商店正在更新时发生崩溃的风险。

RDBMS供应商竭尽全力确保成功完成INSERT,UPDATE或类似命令所接受的数据不会丢失或损坏。你能否做出类似的努力?一般来说,如果您接受零散数据而不是批量数据,我可能会保持与数据库的开放连接,并在您收到数据时插入数据,并且一旦发送确认回应用程序已被推送到数据库。

+0

嗨迈克尔。谢谢你的回复。 – marcostT 2011-02-20 12:09:21