Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Otázka:
Mám accessový DB a tabuľku s SQL, v ktorých sú uvedené informácie. V rámci funkcií prepojeného servera vo SQL 7.0 sme povolili, aby SQL sa accessový DB mohol zobraziť len ako SQL databázy. Napísal/-a som aj uloženú procedúru, ktorá skopíruje záznamy z databázy DB Accessu do SQL databázy. Pri spustení z ISQL/Query Analyzer sa uložená procedúra spustí a funguje správne. Volaním uloženej procedúry z aplikácie Dexterity sa zobrazí nasledujúce chybové hlásenie od SQL Server: Heterogeneous queries require the ANSI_NULLS and ANSI_WARNINGS options
to be set for the connection. Zabezpečí sa tak konzistentná sémantika dotazu. Povoľte tieto možnosti a potom zadajte dotaz. Môžem túto uloženú procedúru spustiť aj z aplikácie Dexterity?


Odpoveď: Áno, ale uloženú procedúru
bude potrebné mierne upraviť. Dôvodom je, že ak chcete, aby sa SQL tabuľky v pohyblivosti čítali správne, tieto možnosti je potrebné vypnúť, aby sa tieto príkazy pred spustením uloženej procedúry mohli ukladať v prípade problémov s pohybom. Používateľ musí zabezpečiť, aby sa údaje, ktoré porušuje tieto pravidlá, nezaviedol do SQL pravidiel. Vo vzore nižšie je table_access tabuľka s prístupom. Tabuľka table_test je SQL tabuľky.

          
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



Uloženú procedúru môžeme upraviť tak, aby sa naše upozornenia nastavili takto:

          
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 tomto prípade uložená procedúra zdedí atribúty, ktoré ju vyvolá. V tejto situácii volá Dexterity theaccess_tableprocedure, ktorý zapne ANSI_NULLS & ANSI_WARNINGS a potom zavolá do skutočnej uloženej procedúry a prejde v našich parametroch.


Tento článok bol TechZnámená identifikácia dokumentu:10011

TechZnáme obsah

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×