数据库存取测试
在这一部分,我们将用C++和C#代码来测试两者对数据库的存取和处理。方法是对同一个数据库表进行操作。表结构如下:
测试将分三个部分,第一部分和第三部分集中对数据处理,第二部分集中对数据存取。数据处理和数据存取的测试结果是分开呈现的。 下面是数据存取和处理的C++代码:
在这一部分,我们将用C++和C#代码来测试两者对数据库的存取和处理。方法是对同一个数据库表进行操作。表结构如下:
CREATE TABLE testtable ( col1 INTEGER, col2 VARCHAR(50), PRIMARY KEY (col1) )
测试将分三个部分,第一部分和第三部分集中对数据处理,第二部分集中对数据存取。数据处理和数据存取的测试结果是分开呈现的。 下面是数据存取和处理的C++代码:
代码五:db.cpp #import "msado15.dll" / no_namespace rename("EOF", "EndOfFile") #include <iostream> #include <string> #include <sstream> int main(int argc, char* argv[]) { if (argc != 2) { std::cerr << "Usage:/tdb [rows]/n"; return 1; }; ::CoInitialize(NULL); int NUM = atoi(argv[1]); DWORD dw = ::GetTickCount(); _ConnectionPtr conptr(__uuidof(Connection)); conptr->Open(L"Provider=Microsoft.Jet.OLEDB.4.0;" "Data Source=c://db.mdb;", L"", L"", adOpenUnspecified); for (int i=0;i Execute(sql, &RecordsEffected, adCmdText); }; DWORD dw2 = ::GetTickCount(); std::cout << "Milliseconds = " << dw2-dw << std::endl; dw = ::GetTickCount(); for (int j=0;j<100;j++) { _RecordsetPtr rsptr(__uuidof(Recordset)); rsptr->Open(L"SELECT col1, col2 FROM testtable", conptr.GetInterfacePtr(), adOpenForwardOnly, adLockOptimistic, adCmdText); while (