Ein großer Teil des Lernprogramms muss mit der Datenbank für den Betrieb verbunden sein. Hier ist der Fehler. Der Editor des neuen Technologiekanals kann den im Speicherprozess mit OLEDB festgelegten Datensatz nicht zurückgeben. Interessierte Freunde werden in den folgenden Artikel gehen, um mehr zu erfahren!
Warum kann der Datensatz nicht in der OLEDB -Methode in gespeicherten Verfahren zurückgegeben werden?
Ich habe einmal ein Programm geschrieben, das in temporären Tabellen arbeitet (die Hauptfunktion besteht darin, die Top 10 Datensätze jeder Kategorie abzurufen).
Diese gespeicherte Prozedur ist normal, wenn sie mit ODBC eine Verbindung zur Datenbank herstellen und die richtigen Ergebnisse erhalten. Wenn Sie jedoch die Verbindung über die OLEDB -Methode herstellen, kann der Datensatzsatz nicht zurückgegeben werden, und eine Fehlermeldung wird angezeigt, wenn die Operation zum Datensatzsatz zurückkehrt:
Adodb.RecordSet -Fehler '800A0E78'
Die von der Anwendung angeforderte Operation ist nicht zulässig, wenn das Objekt geschlossen ist.
Es machte mich verwirrt. Warum ist das so?
Dies liegt daran, dass zwischen OLEDB und ODBC einen Unterschied besteht
oder einfügen in einen Datensatzsatz, der nur eine Position einnimmt, aber keine Operation ausführen kann. Wenn der ASP den Datensatz auf OLEDB, OLEDB und abholt
Diese Datensatzsätze werden nicht herausgefiltert. Daher sollten wir SET NoCount ausführen, bevor wir den in der gespeicherten Prozedur festgelegten Datensatz nicht zurückgeben möchten.
Das gespeicherte Verfahren ist verboten, den Datensatzsatz zurückzugeben. Und wenn Sie den Datensatzsatz zurückgeben, müssen Sie zuerst Set NoCount ausführen. Auf diese Weise wird das Problem gelöst.
Der Herausgeber des 文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文文 �