POPRAVAK: prikazat će se poruka o pogrešci "nedefinirana pogreška" kada koristite OLE DB davatelj usluga za SQL Server za izmjenu retka tablice

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:

  1. Pokrenite SQL alat za analizu upita, a zatim se povežite s instancom sustava SQL Server 2000.

  2. 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.

  3. U stupcu naziv kliknite pubovi, a zatim u redu.

  4. 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
  5. Pokrenite Microsoft Visual Basic 6,0.

  6. U dijaloškom okviru novi projekt kliknite Standardno exe, a zatim kliknite Otvori. Po zadanom se stvara obrazac koji se zove Form1.

  7. U programu Project Explorer desnom tipkom miša kliknite obrazac Form1 , a zatim kliknite Prikaži kod.

  8. 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.

  9. 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

Potrebna vam je dodatna pomoć?

Proširite svoje vještine
Istražite osposobljavanje
Prvi koristite nove značajke
Pridružite se Microsoft Insidere

Jesu li ove informacije bile korisne?

Hvala vam na povratnim informacijama!

Hvala vam na povratnim informacijama! Čini se da bi vam pomoglo kad bismo vas povezali s nekim od naših agenata podrške za Office.

×