Una gran parte del programa de aprendizaje debe conectarse a la base de datos para la operación. Aquí está el error. El editor del nuevo canal de tecnología no puede devolver el conjunto de registros en el proceso de almacenamiento utilizando OLEDB. ¡Los amigos interesados irán al siguiente artículo para obtener más información!
¿Por qué no se puede devolver el conjunto de registros en el método OLEDB en procedimientos almacenados?
Una vez escribí un programa que funciona en tablas temporales (la función principal es recuperar los 10 registros principales de cada categoría).
Este procedimiento almacenado es normal cuando se conecta a la base de datos con ODBC, y puede obtener los resultados correctos. Sin embargo, al conectarse usando el método OLEDB, el conjunto de registros no se puede devolver y aparece un mensaje de error cuando la operación regresa al conjunto de registros:
ADODB.RecordSet Error '800A0E78'
La operación solicitada por la aplicación no está permitida si el objeto está cerrado.
Me hizo perplejo. ¿porqué es eso?
Esto se debe a que hay una diferencia entre OLEDB y ODBC, es decir, cuando ASP obtiene un conjunto de registros de ODBC, ODBC filtra la tabla Crear
o insertar en genera un conjunto de registros que solo ocupa una posición pero no puede realizar ninguna operación. Cuando el ASP obtiene el registro establecido en OLEDB, OLEDB y
Estos conjuntos de registros no se filtran. Por lo tanto, debemos ejecutar SET nocount antes de no querer devolver el conjunto de registros en el procedimiento almacenado.
El procedimiento almacenado tiene prohibido devolver el conjunto de registros; Y al devolver el conjunto de registros, primero debe ejecutar SET NOCOUNT. De esta manera, el problema se resolverá.
El editor del 文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文 �