Не проходит параметрический запрос ни в ADO ни в DAO - VB

Узнай цену своей работы

Формулировка задачи:

Для ускорения обработки большой базы начал пробовать работу через параметрический запрос в DAO и в ADO, но при открытии Recordset выдает Type mismatch (Error 13) ошибку.
Давно сижу не могу врубиться.База создана на ACcess-97

Решение задачи: «Не проходит параметрический запрос ни в ADO ни в DAO»

textual
Листинг программы
#import 'C:Program FilesCommon FilesSystemadomsado15.dll' 
rename( 'EOF', 'adoEOF' )
...
_variant_t vtEmpty (DISP_E_PARAMNOTFOUND, VT_ERROR);
_variant_t vtEmpty2(DISP_E_PARAMNOTFOUND, VT_ERROR);
...
ADODB::_ConnectionPtr Conn1;
ADODB::_CommandPtr Cmd1;
ADODB::_ParameterPtr Param1;
ADODB::_RecordsetPtr Rs1;
 
// Trap any error/exception.
try
{
// Create and Open Connection Object.
Conn1.CreateInstance( __uuidof( ADODB::Connection ) );
Conn1->ConnectionString =
_bstr_t(L'DSN=Biblio;UID=adimin;PWD=;');
Conn1->Open( _bstr_t(L''), _bstr_t(L''), _bstr_t(L''), -1 );
 
// Create Command Object.
Cmd1.CreateInstance( __uuidof( ADODB::Command ) );
Cmd1->ActiveConnection = Conn1;
Cmd1->CommandText = _bstr_t(L'SELECT * FROM Authors '
L'WHERE Au_ID < ?');
 
// Create Parameter Object.
Param1 = Cmd1->CreateParameter( _bstr_t(L''),
ADODB::adInteger,
ADODB::adParamInput,
-1,
_variant_t( (long) 5) );
Param1->Value = _variant_t( (long) 5 );
Cmd1->Parameters->Append( Param1 );
 
// Open Recordset Object.
Rs1 = Cmd1->Execute( &vtEmpty, &vtEmpty2, ADODB::adCmdText );
 
}
 
catch( CException *e ) { e->Delete(); }
catch(...) { }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы