Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Klausimas:
Turiu "Access" DB ir SQL lentelę, kurioje saugoma informacija. Pagal 7.0 SQL serverio funkcijas leidžiau SQL "Access" DB kaip kitą SQL duomenų bazę. Taip pat parašiau saugomą procedūrą, kuri kopijuoja įrašus iš "Access" DB į SQL lentelę. Veikia iš ISQL / užklausų analizatoriaus, saugoma procedūra veikia ir veikia tinkamai. Iškvietus saugomą procedūrą iš "Dexterity", iš ""SQL Server"" pateikiamas toks klaidos pranešimas: "ANSI_NULLS" ir "ANSI_WARNINGS" parinktys turi būti nustatytos
ryšiui. Taip užtikrinama nuosekli užklausų semantika. Įjunkite šias parinktis ir pakartotinai įveskite užklausą. Ar netgi galiu vykdyti šią saugomą procedūrą iš "Dexterity"?


Atsakymas:
Taip, bet šiek tiek reikės modifikuoti išsaugotą procedūrą. Priežastis, dėl kurios nepavyksta, yra ta, kad norint tinkamai perskaityti SQL lenteles "Dexterity", šios parinktys turi būti išjungtos, kad iškviestumėte išsaugotas "Dexterity" procedūras prieš paleisdami saugomą procedūrą. Vartotojas turi įsitikinti, kad duomenys, kurie pažeidžia šias taisykles, nėra įtraukti į SQL lentelę. Toliau pateiktame pavyzdyje table_access yra prieigos lentelė. Ši table_test yra SQL lentelė.

          
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



Galime modifikuoti išsaugotą procedūrą, kad mūsų įspėjimai būtų nustatyti taip:

          
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



Šiuo atveju išsaugota procedūra paveldi atributus, kuriuos ji vadina. Tokiu atveju "Dexterity" theaccess_tableprocedure, kuri įjungia ANSI_NULLS & ANSI_WARNINGS tada iškvirks tikrą saugomą procedūrą ir pereis į mūsų parametrus.


Šis straipsnis buvo "TechKnowledge" dokumento ID:10011

"TechKnowledge" turinys

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×