1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
void test_db(stc::tstring const & databaseHist)
{
ADODB::_ConnectionPtr f_historydb(__uuidof(ADODB::Connection));// (L"ADODB.Connection");
f_historydb->CommandTimeout = 300;
if (f_historydb->Open(L"Provider=SQLNCLI11;Server=MyServer;Database=MyDb;UID=sa;pwd=MySecret", L"", L"", ADODB::adConnectUnspecified))
{
unsigned valueId = 0;
{
stc::tstring query = _T("SELECT max(ValueId) FROM ");
query += databaseHist;
query += _T("..TextTest");
ADODB::_RecordsetPtr rs = f_historydb->Execute(query.c_str(), NULL, ADODB::adCmdText);//_com_util::ConvertStringToBSTR
while (!rs->EndOfFile)
{
_variant_t v = rs->Collect[0l];
if (V_VT(&v) == VT_I4)
valueId = (long)v;
//s = _TCS_FROM_NOT_NULL_VARIANT(rs->Collect[1l]);
rs->MoveNext();
}
rs->Close();
valueId += 5;
}
ADODB::_CommandPtr f_qhistory(__uuidof(ADODB::Command));
{
stc::tstring query = _T("INSERT INTO ");
query += databaseHist;
query += _T("..TextTest"
" (ValueId,ShortText,LongText,ShortWText,LongWText)"
" VALUES (?,?,?,?,?)");
f_qhistory->CommandText = query.c_str();//_com_util::ConvertStringToBSTR
f_qhistory->CommandType = ADODB::adCmdText;
f_qhistory->ActiveConnection = f_historydb;
f_qhistory->Parameters->Append(f_qhistory->CreateParameter(L"ValueId", ADODB::adInteger, ADODB::adParamInput, sizeof(long)));
f_qhistory->Parameters->Append(f_qhistory->CreateParameter(L"ShortText", ADODB::adVarChar, ADODB::adParamInput, 20));
f_qhistory->Parameters->Append(f_qhistory->CreateParameter(L"LongText", ADODB::adLongVarChar, ADODB::adParamInput, 2 * 1024 * 1024 - 1));//?
f_qhistory->Parameters->Append(f_qhistory->CreateParameter(L"ShortWText", ADODB::adVarWChar, ADODB::adParamInput, 20));
f_qhistory->Parameters->Append(f_qhistory->CreateParameter(L"LongWText", ADODB::adLongVarWChar, ADODB::adParamInput, 2 * 1024 - 1));//?
}
{
#ifdef _UNICODE
stc::tstring sstr(TCS_LEN("short'\" ™ éàè \x2122 123\x03d6"));
stc::tstring lstr(TCS_LEN("verylong'\" ™ éàè \x2122 123\x03d6"));
#else
stc::tstring sstr(TCS_LEN("short'\" ™ éàè œ 1234"));
stc::tstring lstr(TCS_LEN("verylong'\" ™ éàè œ 1234"));
#endif
//sstr += _T('0');
stc::tstring s(lstr);
for (unsigned u = 0; u < 80; ++u)
s += lstr;
lstr = std::move(s);
f_qhistory->Parameters->GetItem(0l/*ValueId*/)->Value = (long)valueId;
f_qhistory->Parameters->GetItem(1l/*ShortText*/)->Value = sstr.c_str();//_com_util::ConvertStringToBSTR
f_qhistory->Parameters->GetItem(2l/*LongText*/)->Value = lstr.c_str();
ADODB::_ParameterPtr param2(f_qhistory->Parameters->GetItem(2l/*LongText*/));
if (param2->Attributes & ADODB::adParamLong)
std::_tcout << s + _T('0') << std::endl;
f_qhistory->Parameters->GetItem(3l/*ShortWText*/)->Value = sstr.c_str();//_com_util::ConvertStringToBSTR
f_qhistory->Parameters->GetItem(4l/*LongWText*/)->Value = lstr.c_str();
f_qhistory->Execute(NULL, NULL, ADODB::adExecuteNoRecords | ADODB::adCmdText);
}
f_historydb->Close();
}
} |
Partager