Simptomi
Kada pokušate izmijeniti zapis u tablici pomoću Microsoftova davatelja usluge OLE DB za SQL Server (SQLOLEDB), prikazat će vam se sljedeća poruka o pogrešci:
Pogreška prilikom izvođenja '-2147467259 (80004005) ': nedefinirana pogreška
Ovu poruku primate kada su ispunjeni svi sljedeći uvjeti:
-
Tablica sadrži okidač, a okidač koristi naredbu dohvati.
-
Na računalu je instaliran Microsoft podatkovni Access Components (MDAC) 2,8.
-
Naredba Dohvati ne koristi svoj neobavezan u uvjet.
Rješenje
Da biste riješili taj problem, Nabavite najnoviji servisni paket za Microsoft Windows XP. Dodatne informacije potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
322389 Kako nabaviti najnoviji servisni paket za Windows XP
Status
Microsoft je potvrdio da se radi o problemu u Microsoftovim proizvodima navedenim u odjeljku "odnosi se na".
Koraci za reprodukciju problema
Da biste reproducirao problem, stvorite okidač ažuriranja koji koristi naredbu dohvati, a zatim stvorite projekt programa Microsoft Visual Basic 6,0:
-
Pokrenite SQL alat za analizu upita, a zatim se povežite s instancom sustava SQL Server 2000.
-
Na izborniku upit kliknite Promijeni bazu podataka. Prikazat će se dijaloški okvir Odabir baze podataka naziva poslužitelja .Naziv poslužitelja za poruke rezervirano je mjesto za naziv instance sustava SQL Server 2000 s kojim ste povezani.
-
U stupcu naziv kliknite pubovi, a zatim u redu.
-
U analizatoru SQL upita pokrenite sljedeću naredbu Transact-SQL:
CREATE TRIGGER jobs_Trigger1ON dbo.jobsFOR UPDATE ASBEGINDECLARE @job_id intDECLARE job_inserted_cursor CURSORLOCALFAST_FORWARDFOR Select job_id FROM inserted OPEN job_inserted_cursorFETCH NEXT FROM job_inserted_cursor /* The error occurs. *//* FETCH NEXT FROM job_inserted_cursor INTO @job_id The error does not occur. */CLOSE job_inserted_cursorDEALLOCATE job_inserted_cursorEND
-
Pokrenite Microsoft Visual Basic 6,0.
-
U dijaloškom okviru novi projekt kliknite Standardno exe, a zatim kliknite Otvori. Po zadanom se stvara obrazac koji se zove Form1.
-
U programu Project Explorer desnom tipkom miša kliknite obrazac Form1 , a zatim kliknite Prikaži kod.
-
Zalijepite sljedeći kod u prozoru kod Form1 obrasca:
Dim cnDim rsPrivate Sub Form_Load()Set cn = CreateObject("ADODB.Connection")cn.Open "Provider=SQLOLEDB;Pwd=<password>;UID=<user name>;Initial Catalog=pubs;Data Source=<data source>"cn.CursorLocation = 2Set rs = CreateObject("ADODB.Recordset")rs.Open "select * from jobs", cn, 1, 3rs.MoveLastrs(1).Value = "Test"rs.UpdateEnd Sub
Obavijest o lozinci, korisničkom nazivui izvoru podataka jesu rezervirana mjesta za lozinku, korisničko ime i izvor podataka za vaše okruženje.
-
Na izborniku Pokreni kliknite Start. Primijetit ćete poruku o pogrešci koja se spominje u odjeljku "simptomi".
Reference
Dodatne informacije potražite u članku iz Microsoftove baze znanja pod sljedećim brojem:
824684 Opis standardne terminologije koja se koristi za opisivanje ažuriranja Microsoftova softveraDodatne informacije potražite na sljedećim web-mjestima programa Microsoft Developer Network (MSDN):
Instaliranje OLE DB davatelja usluga za SQL Serverhttp://msdn2.Microsoft.com/en-us/library/aa198252 (SQL. 80). aspxaktivirahttp://msdn2.Microsoft.com/en-us/library/aa213995 (SQL. 80). aspxTransact-SQL kursorihttp://msdn2.Microsoft.com/en-us/library/aa172595 (SQL. 80). aspx