none
SqlBulkCopy在Visual C++中出现内存泄漏 RRS feed

  • 问题

  • SqlBulkCopy在Visual C++里面怎么用,我参照C#代码

    http://www.cnblogs.com/muliang/p/3831797.html

    写的visual C++程序,发现使用SqlBulkCopy出现内存泄漏,主要代码如下:

    SqlConnection^ Conn = gcnew SqlConnection();
    SqlConnection^ Conn->ConnectionString = Marshal::PtrToStringAnsi((IntPtr)cSQLCmd);
    SqlConnection^ Conn->Open();

    DataTable^   Table = gcnew DataTable();

    DataRow^     Row;

    SqlBulkCopy^ BulkCopy = gcnew SqlBulkCopy(Conn);

    Table->Columns->Add("nMachID", System::Type::GetType("System.String"));
    Table->Columns->Add("lSampTime", System::Type::GetType("System.String"));

    Row = Table->NewRow();

    Row["nMachID"] = Marshal::PtrToStringAnsi((IntPtr)cDeviceName);
    Row["lSampTime"] = Marshal::PtrToStringAnsi((IntPtr)cSampTime);

    Table->Rows->Add(Row);

    BulkCopy->DestinationTableName = Marshal::PtrToStringAnsi((IntPtr)cDataSheetName);

    BulkCopy->ColumnMappings->Add("nMachID", "nMachID");//前者为临时表,后者为目标表
    BulkCopy->ColumnMappings->Add("lSampTime", "lSampTime");

    BulkCopy->WriteToServer(Table);
    BulkCopy->Close();
    Table->Rows->Clear();

    请高手看下,如何解决。万分感谢。

    2017年3月7日 9:49

全部回复

  • Should report to MS connection.
    2017年3月7日 18:28
  • 可否考虑用C#写个进程,VC++再调用这个进程。

    C#写这个东西实在太容易了,网上例子很多,C++以进程调用的方式完成。

    managed c++代码与C#代码并不能完全转化。


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2017年3月8日 4:28