Ispravka: Dobijate poruku o grešci "Neodređena greška" kada koristite OLE DB dobavljača za SQL Server da biste izmenili red tabele

Simptomi

Kada pokušate da izmenite zapis u tabeli pomoću Microsoft OLE DB dobavljača za SQL Server (SQLOLEDB), dobijate sledeću poruku o grešci:

Greška tokom run-time'-2147467259 (80004005)'':Neodređena greška

Ovu poruku dobijate kada su ispunjeni svi sledeći uslovi:

  • Tabela sadrži okidač, a okidač koristi komandu FETCH.

  • Računar ima instaliran Microsoft Data Access Components (MDAC) 2.8.

  • Komanda FETCH ne koristi opcionalnu odredbu INTO.

Rešenje

Da biste rešili ovaj problem, nabavite najnoviji servisni paket za Microsoft Windows XP. Za dodatne informacije kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

322389 Nabavljanje najnovijeg Windows XP servisnog paketa

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Koraci za reprodukciju problema

Da biste reprodukovali problem, kreirajte okidač ispravke koji koristi komandu FETCH, a zatim kreirajte Microsoft Visual Basic 6.0 projekat:

  1. Pokrenite analizator SQL upita, a zatim se povežite sa instancom sistema SQL Server 2000.

  2. U meniju Upita izaberite stavku Promeni bazu podataka. Pojaviće se dijalog "Izbor baze podataka o imenu servera".Napomena Ime servera je čuvar mesta za ime instance sistema SQL Server 2000 sa kojom ste povezani.

  3. U koloni Ime kliknite na pabove, a zatimkliknite na dugme U redu.

  4. U analizatoru SQL upita pokrenite sledeću Transact-SQL naredbu:

    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 dijalogu Novi projekat izaberite stavku Standardni EXE, a zatim kliknite na dugme Otvori. Podrazumevano se kreira obrazac pod imenom "Obrazac1".

  7. U programu Project Explorer kliknite desnim tasterom miša na obrazac Obrasca1, a zatim izaberite stavku Prikaži kôd.

  8. Nalepite sledeći kôd u prozor koda obrasca Obrasca1:

    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

    Lozinka zanapomena , korisničkoime i izvor podataka su čuvari mesta za lozinku, korisničko ime i izvor podataka za vaše okruženje.

  9. U meniju "Pokretanje" kliknite na dugme Start. Obratite pažnju na poruku o grešci koja je pomenuta u odeljku "Simptomi".

Reference

Za dodatne informacije kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

824684 Opis standardne terminologije koja se koristi za opisivanje Microsoft softverskih ispravkiZa više informacija posetite sledeće Microsoft Developer Network (MSDN) Web lokacije:

Instaliranje OLE DB dobavljača za SQL Serverhttp://msdn2.microsoft.com/en-us/library/aa198252(SQL.80).aspxOkidači http://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ć?

Unapredite veštine
Istražite obuku
Prvi nabavite nove funkcije
Pridružite se Microsoft insajdere

Da li su vam ove informacije koristile?

Hvala vam na povratnim informacijama!

Hvala za povratne informacije! Izgleda da će biti od pomoći ako vas povežemo sa našim agentima Office podrške.

×