Vpišite se z Microsoftovim
Vpišite se ali ustvarite račun.
Pozdravljeni,
Izberite drug račun.
Imate več računov
Izberite račun, s katerim se želite vpisati.

Vprašanje: Imam Access DB in
tabelo SQL, ki shranjuje informacije. V razdelku s funkcijami povezanega strežnika SQL 7.0 sem SQL access DB videti kot le drugo SQL zbirko podatkov. Napisal sem tudi shranjeno proceduro, ki kopira zapise iz Accessove zbirke podatkov v SQL tabele. Ko se izvaja v analizatorju ISQL/poizvedbe, se shranjena procedura zažene in deluje pravilno. Če shranjeno proceduro pokličete s strani Dexterity, s tem kličejo SQL Server sporočilo o napaki: Pri heterogenih poizvedbah morate nastaviti možnosti ANSI_NULLS, ANSI_WARNINGS in ANSI_WARNINGS za
povezavo. S tem zagotovite dosledno semantika poizvedb. Omogočite te možnosti in nato znova izberite poizvedbo. Ali lahko to shranjeno proceduro zaženem tudi s strani Dexterity?


Odgovor:
Da, vendar bomo shranjeno proceduro morali nekoliko spremeniti. Razlog za neuspešen je v tem, da je treba te možnosti izklopiti, če želite pravilno brati tabele SQL v spretnostih, tako da klicanje shranjenih proceduro v spretnostih izda te ukaze, preden zaženete shranjeno proceduro. Uporabnik mora zagotoviti, da podatki, ki kršijo ta pravila, niso vneseni v SQL tabeli. V spodnjih vzorcih je table_access dostopna tabela. Polje table_test je SQL tabele.

          
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



Shranjeno proceduro lahko spremenimo tako, da nastavite naša opozorila tako:

          
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



V tem primeru shranjena procedura podeduje atribute tega, kar jo imenuje. V tem primeru Dexterity pokliče theaccess_tableprocedure ki vklopi ANSI_NULLS & ANSI_WARNINGS in nato pokliče pravo shranjeno proceduro in poda naše parametre.


Ta članek je bil TechKnowledge DOCUMENT ID:10011

Vsebina TechKnowledge

Ali potrebujete dodatno pomoč?

Ali želite več možnosti?

Raziščite ugodnosti naročnine, prebrskajte izobraževalne tečaje, preberite, kako zaščitite svojo napravo in še več.

Skupnosti vam pomagajo postaviti vprašanja in odgovoriti nanje, posredovati povratne informacije in prisluhniti strokovnjakom z bogatim znanjem.

Vam je bila informacija v pomoč?

Kako ste zadovoljni s kakovostjo jezika?
Kaj je vplivalo na vašo izkušnjo?
Če pritisnete »Pošlji«, bomo vaše povratne informacije uporabili za izboljšanje Microsoftovih izdelkov in storitev. Vaš skrbnik za IT bo lahko zbiral te podatke. Izjavi o zasebnosti.

Zahvaljujemo se vam za povratne informacije.

×