Prijavite se pomoću Microsofta
Prijavi se ili izradi račun.
Zdravo,
Odaberite drugi račun.
Imate više računa
Odaberite račun putem kojeg se želite prijaviti.

Pitanje:
imam bazu podataka programa Access i tablicu SQL koja pohranjuje podatke. U odjeljku Značajke servisa Linked Server SQL 7.0 dopustio sam SQL pristup bazi podataka kao samo SQL baze podataka. Napisao sam i spremljenu proceduru koja kopira zapise iz baze podataka programa Access u tablicu SQL. Pokrenut od ISQL/Query Analyzer, pohranjena procedura pokreće se i pravilno funkcionira. Pozivanje pohranjenog postupka iz spretnosti stvara sljedeću poruku o pogrešci iz programa SQL Server: Heterogeni upiti zahtijevaju postavljanje ANSI_NULLS i ANSI_WARNINGS mogućnosti
povezivanja. Time se osigurava dosljedna semantika upita. Omogućite te mogućnosti, a zatim ponovno omogućite upit. Mogu li čak pokrenuti ovaj pohranjeni postupak iz spretnosti?


Odgovor:
Da, ali morat ćemo malo izmijeniti pohranjeni postupak. Razlog zbog kojeg ne uspijeva jest to što se radi pravilnog čitanja SQL u spretnosti te mogućnosti moraju isključiti pa pozivanje pohranjenih postupaka u problemima spretnosti te naredbe prije pokretanja pohranjenog postupka. Korisnik mora osigurati da se podaci koji krše ta pravila ne uvode u SQL tablicu. U primjeru u nastavku table_access je pristupna tablica. Tablica table_test je SQL tablice.

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


INSERT INTO access_table ( DOCNUMBR, DOCAMNT )

SELECT access_test.DOCNUMBR, access_test.DOCAMNT

FROM access_test


GO



Pohranjenu proceduru možemo izmijeniti da bismo na taj način postavili upozorenja:

          
if exists (select * from sysobjects where id =

object_id('dbo.access_update') and sysstat & 0xf = 4)

drop procedure dbo.access_update

GO


create procedure dbo.access_update @O_SQL_Error_State int = NULL output


as


set ANSI_NULLS ON

SET ANSI_WARNINGS ON


exec access_table2 ( DOCNUMBR, DOCAMNT )


GO



U tom slučaju pohranjeni postupak nasljeđuje atribute naziva. U tom slučaju Spretnost poziva theaccess_tableprocedure uključuje ANSI_NULLS & ANSI_WARNINGS, a zatim poziva stvarnu pohranjenu proceduru i prelazi u naše parametre.


Ovaj je članak bio TECHKnowledge DOCUMENT ID:10011

TechKnowledge Content

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.

Zajednice vam pomažu da postavljate pitanja i odgovarate na njih, pošaljete povratne informacije i čujete se sa stručnjacima s bogatim znanjem.

Jesu li vam ove informacije bile korisne?

Koliko ste zadovoljni jezičnom kvalitetom?
Što je utjecalo na vaše iskustvo?
Ako pritisnete Pošalji, vaše će se povratne informacije iskoristiti za poboljšanje Microsoftovih proizvoda i usluga. Vaš će IT administrator moći prikupiti te podatke. Izjava o zaštiti privatnosti.

Hvala vam na povratnim informacijama!

×