华山沦贱 2023-09-03 12:47
浏览 38
已结题

老代码出现[DBNETLIB][ConnectionWrite (send()).]

玩BCB有20年了,读写数据库都用得很顺畅,代码也都是久经考验的。

最近一个小程序使用TCPClient每15分钟读取数据(解析成几个double)后存到SQL2008数据库中,运行后不确定时候会出现 [DBNETLIB][ConnectionWrite (send()).],跟踪代码主要是在TADOConnection连接时,而且一旦报错越过,下一次程序后续就再无法读写数据库了。必须重启才行,而且不知程序什么时候又会出现类似问题。

{
    TADOConnection *AD = new TADOConnection(NULL);
    AD->Connected = false;
    AD->ConnectionString = Connstring;
    AD->LoginPrompt = false;
    AD->KeepConnection = true;
    TADOTable *AT = NULL;
    try
    {
        AD->Connected = true;//此处弹出 [DBNETLIB][ConnectionWrite (send()).]
        
        AT = new TADOTable(NULL);
        AT->TableName = MyTable;
        AT->Connection = AD;
        AT->Open();
        AT->Append();
        for(int i = 0;; i < AT->Fields->Count - 2; i++)
        {
            if()
                AT->Fields->Fields[i + 2]->AsFloat = fData[i];
        }
        AT->Post();
        AT->Close();
    }
    catch(Exception &e)
    {
        LOG(e.Message.c_str());
        AT->Connection->Close();
    }
    catch(...)
    {
        AT->Connection->Close();
    }
    if(AT != NULL)
        delete AT;
    if(AD != NULL)
        delete AD;
    AT = NULL;
    AD = NULL;
}

本台电脑同时运行另一个程序也是周期性15分钟采集另外一组数据存储数据库领一张表却一直都不会出现类似警告,很头大!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月11日
    • 创建了问题 9月3日