#c #sql-server #com #ado
#c #sql-сервер #com #ado
Вопрос:
Я использую ado для подключения моего проекта c к базе данных. Итак, когда я устанавливаю соединение с SQL-сервером и затем открываю соединение, я получаю такого рода ошибку comutil.cpp не найдено, но только если я использую step into(F11)
во время отладки, но если я использую step over(F10)
, ошибки нет и продолжаю работать.
Я обыскал свой компьютер и нигде не смог найти файл. Должен ли я установить comutil.cpp исходный код или файл?
p.s У меня нет ошибки до тех пор, пока соединение не будет выполнено.(ошибка: DB_E_ERRORSOCCURRED Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
) также при открытии соединения, но оно также ничего не получает в качестве значения <Information not available, no symbols loaded for msado15.dll>
, и связано ли это с comutil.cpp ? Если нет, то как я могу выполнить свое соединение?
Я снова и снова ломал голову, пытаясь найти решение для этого, но кто-нибудь знает, как решить эту проблему?
//TESTHR Function which check if HRESULT is okay or not
_ConnectionPtr pConnection;
_RecordsetPtr pRecordset;
_CommandPtr pCommand;
TESTHR(CoInitialize(NULL));
TESTHR(pConnection.CreateInstance(__uuidof(Connection)));
_bstr_t strCon(_T("ADOSQL"));
TESTHR(pConnection->Open(strCon, "", "", adOpenForwardOnly));
TESTHR(hr = pCommand.CreateInstance(__uuidof(Command)));
_bstr_t InsertQuery(_T("Insert Into TestTB(AccountID, Balance) Values(@AccountID, @Balance)"));
pCommand->ActiveConnection = pConnection;
pCommand->CommandText = InsertQuery;
pCommand->CommandType = adCmdText;
TESTHR(pRecordset.CreateInstance(__uuidof(Recordset)));
hr = pRecordset->Open(SQLQuery, pConnection.GetInterfacePtr(), adOpenForwardOnly, adLockReadOnly, adCmdText);
//-------------
//some operations
//-------------
pConnection->Execute(InsertQuery, vRecordsAffected, adCmdText); //here error occures
pRecordset->Close();
pConnection->Close();
CoUninitialize();
Комментарии:
1. Вы ссылались на comsuppw.lib?
2. нет, что это или как я могу это сделать? есть ли какая-либо документация?
3. Вы пытаетесь перейти к
comutil
исходному коду, но маловероятно, что ошибка кроется там. Вместо того, чтобы сосредоточиться на проблеме, связанной с отладкойcomutil
или другого программного обеспечения, предоставляемого Microsoft, вам, вероятно, следует изучить свой код. Строка подключения, которую вы используете, не похожа на строку подключения ADO. Может быть, это поможет: learn.microsoft.com/en-us/office/vba/access/concepts /…4. PS: Если вы не добавляете @<имя> в комментарии, отвечающие пользователю, то этот человек может не получить уведомление в своем почтовом ящике.
5. @J.R. я сделал это с помощью приложения ODBC Data Sources (потому что, когда я использую полный путь строки подключения, он выдает ошибку), который подключается правильно, я проверил это в профилировщике SQL server. но, возможно, сегодня я нашел что-то для выполнения команды, мне нужно импортировать «msadox.dll «, я точно не знаю. я прав?