KORRIGERA: "Ogiltigt objektnamn" fel vid uppdatering av lagrad procedur i en annan databas


Symptom


Följande fel returnerades, där namn är namnet på den tabell som du försöker uppdatera:
Ogiltigt namn namn
Det här felmeddelandet visas under följande förutsättningar:
  • Det finns en lagrad procedur i en databas som väljer poster från en tabell i en annan databas.
  • Den resulterande postuppsättningen returneras till ett program eller en tjänst.
  • Den postmängden skickas sedan out-of-process som en frånkopplad postuppsättning ADO (ActiveX Data Objects) till ett annat klientprogram.
  • Ett försök görs att uppdatera frånkopplad postuppsättning.

Om postmängden aldrig konverteras utanför processen men levereras direkt till den process som försöker uppdatera i stället, lyckas instruktionen Uppdatera .

Orsak


Remoting-delen av ADO (Msdaprst.dll) är oavsiktligt skriver över delar av metadata i postuppsättningen. När sedan konstruera uttrycket UPDATE , metadata är inte tillgängligt och genereras felaktig syntax.

Undersökning av spårning loggar visar att rätt database.owner.tablename-syntax som användes när du väljer poster, men bara tabellnamnet användes när konstruera uttrycket UPDATE .

Eftersom anslutningen för tillfället pekar till databasen med den lagrade proceduren och tabellen finns inte i databasen, "Ogiltigt objektnamn" fel returneras.

Lösning


En korrigeringsfil är nu tillgänglig från Microsoft, men den är endast avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Korrigeringsfilen kan komma att testas igen. Inte störs alltför mycket av detta problem rekommenderar Microsoft att du väntar på Nästa service pack för Microsoft Data Access som innehåller den här snabbkorrigeringen.

Om du vill lösa problemet omedelbart kontaktar du Microsoft Product Support Services för att få korrigeringsfilen. En fullständig lista över telefonnummer Microsoft Product Support Services och information om supportkostnader finns på följande Microsoft-webbplats:Anmärkning: I vissa fall avgifter som är normalt för supportsamtal kan vara avgiftsfri om en supporttekniker att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.

Den engelska versionen av denna korrigeringsfil ska ha följande filattribut eller senare:
   Date              Version      Size    File name      
-----------------------------------------------------
7/22/99 2.10.4321 203KB msdaprst.dll




Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i början av denna artikel.

Det här problemet korrigerades i MDAC 2.5.

Den senaste versionen av Microsoft Data Access Components (MDAC) finns på följande Microsoft-webbplats:

Mer Information





VIKTIGT!

Det rekommenderas inte att du installerar snabbkorrigeringen på en dator som kör MDAC 2.1 SP2 (version 2.12.4202) eller senare. Den här snabbkorrigeringen bör endast användas med datorer som kör MDAC 2.1 SP1 (version 2.10.3711) eller tidigare.

Kod för betydande ändringar gjordes för att lösa problem med minne fragmentering mellan MDAC 2.1 SP1 och SP2 för MDAC 2.1. Det inte förväntas att något allvarligt fel uppstår om den här snabbkorrigeringen används för MDAC 2.1 SP2, är då så rekommenderas inte.

Det finns en separat snabbkorrigering för att lösa problemet i MDAC 2.1 SP2.

Finns i avsnittet referenser i den här artikeln för mer information.

Manuell Installation

  1. Stäng eller stoppa program eller tjänster som använder Msdaprst.dll. Detta kan omfatta IIS (Internet Information Server) (IIS), Microsoft Transaction Server (MTS), Microsoft Distributed Transaction Coordinator (DTC) och ADO eller OLE DB-program.
  2. Hämta snabbkorrigeringsversionen av Msdaprst.dll till en tillfällig mapp.
  3. Leta upp och byta namn på den aktuella versionen av Msdaprst.dll som bör finnas i mappen \Program files\System\msadc.
  4. Kopiera snabbkorrigeringsversionen av Msdaprst.dll till samma plats och starta om tjänster och program.


Viktigt meddelande för användare av Microsoft Windows 95/98

Om du installerar snabbkorrigeringen på en dator som kör Windows 95 eller en dator med den ursprungliga utgåvan av Windows 98, kan du behöva installera Windows 98 migrering DLL-filen som ingår i denna korrigeringsfil.

Anmärkning: läser filen Migrate_qfe.txt som finns i filen Migration.exe som ingår i hämtningen.



REFERENSER


Information om snabbkorrigeringen vad avser MDAC 2.1 SP2 finns i följande artikel finns i Microsoft Knowledge Base:

238092 ogiltigt objekt namngivningsfel när du uppdaterar lagrad procedur i en annan databas


Mer information om minne fragmentering problem som anges ovan finns i följande artikel finns i Microsoft Knowledge Base:
230101 frågor returnerar ibland tom delmängder